Răsfoiți Sursa

Merge branch 'dev/2024/0717/update-admin-Y' of feifan/mall-backend-admin into master

增加结账单的转账模板导出,修改导出提现表的展示数据
Yangzw 11 luni în urmă
părinte
comite
f8ee205742
61 a modificat fișierele cu 1926 adăugiri și 29 ștergeri
  1. 2 1
      feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/CaclEnum.java
  2. 4 0
      feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/ErrorCodeConstants.java
  3. 27 0
      feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/WithdrawalChannelTypeEnum.java
  4. 6 0
      feifan-module-distri/feifan-module-distri-biz/pom.xml
  5. 112 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/ApplicationForWithdrawalController.java
  6. 39 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalPageReqVO.java
  7. 48 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalRespVO.java
  8. 37 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalSaveReqVO.java
  9. 99 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelController.java
  10. 31 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelExcelRespVO.java
  11. 41 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelPageReqVO.java
  12. 49 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelRespVO.java
  13. 41 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelSaveReqVO.java
  14. 94 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/PtDailyWithdrawalController.java
  15. 38 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalPageReqVO.java
  16. 41 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalRespVO.java
  17. 34 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalSaveReqVO.java
  18. 17 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptsettlement/PtSettlementController.java
  19. 41 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptsettlement/vo/TransferTemplateRespVO.java
  20. 13 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/ShopSettlementController.java
  21. 15 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/excelvo/ShopSettlementExcelRespVO.java
  22. 22 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/vo/ShopRespVO.java
  23. 52 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/applicationforwithdrawal/ApplicationForWithdrawalDO.java
  24. 57 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelDO.java
  25. 49 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptdailywithdrawal/PtDailyWithdrawalDO.java
  26. 31 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/applicationforwithdrawal/ApplicationForWithdrawalMapper.java
  27. 31 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelMapper.java
  28. 30 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptdailywithdrawal/PtDailyWithdrawalMapper.java
  29. 4 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptprofitlog/PtProfitLogMapper.java
  30. 61 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawal/ApplicationForWithdrawalService.java
  31. 114 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawal/ApplicationForWithdrawalServiceImpl.java
  32. 59 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelService.java
  33. 79 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelServiceImpl.java
  34. 53 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptdailywithdrawal/PtDailyWithdrawalService.java
  35. 71 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptdailywithdrawal/PtDailyWithdrawalServiceImpl.java
  36. 7 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptsettlement/PtSettlementServiceImpl.java
  37. 12 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/shopsettlement/ShopSettlementService.java
  38. 36 4
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/shopsettlement/ShopSettlementServiceImpl.java
  39. 12 0
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/applicationforwithdrawal/ApplicationForWithdrawalMapper.xml
  40. 12 0
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelMapper.xml
  41. 12 0
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptdailywithdrawal/PtDailyWithdrawalMapper.xml
  42. 5 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java
  43. 16 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/excelVO/DailyBillOrderRespVO.java
  44. 5 1
      feifan-module-member/feifan-module-member-api/src/main/java/cn/newfeifan/mall/module/member/api/user/dto/MemberUserRespDTO.java
  45. 15 0
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserBaseVO.java
  46. 15 0
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserPageReqVO.java
  47. 15 0
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserRespVO.java
  48. 21 0
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/dal/dataobject/user/MemberUserDO.java
  49. 11 0
      feifan-module-sale/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/api/shop/ShopApi.java
  50. 41 0
      feifan-module-sale/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/api/shop/dto/ShopDTO.java
  51. 21 0
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/api/shop/ShopApiImpl.java
  52. 11 2
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantSaveReqVO.java
  53. 9 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopPageReqVO.java
  54. 12 3
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopRespVO.java
  55. 12 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopSaveReqVO.java
  56. 13 3
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/dal/dataobject/shop/ShopDO.java
  57. 1 3
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantServiceImpl.java
  58. 3 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopService.java
  59. 7 2
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopServiceImpl.java
  60. 0 4
      sql/mysql/建空库SQL/14_20240625.sql
  61. 60 0
      sql/mysql/建空库SQL/18_20240717.sql

+ 2 - 1
feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/CaclEnum.java

@@ -29,7 +29,8 @@ public enum CaclEnum {
     SMALL_QUOTA_CRASH_SETTLE(22, "合赢奖结算获得","每天计算的合赢奖7天后结算"),
     ORDER_PAY_FREEZE_HIGH_QUOTA(23, "购物获得","消费者购物,获得冻结峰值"),
     ORDER_REFUND_ORDER_PAY_FREEZE_HIGH_QUOTA(24, "订单退款-撤回峰值奖","消费者购物,获得冻结峰值"),
-    MANUAL_RETURN_INTEGRAL(25, "人工返回最早七天未获得的超出额度的合赢奖","人工返回最早七天未获得的合赢奖,超额的")
+    MANUAL_RETURN_INTEGRAL(25, "人工返回最早七天未获得的超出额度的合赢奖","人工返回最早七天未获得的合赢奖,超额的"),
+    WITHDRAWAL(26, "用户提现","用户将可用积分提现到账户"),
     ;
 
     /**

+ 4 - 0
feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/ErrorCodeConstants.java

@@ -37,4 +37,8 @@ public interface ErrorCodeConstants {
     ErrorCode PT_SETTLEMENT_NOT_EXISTS = new ErrorCode(1_002_030_030, "平台结算记录不存在");
     ErrorCode PT_DAILY_BILL_NOT_EXISTS = new ErrorCode(1_002_030_031, "平台每日账单不存在");
 
+    ErrorCode APPLICATION_FOR_WITHDRAWAL_NOT_EXISTS = new ErrorCode(1_002_030_032, "提现申请记录不存在");
+    ErrorCode PT_DAILY_WITHDRAWAL_NOT_EXISTS = new ErrorCode(1_002_030_033, "平台每日提现记录不存在");
+    ErrorCode APPLICATION_FOR_WITHDRAWAL_CHANNEL_NOT_EXISTS = new ErrorCode(1_002_030_034, "提现渠道记录不存在");
+
 }

+ 27 - 0
feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/WithdrawalChannelTypeEnum.java

@@ -0,0 +1,27 @@
+package cn.newfeifan.mall.module.distri.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum WithdrawalChannelTypeEnum {
+
+    WECHAT(1,"微信"),
+    ALIPAY(2,"支付宝"),
+    BANK(3,"银行卡"),
+    ;
+
+    private final Integer type;
+    private final String name;
+
+    public static String getName(int value) {
+        for (WithdrawalChannelTypeEnum item : WithdrawalChannelTypeEnum.values()) {
+            if (item.getType() == value) {
+                return item.getName();
+            }
+        }
+        return null;
+    }
+}

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/pom.xml

@@ -118,5 +118,11 @@
             <version>2.0.0-jdk8-snapshot</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>cn.newfeifan.sale</groupId>
+            <artifactId>feifan-module-sale-api</artifactId>
+            <version>2.0.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

+ 112 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/ApplicationForWithdrawalController.java

@@ -0,0 +1,112 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal;
+
+import cn.newfeifan.mall.module.distri.enums.WithdrawalChannelTypeEnum;
+import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
+import cn.newfeifan.mall.module.member.service.user.MemberUserService;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.pojo.CommonResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
+
+import cn.newfeifan.mall.framework.excel.core.util.ExcelUtils;
+
+import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
+import static cn.newfeifan.mall.framework.operatelog.core.enums.OperateTypeEnum.*;
+
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawal.ApplicationForWithdrawalDO;
+import cn.newfeifan.mall.module.distri.service.applicationforwithdrawal.ApplicationForWithdrawalService;
+
+@Tag(name = "管理后台 - 提现申请记录")
+@RestController
+@RequestMapping("/distri/application-for-withdrawal")
+@Validated
+public class ApplicationForWithdrawalController {
+
+    @Resource
+    private ApplicationForWithdrawalService applicationForWithdrawalService;
+
+    @Resource
+    private MemberUserService memberUserService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建提现申请记录")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:create')")
+    public CommonResult<Long> createApplicationForWithdrawal(@Valid @RequestBody ApplicationForWithdrawalSaveReqVO createReqVO) {
+        return success(applicationForWithdrawalService.createApplicationForWithdrawal(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新提现申请记录")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:update')")
+    public CommonResult<Boolean> updateApplicationForWithdrawal(@Valid @RequestBody ApplicationForWithdrawalSaveReqVO updateReqVO) {
+        applicationForWithdrawalService.updateApplicationForWithdrawal(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除提现申请记录")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:delete')")
+    public CommonResult<Boolean> deleteApplicationForWithdrawal(@RequestParam("id") Long id) {
+        applicationForWithdrawalService.deleteApplicationForWithdrawal(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得提现申请记录")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:query')")
+    public CommonResult<ApplicationForWithdrawalRespVO> getApplicationForWithdrawal(@RequestParam("id") Long id) {
+        ApplicationForWithdrawalDO applicationForWithdrawal = applicationForWithdrawalService.getApplicationForWithdrawal(id);
+        return success(BeanUtils.toBean(applicationForWithdrawal, ApplicationForWithdrawalRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得提现申请记录分页")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:query')")
+    public CommonResult<PageResult<ApplicationForWithdrawalRespVO>> getApplicationForWithdrawalPage(@Valid ApplicationForWithdrawalPageReqVO pageReqVO) {
+        PageResult<ApplicationForWithdrawalDO> pageResult = applicationForWithdrawalService.getApplicationForWithdrawalPage(pageReqVO);
+        PageResult<ApplicationForWithdrawalRespVO> bean = BeanUtils.toBean(pageResult, ApplicationForWithdrawalRespVO.class);
+
+        for (ApplicationForWithdrawalRespVO applicationForWithdrawalRespVO : bean.getList()) {
+            MemberUserDO user = memberUserService.getUser(applicationForWithdrawalRespVO.getUserId());
+
+            if(applicationForWithdrawalRespVO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.ALIPAY.getType())){
+                applicationForWithdrawalRespVO.setAccountName(user.getAlipayName());
+            }else if(applicationForWithdrawalRespVO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.BANK.getType())){
+                applicationForWithdrawalRespVO.setAccountName(user.getAccountName());
+            }
+        }
+
+        return success(bean);
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出提现申请记录 Excel")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal:export')")
+    @OperateLog(type = EXPORT)
+    public void exportApplicationForWithdrawalExcel(@Valid ApplicationForWithdrawalPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<ApplicationForWithdrawalDO> list = applicationForWithdrawalService.getApplicationForWithdrawalPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "提现申请记录.xls", "数据", ApplicationForWithdrawalRespVO.class,
+                        BeanUtils.toBean(list, ApplicationForWithdrawalRespVO.class));
+    }
+
+}

+ 39 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalPageReqVO.java

@@ -0,0 +1,39 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 提现申请记录分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ApplicationForWithdrawalPageReqVO extends PageParam {
+
+    @Schema(description = "用户ID", example = "25631")
+    private Long userId;
+
+    @Schema(description = "提现渠道类型", example = "2")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "支付宝账号", example = "30303")
+    private String withdrawalAccount;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", example = "19322")
+    private Long applicationForWithdrawalChannelId;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 48 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalRespVO.java

@@ -0,0 +1,48 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 提现申请记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ApplicationForWithdrawalRespVO {
+
+    @Schema(description = "申请id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20678")
+    @ExcelProperty("申请id")
+    private Long id;
+
+    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25631")
+    @ExcelProperty("用户ID")
+    private Long userId;
+
+    @Schema(description = "提现渠道类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("提现渠道类型")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "支付宝账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30303")
+    @ExcelProperty("支付宝账号")
+    private String withdrawalAccount;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    @ExcelProperty("提现状态,已完成是1,未完成为0")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19322")
+    @ExcelProperty("提现渠道记录id")
+    private Long applicationForWithdrawalChannelId;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "提现账号名称")
+    private String accountName;
+
+}

+ 37 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawal/vo/ApplicationForWithdrawalSaveReqVO.java

@@ -0,0 +1,37 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 提现申请记录新增/修改 Request VO")
+@Data
+public class ApplicationForWithdrawalSaveReqVO {
+
+    @Schema(description = "申请id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20678")
+    private Long id;
+
+    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25631")
+    @NotNull(message = "用户ID不能为空")
+    private Long userId;
+
+    @Schema(description = "提现渠道类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @NotNull(message = "提现渠道类型不能为空")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "提现金额,单位:元不能为空")
+    private Long amount;
+
+    @Schema(description = "支付宝账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30303")
+    @NotEmpty(message = "支付宝账号不能为空")
+    private String withdrawalAccount;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19322")
+    @NotNull(message = "提现渠道记录id不能为空")
+    private Long applicationForWithdrawalChannelId;
+
+}

+ 99 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelController.java

@@ -0,0 +1,99 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel;
+
+import cn.newfeifan.mall.module.distri.service.applicationforwithdrawal.ApplicationForWithdrawalService;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.pojo.CommonResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
+
+import cn.newfeifan.mall.framework.excel.core.util.ExcelUtils;
+
+import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
+import static cn.newfeifan.mall.framework.operatelog.core.enums.OperateTypeEnum.*;
+
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelDO;
+import cn.newfeifan.mall.module.distri.service.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelService;
+
+@Tag(name = "管理后台 - 提现渠道记录")
+@RestController
+@RequestMapping("/distri/application-for-withdrawal-channel")
+@Validated
+public class ApplicationForWithdrawalChannelController {
+
+    @Resource
+    private ApplicationForWithdrawalChannelService applicationForWithdrawalChannelService;
+
+    @Resource
+    private ApplicationForWithdrawalService applicationForWithdrawalService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建提现渠道记录")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:create')")
+    public CommonResult<Long> createApplicationForWithdrawalChannel(@Valid @RequestBody ApplicationForWithdrawalChannelSaveReqVO createReqVO) {
+        return success(applicationForWithdrawalChannelService.createApplicationForWithdrawalChannel(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新提现渠道记录")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:update')")
+    public CommonResult<Boolean> updateApplicationForWithdrawalChannel(@Valid @RequestBody ApplicationForWithdrawalChannelSaveReqVO updateReqVO) {
+        applicationForWithdrawalChannelService.updateApplicationForWithdrawalChannel(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除提现渠道记录")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:delete')")
+    public CommonResult<Boolean> deleteApplicationForWithdrawalChannel(@RequestParam("id") Long id) {
+        applicationForWithdrawalChannelService.deleteApplicationForWithdrawalChannel(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得提现渠道记录")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:query')")
+    public CommonResult<ApplicationForWithdrawalChannelRespVO> getApplicationForWithdrawalChannel(@RequestParam("id") Long id) {
+        ApplicationForWithdrawalChannelDO applicationForWithdrawalChannel = applicationForWithdrawalChannelService.getApplicationForWithdrawalChannel(id);
+        return success(BeanUtils.toBean(applicationForWithdrawalChannel, ApplicationForWithdrawalChannelRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得提现渠道记录分页")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:query')")
+    public CommonResult<PageResult<ApplicationForWithdrawalChannelRespVO>> getApplicationForWithdrawalChannelPage(@Valid ApplicationForWithdrawalChannelPageReqVO pageReqVO) {
+        PageResult<ApplicationForWithdrawalChannelDO> pageResult = applicationForWithdrawalChannelService.getApplicationForWithdrawalChannelPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, ApplicationForWithdrawalChannelRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出提现渠道记录 Excel")
+    @PreAuthorize("@ss.hasPermission('distri:application-for-withdrawal-channel:export')")
+    @OperateLog(type = EXPORT)
+    public void exportApplicationForWithdrawalChannelExcel(@RequestParam("id") Long id,
+              HttpServletResponse response) throws IOException {
+        List<ApplicationForWithdrawalChannelExcelRespVO> list = applicationForWithdrawalService.getApplicationForWithdrawalChannelPage(id);
+
+        // 修改该记录的导出状态
+        applicationForWithdrawalChannelService.updateApplicationForWithdrawalChannel(id);
+
+        // 导出 Excel
+        ExcelUtils.write(response, "提现记录.xls", "数据", ApplicationForWithdrawalChannelExcelRespVO.class, list);
+    }
+
+}

+ 31 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelExcelRespVO.java

@@ -0,0 +1,31 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 提现记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+@Builder
+public class ApplicationForWithdrawalChannelExcelRespVO {
+
+    @Schema(description = "收款方名称")
+    @ExcelProperty("收款方名称")
+    private String name;
+
+    @Schema(description = "收款方账号")
+    @ExcelProperty("收款方账号")
+    private String account;
+
+    @Schema(description = "金额")
+    @ExcelProperty("金额")
+    private String amount;
+
+    @Schema(description = "附言/用途")
+    @ExcelProperty("附言/用途")
+    private String mark;
+
+}

+ 41 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelPageReqVO.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 提现渠道记录分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ApplicationForWithdrawalChannelPageReqVO extends PageParam {
+
+    @Schema(description = "提现渠道类型", example = "1")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现渠道名称", example = "李四")
+    private String withdrawalName;
+
+    @Schema(description = "提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "提现笔数", example = "6693")
+    private Integer count;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", example = "14600")
+    private Long ptDailyWithdrawalId;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+    @Schema(description = "导出状态,已导出是1,未导出为0", example = "2")
+    private Boolean excelStatus;
+}

+ 49 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelRespVO.java

@@ -0,0 +1,49 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 提现渠道记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ApplicationForWithdrawalChannelRespVO {
+
+    @Schema(description = "提现渠道id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1595")
+    @ExcelProperty("提现渠道id")
+    private Long id;
+
+    @Schema(description = "提现渠道类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty("提现渠道类型")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现渠道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @ExcelProperty("提现渠道名称")
+    private String withdrawalName;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "提现笔数", requiredMode = Schema.RequiredMode.REQUIRED, example = "6693")
+    @ExcelProperty("提现笔数")
+    private Integer count;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    @ExcelProperty("提现状态,已完成是1,未完成为0")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14600")
+    @ExcelProperty("提现渠道记录id")
+    private Long ptDailyWithdrawalId;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "导出状态,已导出是1,未导出为0", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("导出状态,已导出是1,未导出为0")
+    private Boolean excelStatus;
+
+}

+ 41 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/applicationforwithdrawalchannel/vo/ApplicationForWithdrawalChannelSaveReqVO.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 提现渠道记录新增/修改 Request VO")
+@Data
+public class ApplicationForWithdrawalChannelSaveReqVO {
+
+    @Schema(description = "提现渠道id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1595")
+    private Long id;
+
+    @Schema(description = "提现渠道类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "提现渠道类型不能为空")
+    private Integer withdrawalType;
+
+    @Schema(description = "提现渠道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @NotEmpty(message = "提现渠道名称不能为空")
+    private String withdrawalName;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "提现金额,单位:元不能为空")
+    private Long amount;
+
+    @Schema(description = "提现笔数", requiredMode = Schema.RequiredMode.REQUIRED, example = "6693")
+    @NotNull(message = "提现笔数不能为空")
+    private Integer count;
+
+    @Schema(description = "提现状态,已完成是1,未完成为0", example = "1")
+    private Boolean status;
+
+    @Schema(description = "提现渠道记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14600")
+    @NotNull(message = "提现渠道记录id不能为空")
+    private Long ptDailyWithdrawalId;
+
+    @Schema(description = "导出状态,已导出是1,未导出为0", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @NotNull(message = "导出状态,已导出是1,未导出为0不能为空")
+    private Boolean excelStatus;
+
+}

+ 94 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/PtDailyWithdrawalController.java

@@ -0,0 +1,94 @@
+package cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal;
+
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.pojo.CommonResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
+
+import cn.newfeifan.mall.framework.excel.core.util.ExcelUtils;
+
+import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
+import static cn.newfeifan.mall.framework.operatelog.core.enums.OperateTypeEnum.*;
+
+import cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.ptdailywithdrawal.PtDailyWithdrawalDO;
+import cn.newfeifan.mall.module.distri.service.ptdailywithdrawal.PtDailyWithdrawalService;
+
+@Tag(name = "管理后台 - 平台每日提现记录")
+@RestController
+@RequestMapping("/distri/pt-daily-withdrawal")
+@Validated
+public class PtDailyWithdrawalController {
+
+    @Resource
+    private PtDailyWithdrawalService ptDailyWithdrawalService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建平台每日提现记录")
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:create')")
+    public CommonResult<Long> createPtDailyWithdrawal(@Valid @RequestBody PtDailyWithdrawalSaveReqVO createReqVO) {
+        return success(ptDailyWithdrawalService.createPtDailyWithdrawal(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新平台每日提现记录")
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:update')")
+    public CommonResult<Boolean> updatePtDailyWithdrawal(@Valid @RequestBody PtDailyWithdrawalSaveReqVO updateReqVO) {
+        ptDailyWithdrawalService.updatePtDailyWithdrawal(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除平台每日提现记录")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:delete')")
+    public CommonResult<Boolean> deletePtDailyWithdrawal(@RequestParam("id") Long id) {
+        ptDailyWithdrawalService.deletePtDailyWithdrawal(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得平台每日提现记录")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:query')")
+    public CommonResult<PtDailyWithdrawalRespVO> getPtDailyWithdrawal(@RequestParam("id") Long id) {
+        PtDailyWithdrawalDO ptDailyWithdrawal = ptDailyWithdrawalService.getPtDailyWithdrawal(id);
+        return success(BeanUtils.toBean(ptDailyWithdrawal, PtDailyWithdrawalRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得平台每日提现记录分页")
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:query')")
+    public CommonResult<PageResult<PtDailyWithdrawalRespVO>> getPtDailyWithdrawalPage(@Valid PtDailyWithdrawalPageReqVO pageReqVO) {
+        PageResult<PtDailyWithdrawalDO> pageResult = ptDailyWithdrawalService.getPtDailyWithdrawalPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, PtDailyWithdrawalRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出平台每日提现记录 Excel")
+    @PreAuthorize("@ss.hasPermission('distri:pt-daily-withdrawal:export')")
+    @OperateLog(type = EXPORT)
+    public void exportPtDailyWithdrawalExcel(@Valid PtDailyWithdrawalPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<PtDailyWithdrawalDO> list = ptDailyWithdrawalService.getPtDailyWithdrawalPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "平台每日提现记录.xls", "数据", PtDailyWithdrawalRespVO.class,
+                        BeanUtils.toBean(list, PtDailyWithdrawalRespVO.class));
+    }
+
+}

+ 38 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalPageReqVO.java

@@ -0,0 +1,38 @@
+package cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 平台每日提现记录分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PtDailyWithdrawalPageReqVO extends PageParam {
+
+    @Schema(description = "提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "提现笔数", example = "19749")
+    private Integer count;
+
+    @Schema(description = "提现状态,0:待转账 1:全部完成 2:部分完成", example = "2")
+    private Integer status;
+
+    @Schema(description = "提现开始时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] startTime;
+
+    @Schema(description = "提现截止时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] endTime;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 41 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalRespVO.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 平台每日提现记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PtDailyWithdrawalRespVO {
+
+    @Schema(description = "记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11736")
+    @ExcelProperty("记录id")
+    private Long id;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提现金额,单位:元")
+    private Long amount;
+
+    @Schema(description = "提现笔数", requiredMode = Schema.RequiredMode.REQUIRED, example = "19749")
+    @ExcelProperty("提现笔数")
+    private Integer count;
+
+    @Schema(description = "提现状态,0:待转账 1:全部完成 2:部分完成", example = "2")
+    @ExcelProperty("提现状态,0:待转账 1:全部完成 2:部分完成")
+    private Integer status;
+
+    @Schema(description = "提现开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提现开始时间")
+    private LocalDateTime startTime;
+
+    @Schema(description = "提现截止时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提现截止时间")
+    private LocalDateTime endTime;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 34 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptdailywithdrawal/vo/PtDailyWithdrawalSaveReqVO.java

@@ -0,0 +1,34 @@
+package cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import javax.validation.constraints.*;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 平台每日提现记录新增/修改 Request VO")
+@Data
+public class PtDailyWithdrawalSaveReqVO {
+
+    @Schema(description = "记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11736")
+    private Long id;
+
+    @Schema(description = "提现金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "提现金额,单位:元不能为空")
+    private Long amount;
+
+    @Schema(description = "提现笔数", requiredMode = Schema.RequiredMode.REQUIRED, example = "19749")
+    @NotNull(message = "提现笔数不能为空")
+    private Integer count;
+
+    @Schema(description = "提现状态,0:待转账 1:全部完成 2:部分完成", example = "2")
+    private Integer status;
+
+    @Schema(description = "提现开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "提现开始时间不能为空")
+    private LocalDateTime startTime;
+
+    @Schema(description = "提现截止时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "提现截止时间不能为空")
+    private LocalDateTime endTime;
+
+}

+ 17 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptsettlement/PtSettlementController.java

@@ -1,5 +1,7 @@
 package cn.newfeifan.mall.module.distri.controller.admin.ptsettlement;
 
+import cn.newfeifan.mall.module.distri.controller.admin.shopsettlement.vo.ShopSettlementPageReqVO;
+import cn.newfeifan.mall.module.distri.service.shopsettlement.ShopSettlementService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -37,6 +39,9 @@ public class PtSettlementController {
     @Resource
     private PtSettlementService ptSettlementService;
 
+    @Resource
+    private ShopSettlementService shopSettlementService;
+
     @PostMapping("/create")
     @Operation(summary = "创建平台每日结算信息表,记录店铺的结算信息")
     @PreAuthorize("@ss.hasPermission('distri:pt-settlement:create')")
@@ -91,4 +96,16 @@ public class PtSettlementController {
                         BeanUtils.toBean(list, PtSettlementRespVO.class));
     }
 
+    @GetMapping("/export-transfer-template")
+    @Operation(summary = "导出批量转账模板, Excel")
+    @PreAuthorize("@ss.hasPermission('distri:pt-settlement:export')")
+    @OperateLog(type = EXPORT)
+    public void exportPtSettlementExcelTransferTemplate(@Valid ShopSettlementPageReqVO pageReqVO,
+                                        HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<TransferTemplateRespVO> list = shopSettlementService.excelShopSettlementPage(pageReqVO);
+        // 导出 Excel
+        ExcelUtils.write(response, "批量转账,批量转账.xls", "数据", TransferTemplateRespVO.class,list);
+    }
+
 }

+ 41 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptsettlement/vo/TransferTemplateRespVO.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.distri.controller.admin.ptsettlement.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 转账模板导出,Response VO")
+@Data
+@ExcelIgnoreUnannotated
+@Builder
+public class TransferTemplateRespVO {
+
+    @Schema(description = "收款人名称", example = "李四")
+    @ExcelProperty("收款人名称")
+    private String payeeName;
+
+    @Schema(description = "收款方账号", example = "888888888")
+    @ExcelProperty("收款方账号")
+    private String payeeAccount;
+
+    @Schema(description = "收款方开户行名称", example = "xx银行股份有限公司xx分行xx支行")
+    @ExcelProperty("收款方开户行名称")
+    private String payeeBankName;
+
+    @Schema(description = "收款行联行号", example = "323331000001")
+    @ExcelProperty("收款行联行号")
+    private String payeeBankAccount;
+
+    @Schema(description = "金额", example = "88.88")
+    @ExcelProperty("金额")
+    private String money;
+
+    @Schema(description = "附言/用途", example = "转账")
+    @ExcelProperty("附言/用途")
+    private String mark;
+
+
+
+}

+ 13 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/ShopSettlementController.java

@@ -1,6 +1,8 @@
 package cn.newfeifan.mall.module.distri.controller.admin.shopsettlement;
 
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.module.api.shop.ShopApi;
+import cn.newfeifan.mall.module.api.shop.dto.ShopDTO;
 import cn.newfeifan.mall.module.distri.controller.admin.shopsettlement.excelvo.ShopSettlementExcelRespVO;
 import cn.newfeifan.mall.module.distri.convert.shopsettlement.ShopSettlementConvert;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +41,9 @@ public class ShopSettlementController {
     @Resource
     private ShopSettlementService shopSettlementService;
 
+    @Resource
+    private ShopApi shopApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建订单结算信息表,记录店铺的结算信息")
     @PreAuthorize("@ss.hasPermission('trade:shop-settlement:create')")
@@ -88,6 +93,14 @@ public class ShopSettlementController {
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<ShopSettlementExcelRespVO> list = ShopSettlementConvert.INSTANCE.convertList(shopSettlementService.getShopSettlementPage(pageReqVO).getList());
+
+        for (ShopSettlementExcelRespVO shopSettlementExcelRespVO : list) {
+            ShopDTO shop = shopApi.getShop(shopSettlementExcelRespVO.getShopId());
+            shopSettlementExcelRespVO.setAccountName(shop.getAccountName());
+            shopSettlementExcelRespVO.setAccountNumber(shop.getAccountNumber());
+            shopSettlementExcelRespVO.setBankName(shop.getBankName());
+        }
+
         // 导出 Excel
         ExcelUtils.write(response, "订单结算信息表,记录店铺的结算信息.xls", "数据", ShopSettlementExcelRespVO.class,
                         list);

+ 15 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/excelvo/ShopSettlementExcelRespVO.java

@@ -36,6 +36,21 @@ public class ShopSettlementExcelRespVO {
     @ExcelProperty("转账凭证附件")
     private String attachment;
 
+    @Schema(description = "店铺id")
+    private Long shopId;
+
+    @Schema(description = "账户名称", example = "非繁人")
+    @ExcelProperty("账户名称")
+    private String accountName;
+
+    @Schema(description = "账户号码")
+    @ExcelProperty("账户号码")
+    private String accountNumber;
+
+    @Schema(description = "开户银行", example = "李四")
+    @ExcelProperty("开户银行")
+    private String bankName;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 22 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/shopsettlement/vo/ShopRespVO.java

@@ -0,0 +1,22 @@
+package cn.newfeifan.mall.module.distri.controller.admin.shopsettlement.vo;
+
+import lombok.*;
+
+@Data
+public class ShopRespVO {
+
+    private Long id;
+
+    /**
+     * 账户名称
+     */
+    private String accountName;
+    /**
+     * 账户号码
+     */
+    private String accountNumber;
+    /**
+     * 开户银行
+     */
+    private String bankName;
+}

+ 52 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/applicationforwithdrawal/ApplicationForWithdrawalDO.java

@@ -0,0 +1,52 @@
+package cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawal;
+
+import lombok.*;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 提现申请记录 DO
+ *
+ * @author 非繁人
+ */
+@TableName("distri_application_for_withdrawal")
+@KeySequence("distri_application_for_withdrawal_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ApplicationForWithdrawalDO extends BaseDO {
+
+    /**
+     * 申请id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 用户ID
+     */
+    private Long userId;
+    /**
+     * 提现渠道类型
+     */
+    private Integer withdrawalType;
+    /**
+     * 提现金额,单位:元
+     */
+    private Long amount;
+    /**
+     * 提现账号
+     */
+    private String withdrawalAccount;
+    /**
+     * 提现状态,已完成是1,未完成为0
+     */
+    private Boolean status;
+    /**
+     * 提现渠道记录id
+     */
+    private Long applicationForWithdrawalChannelId;
+
+}

+ 57 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelDO.java

@@ -0,0 +1,57 @@
+package cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawalchannel;
+
+import lombok.*;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 提现渠道记录 DO
+ *
+ * @author 非繁人
+ */
+@TableName("distri_application_for_withdrawal_channel")
+@KeySequence("distri_application_for_withdrawal_channel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ApplicationForWithdrawalChannelDO extends BaseDO {
+
+    /**
+     * 提现渠道id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 提现渠道类型
+     */
+    private Integer withdrawalType;
+    /**
+     * 提现渠道名称
+     */
+    private String withdrawalName;
+    /**
+     * 提现金额,单位:元
+     */
+    private Long amount;
+    /**
+     * 提现笔数
+     */
+    private Integer count;
+    /**
+     * 提现状态,已完成是1,未完成为0
+     */
+    private Boolean status;
+    /**
+     * 提现渠道记录id
+     */
+    private Long ptDailyWithdrawalId;
+
+    /**
+     * 导出状态,已导出是1,未导出为0
+     */
+    private Boolean excelStatus;
+
+}

+ 49 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptdailywithdrawal/PtDailyWithdrawalDO.java

@@ -0,0 +1,49 @@
+package cn.newfeifan.mall.module.distri.dal.dataobject.ptdailywithdrawal;
+
+import lombok.*;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 平台每日提现记录 DO
+ *
+ * @author 非繁人
+ */
+@TableName("distri_pt_daily_withdrawal")
+@KeySequence("distri_pt_daily_withdrawal_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PtDailyWithdrawalDO extends BaseDO {
+
+    /**
+     * 记录id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 提现金额,单位:元
+     */
+    private Long amount;
+    /**
+     * 提现笔数
+     */
+    private Integer count;
+    /**
+     * 提现状态,0:待转账 1:全部完成 2:部分完成
+     */
+    private Integer status;
+    /**
+     * 提现开始时间
+     */
+    private LocalDateTime startTime;
+    /**
+     * 提现截止时间
+     */
+    private LocalDateTime endTime;
+
+}

+ 31 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/applicationforwithdrawal/ApplicationForWithdrawalMapper.java

@@ -0,0 +1,31 @@
+package cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawal;
+
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawal.ApplicationForWithdrawalDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo.*;
+
+/**
+ * 提现申请记录 Mapper
+ *
+ * @author 非繁人
+ */
+@Mapper
+public interface ApplicationForWithdrawalMapper extends BaseMapperX<ApplicationForWithdrawalDO> {
+
+    default PageResult<ApplicationForWithdrawalDO> selectPage(ApplicationForWithdrawalPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ApplicationForWithdrawalDO>()
+                .eqIfPresent(ApplicationForWithdrawalDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(ApplicationForWithdrawalDO::getWithdrawalType, reqVO.getWithdrawalType())
+                .eqIfPresent(ApplicationForWithdrawalDO::getAmount, reqVO.getAmount())
+                .eqIfPresent(ApplicationForWithdrawalDO::getWithdrawalAccount, reqVO.getWithdrawalAccount())
+                .eqIfPresent(ApplicationForWithdrawalDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(ApplicationForWithdrawalDO::getApplicationForWithdrawalChannelId, reqVO.getApplicationForWithdrawalChannelId())
+                .betweenIfPresent(ApplicationForWithdrawalDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(ApplicationForWithdrawalDO::getId));
+    }
+
+}

+ 31 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelMapper.java

@@ -0,0 +1,31 @@
+package cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawalchannel;
+
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.*;
+
+/**
+ * 提现渠道记录 Mapper
+ *
+ * @author 非繁人
+ */
+@Mapper
+public interface ApplicationForWithdrawalChannelMapper extends BaseMapperX<ApplicationForWithdrawalChannelDO> {
+
+    default PageResult<ApplicationForWithdrawalChannelDO> selectPage(ApplicationForWithdrawalChannelPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ApplicationForWithdrawalChannelDO>()
+                .eqIfPresent(ApplicationForWithdrawalChannelDO::getWithdrawalType, reqVO.getWithdrawalType())
+                .likeIfPresent(ApplicationForWithdrawalChannelDO::getWithdrawalName, reqVO.getWithdrawalName())
+                .eqIfPresent(ApplicationForWithdrawalChannelDO::getAmount, reqVO.getAmount())
+                .eqIfPresent(ApplicationForWithdrawalChannelDO::getCount, reqVO.getCount())
+                .eqIfPresent(ApplicationForWithdrawalChannelDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(ApplicationForWithdrawalChannelDO::getPtDailyWithdrawalId, reqVO.getPtDailyWithdrawalId())
+                .betweenIfPresent(ApplicationForWithdrawalChannelDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(ApplicationForWithdrawalChannelDO::getId));
+    }
+
+}

+ 30 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptdailywithdrawal/PtDailyWithdrawalMapper.java

@@ -0,0 +1,30 @@
+package cn.newfeifan.mall.module.distri.dal.mysql.ptdailywithdrawal;
+
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.module.distri.dal.dataobject.ptdailywithdrawal.PtDailyWithdrawalDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo.*;
+
+/**
+ * 平台每日提现记录 Mapper
+ *
+ * @author 非繁人
+ */
+@Mapper
+public interface PtDailyWithdrawalMapper extends BaseMapperX<PtDailyWithdrawalDO> {
+
+    default PageResult<PtDailyWithdrawalDO> selectPage(PtDailyWithdrawalPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<PtDailyWithdrawalDO>()
+                .eqIfPresent(PtDailyWithdrawalDO::getAmount, reqVO.getAmount())
+                .eqIfPresent(PtDailyWithdrawalDO::getCount, reqVO.getCount())
+                .eqIfPresent(PtDailyWithdrawalDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(PtDailyWithdrawalDO::getStartTime, reqVO.getStartTime())
+                .betweenIfPresent(PtDailyWithdrawalDO::getEndTime, reqVO.getEndTime())
+                .betweenIfPresent(PtDailyWithdrawalDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(PtDailyWithdrawalDO::getId));
+    }
+
+}

+ 4 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptprofitlog/PtProfitLogMapper.java

@@ -39,7 +39,8 @@ public interface PtProfitLogMapper extends BaseMapperX<PtProfitLogDO> {
                 SMALL_QUOTA_CRASH_SETTLE.getType(),
                 ORDER_PAY_FREEZE_HIGH_QUOTA.getType(),
                 ORDER_REFUND_ORDER_PAY_FREEZE_HIGH_QUOTA.getType(),
-                MANUAL_RETURN_INTEGRAL.getType()
+                MANUAL_RETURN_INTEGRAL.getType(),
+                WITHDRAWAL.getType()
         );
 
         if(reqVO.getUserId().equals(PT_ID)){
@@ -60,7 +61,8 @@ public interface PtProfitLogMapper extends BaseMapperX<PtProfitLogDO> {
                     ORDER_CANCEL_BY_USER_REFUND_INTEGRAL.getType(),
                     ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL.getType(),
                     ORDER_PAY_FREEZE_HIGH_QUOTA.getType(),
-                    ORDER_REFUND_ORDER_PAY_FREEZE_HIGH_QUOTA.getType()
+                    ORDER_REFUND_ORDER_PAY_FREEZE_HIGH_QUOTA.getType(),
+                    WITHDRAWAL.getType()
             );
 //            reqVO.setUserId(null);
         }

+ 61 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawal/ApplicationForWithdrawalService.java

@@ -0,0 +1,61 @@
+package cn.newfeifan.mall.module.distri.service.applicationforwithdrawal;
+
+import java.util.*;
+import javax.validation.*;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.ApplicationForWithdrawalChannelExcelRespVO;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawal.ApplicationForWithdrawalDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+
+/**
+ * 提现申请记录 Service 接口
+ *
+ * @author 非繁人
+ */
+public interface ApplicationForWithdrawalService {
+
+    /**
+     * 创建提现申请记录
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createApplicationForWithdrawal(@Valid ApplicationForWithdrawalSaveReqVO createReqVO);
+
+    /**
+     * 更新提现申请记录
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateApplicationForWithdrawal(@Valid ApplicationForWithdrawalSaveReqVO updateReqVO);
+
+    /**
+     * 删除提现申请记录
+     *
+     * @param id 编号
+     */
+    void deleteApplicationForWithdrawal(Long id);
+
+    /**
+     * 获得提现申请记录
+     *
+     * @param id 编号
+     * @return 提现申请记录
+     */
+    ApplicationForWithdrawalDO getApplicationForWithdrawal(Long id);
+
+    /**
+     * 获得提现申请记录分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 提现申请记录分页
+     */
+    PageResult<ApplicationForWithdrawalDO> getApplicationForWithdrawalPage(ApplicationForWithdrawalPageReqVO pageReqVO);
+
+    /**
+     * 获得提现申请记录
+     * @param id 二级记录id
+     * @return 提现记录
+     */
+    List<ApplicationForWithdrawalChannelExcelRespVO> getApplicationForWithdrawalChannelPage(Long id);
+}

+ 114 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawal/ApplicationForWithdrawalServiceImpl.java

@@ -0,0 +1,114 @@
+package cn.newfeifan.mall.module.distri.service.applicationforwithdrawal;
+
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.ApplicationForWithdrawalChannelExcelRespVO;
+import cn.newfeifan.mall.module.distri.enums.WithdrawalChannelTypeEnum;
+import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
+import cn.newfeifan.mall.module.member.service.user.MemberUserService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawal.ApplicationForWithdrawalDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+
+import cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawal.ApplicationForWithdrawalMapper;
+
+import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
+
+/**
+ * 提现申请记录 Service 实现类
+ *
+ * @author 非繁人
+ */
+@Service
+@Validated
+public class ApplicationForWithdrawalServiceImpl implements ApplicationForWithdrawalService {
+
+    @Resource
+    private ApplicationForWithdrawalMapper applicationForWithdrawalMapper;
+
+    @Resource
+    private MemberUserService userService;
+
+    @Override
+    public Long createApplicationForWithdrawal(ApplicationForWithdrawalSaveReqVO createReqVO) {
+        // 插入
+        ApplicationForWithdrawalDO applicationForWithdrawal = BeanUtils.toBean(createReqVO, ApplicationForWithdrawalDO.class);
+        applicationForWithdrawalMapper.insert(applicationForWithdrawal);
+        // 返回
+        return applicationForWithdrawal.getId();
+    }
+
+    @Override
+    public void updateApplicationForWithdrawal(ApplicationForWithdrawalSaveReqVO updateReqVO) {
+        // 校验存在
+        validateApplicationForWithdrawalExists(updateReqVO.getId());
+        // 更新
+        ApplicationForWithdrawalDO updateObj = BeanUtils.toBean(updateReqVO, ApplicationForWithdrawalDO.class);
+        applicationForWithdrawalMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteApplicationForWithdrawal(Long id) {
+        // 校验存在
+        validateApplicationForWithdrawalExists(id);
+        // 删除
+        applicationForWithdrawalMapper.deleteById(id);
+    }
+
+    private void validateApplicationForWithdrawalExists(Long id) {
+        if (applicationForWithdrawalMapper.selectById(id) == null) {
+            throw exception(APPLICATION_FOR_WITHDRAWAL_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public ApplicationForWithdrawalDO getApplicationForWithdrawal(Long id) {
+        return applicationForWithdrawalMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<ApplicationForWithdrawalDO> getApplicationForWithdrawalPage(ApplicationForWithdrawalPageReqVO pageReqVO) {
+        return applicationForWithdrawalMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public List<ApplicationForWithdrawalChannelExcelRespVO> getApplicationForWithdrawalChannelPage(Long id) {
+
+        List<ApplicationForWithdrawalDO> applicationForWithdrawalDOS = applicationForWithdrawalMapper.selectList(ApplicationForWithdrawalDO::getApplicationForWithdrawalChannelId, id, ApplicationForWithdrawalDO::getStatus, 0);
+
+        List<ApplicationForWithdrawalChannelExcelRespVO> list = new ArrayList<>();
+
+        for (ApplicationForWithdrawalDO withdrawalDO : applicationForWithdrawalDOS) {
+            MemberUserDO user = userService.getUser(withdrawalDO.getUserId());
+
+            // 定义日期时间格式
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+            ApplicationForWithdrawalChannelExcelRespVO build = ApplicationForWithdrawalChannelExcelRespVO.builder()
+                    .amount(withdrawalDO.getAmount().toString())
+                    .account(withdrawalDO.getWithdrawalAccount())
+                    .mark("提现日期: " + formatter.format(withdrawalDO.getCreateTime()))
+                    .build();
+
+            if(withdrawalDO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.ALIPAY.getType())){
+                build.setName(user.getAlipayName());
+            }else if(withdrawalDO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.BANK.getType())){
+                build.setName(user.getAccountName());
+            }
+
+            list.add(build);
+        }
+
+        return list;
+    }
+
+}

+ 59 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelService.java

@@ -0,0 +1,59 @@
+package cn.newfeifan.mall.module.distri.service.applicationforwithdrawalchannel;
+
+import javax.validation.*;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+
+/**
+ * 提现渠道记录 Service 接口
+ *
+ * @author 非繁人
+ */
+public interface ApplicationForWithdrawalChannelService {
+
+    /**
+     * 创建提现渠道记录
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createApplicationForWithdrawalChannel(@Valid ApplicationForWithdrawalChannelSaveReqVO createReqVO);
+
+    /**
+     * 更新提现渠道记录
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateApplicationForWithdrawalChannel(@Valid ApplicationForWithdrawalChannelSaveReqVO updateReqVO);
+
+    /**
+     * 删除提现渠道记录
+     *
+     * @param id 编号
+     */
+    void deleteApplicationForWithdrawalChannel(Long id);
+
+    /**
+     * 获得提现渠道记录
+     *
+     * @param id 编号
+     * @return 提现渠道记录
+     */
+    ApplicationForWithdrawalChannelDO getApplicationForWithdrawalChannel(Long id);
+
+    /**
+     * 获得提现渠道记录分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 提现渠道记录分页
+     */
+    PageResult<ApplicationForWithdrawalChannelDO> getApplicationForWithdrawalChannelPage(ApplicationForWithdrawalChannelPageReqVO pageReqVO);
+
+    /**
+     * 更新提现渠道记录
+     *
+     * @param id 编号
+     */
+    void updateApplicationForWithdrawalChannel(Long id);
+}

+ 79 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelServiceImpl.java

@@ -0,0 +1,79 @@
+package cn.newfeifan.mall.module.distri.service.applicationforwithdrawalchannel;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import cn.newfeifan.mall.module.distri.controller.admin.applicationforwithdrawalchannel.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+
+import cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelMapper;
+
+import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
+
+/**
+ * 提现渠道记录 Service 实现类
+ *
+ * @author 非繁人
+ */
+@Service
+@Validated
+public class ApplicationForWithdrawalChannelServiceImpl implements ApplicationForWithdrawalChannelService {
+
+    @Resource
+    private ApplicationForWithdrawalChannelMapper applicationForWithdrawalChannelMapper;
+
+    @Override
+    public Long createApplicationForWithdrawalChannel(ApplicationForWithdrawalChannelSaveReqVO createReqVO) {
+        // 插入
+        ApplicationForWithdrawalChannelDO applicationForWithdrawalChannel = BeanUtils.toBean(createReqVO, ApplicationForWithdrawalChannelDO.class);
+        applicationForWithdrawalChannelMapper.insert(applicationForWithdrawalChannel);
+        // 返回
+        return applicationForWithdrawalChannel.getId();
+    }
+
+    @Override
+    public void updateApplicationForWithdrawalChannel(ApplicationForWithdrawalChannelSaveReqVO updateReqVO) {
+        // 校验存在
+        validateApplicationForWithdrawalChannelExists(updateReqVO.getId());
+        // 更新
+        ApplicationForWithdrawalChannelDO updateObj = BeanUtils.toBean(updateReqVO, ApplicationForWithdrawalChannelDO.class);
+        applicationForWithdrawalChannelMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteApplicationForWithdrawalChannel(Long id) {
+        // 校验存在
+        validateApplicationForWithdrawalChannelExists(id);
+        // 删除
+        applicationForWithdrawalChannelMapper.deleteById(id);
+    }
+
+    private void validateApplicationForWithdrawalChannelExists(Long id) {
+        if (applicationForWithdrawalChannelMapper.selectById(id) == null) {
+            throw exception(APPLICATION_FOR_WITHDRAWAL_CHANNEL_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public ApplicationForWithdrawalChannelDO getApplicationForWithdrawalChannel(Long id) {
+        return applicationForWithdrawalChannelMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<ApplicationForWithdrawalChannelDO> getApplicationForWithdrawalChannelPage(ApplicationForWithdrawalChannelPageReqVO pageReqVO) {
+        return applicationForWithdrawalChannelMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public void updateApplicationForWithdrawalChannel(Long id) {
+        ApplicationForWithdrawalChannelDO channel = applicationForWithdrawalChannelMapper.selectById(id);
+
+        channel.setExcelStatus(true);
+
+        applicationForWithdrawalChannelMapper.updateById(channel);
+    }
+
+}

+ 53 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptdailywithdrawal/PtDailyWithdrawalService.java

@@ -0,0 +1,53 @@
+package cn.newfeifan.mall.module.distri.service.ptdailywithdrawal;
+
+import javax.validation.*;
+import cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.ptdailywithdrawal.PtDailyWithdrawalDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+
+/**
+ * 平台每日提现记录 Service 接口
+ *
+ * @author 非繁人
+ */
+public interface PtDailyWithdrawalService {
+
+    /**
+     * 创建平台每日提现记录
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createPtDailyWithdrawal(@Valid PtDailyWithdrawalSaveReqVO createReqVO);
+
+    /**
+     * 更新平台每日提现记录
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updatePtDailyWithdrawal(@Valid PtDailyWithdrawalSaveReqVO updateReqVO);
+
+    /**
+     * 删除平台每日提现记录
+     *
+     * @param id 编号
+     */
+    void deletePtDailyWithdrawal(Long id);
+
+    /**
+     * 获得平台每日提现记录
+     *
+     * @param id 编号
+     * @return 平台每日提现记录
+     */
+    PtDailyWithdrawalDO getPtDailyWithdrawal(Long id);
+
+    /**
+     * 获得平台每日提现记录分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 平台每日提现记录分页
+     */
+    PageResult<PtDailyWithdrawalDO> getPtDailyWithdrawalPage(PtDailyWithdrawalPageReqVO pageReqVO);
+
+}

+ 71 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptdailywithdrawal/PtDailyWithdrawalServiceImpl.java

@@ -0,0 +1,71 @@
+package cn.newfeifan.mall.module.distri.service.ptdailywithdrawal;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+import cn.newfeifan.mall.module.distri.controller.admin.ptdailywithdrawal.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.ptdailywithdrawal.PtDailyWithdrawalDO;
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+
+import cn.newfeifan.mall.module.distri.dal.mysql.ptdailywithdrawal.PtDailyWithdrawalMapper;
+
+import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
+
+/**
+ * 平台每日提现记录 Service 实现类
+ *
+ * @author 非繁人
+ */
+@Service
+@Validated
+public class PtDailyWithdrawalServiceImpl implements PtDailyWithdrawalService {
+
+    @Resource
+    private PtDailyWithdrawalMapper ptDailyWithdrawalMapper;
+
+    @Override
+    public Long createPtDailyWithdrawal(PtDailyWithdrawalSaveReqVO createReqVO) {
+        // 插入
+        PtDailyWithdrawalDO ptDailyWithdrawal = BeanUtils.toBean(createReqVO, PtDailyWithdrawalDO.class);
+        ptDailyWithdrawalMapper.insert(ptDailyWithdrawal);
+        // 返回
+        return ptDailyWithdrawal.getId();
+    }
+
+    @Override
+    public void updatePtDailyWithdrawal(PtDailyWithdrawalSaveReqVO updateReqVO) {
+        // 校验存在
+        validatePtDailyWithdrawalExists(updateReqVO.getId());
+        // 更新
+        PtDailyWithdrawalDO updateObj = BeanUtils.toBean(updateReqVO, PtDailyWithdrawalDO.class);
+        ptDailyWithdrawalMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deletePtDailyWithdrawal(Long id) {
+        // 校验存在
+        validatePtDailyWithdrawalExists(id);
+        // 删除
+        ptDailyWithdrawalMapper.deleteById(id);
+    }
+
+    private void validatePtDailyWithdrawalExists(Long id) {
+        if (ptDailyWithdrawalMapper.selectById(id) == null) {
+            throw exception(PT_DAILY_WITHDRAWAL_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public PtDailyWithdrawalDO getPtDailyWithdrawal(Long id) {
+        return ptDailyWithdrawalMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<PtDailyWithdrawalDO> getPtDailyWithdrawalPage(PtDailyWithdrawalPageReqVO pageReqVO) {
+        return ptDailyWithdrawalMapper.selectPage(pageReqVO);
+    }
+
+}

+ 7 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptsettlement/PtSettlementServiceImpl.java

@@ -65,7 +65,13 @@ public class PtSettlementServiceImpl implements PtSettlementService {
 
     @Override
     public PageResult<PtSettlementDO> getPtSettlementPage(PtSettlementPageReqVO pageReqVO) {
-        return ptSettlementMapper.selectPage(pageReqVO);
+        PageResult<PtSettlementDO> result = ptSettlementMapper.selectPage(pageReqVO);
+
+        for (PtSettlementDO ptSettlementDO : result.getList()) {
+            ptSettlementDO.setCreateTime(ptSettlementDO.getCreateTime().minusDays(1));
+        }
+
+        return result;
     }
 
 }

+ 12 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/shopsettlement/ShopSettlementService.java

@@ -1,10 +1,14 @@
 package cn.newfeifan.mall.module.distri.service.shopsettlement;
 
 import javax.validation.*;
+
+import cn.newfeifan.mall.module.distri.controller.admin.ptsettlement.vo.TransferTemplateRespVO;
 import cn.newfeifan.mall.module.distri.controller.admin.shopsettlement.vo.*;
 import cn.newfeifan.mall.module.distri.dal.dataobject.shopsettlement.ShopSettlementDO;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 
+import java.util.List;
+
 /**
  * 订单结算信息表,记录店铺的结算信息 Service 接口
  *
@@ -50,6 +54,14 @@ public interface ShopSettlementService {
      */
     PageResult<ShopSettlementRespVO> getShopSettlementPage(ShopSettlementPageReqVO pageReqVO);
 
+    /**
+     * 获得订单结算信息表,记录店铺的结算信息分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 订单结算信息表,记录店铺的结算信息分页
+     */
+    List<TransferTemplateRespVO> excelShopSettlementPage(ShopSettlementPageReqVO pageReqVO);
+
     /**
      * 结算已确权订单(也是按照每个店铺)
      */

+ 36 - 4
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/shopsettlement/ShopSettlementServiceImpl.java

@@ -1,6 +1,9 @@
 package cn.newfeifan.mall.module.distri.service.shopsettlement;
 
+import cn.newfeifan.mall.module.api.shop.ShopApi;
+import cn.newfeifan.mall.module.api.shop.dto.ShopDTO;
 import cn.newfeifan.mall.module.distri.constant.DistriConstants;
+import cn.newfeifan.mall.module.distri.controller.admin.ptsettlement.vo.TransferTemplateRespVO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.orderitemsettlement.OrderItemSettlementDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ordersettlement.OrderSettlementDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ptsettlement.PtSettlementDO;
@@ -26,6 +29,7 @@ import cn.newfeifan.mall.module.distri.dal.mysql.shopsettlement.ShopSettlementMa
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -58,6 +62,9 @@ public class ShopSettlementServiceImpl implements ShopSettlementService {
     @Resource
     private PtSettlementMapper ptSettlementMapper;
 
+    @Resource
+    private ShopApi shopApi;
+
     @Override
     public Long createShopSettlement(ShopSettlementSaveReqVO createReqVO) {
         // 插入
@@ -105,6 +112,31 @@ public class ShopSettlementServiceImpl implements ShopSettlementService {
         return result;
     }
 
+    @Override
+    public List<TransferTemplateRespVO> excelShopSettlementPage(ShopSettlementPageReqVO pageReqVO) {
+        PageResult<ShopSettlementDO> shopSettlementDOPageResult = shopSettlementMapper.selectPage(pageReqVO);
+
+        PageResult<ShopSettlementRespVO> result = BeanUtils.toBean(shopSettlementDOPageResult, ShopSettlementRespVO.class);
+
+        List<TransferTemplateRespVO> list = new ArrayList<>();
+
+        for (ShopSettlementRespVO respVO : result.getList()) {
+            ShopDTO shop = shopApi.getShop(respVO.getShopId());
+
+            // 定义日期时间格式
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+            list.add(TransferTemplateRespVO.builder()
+                    .payeeName(shop.getAccountName())
+                    .payeeAccount(shop.getAccountNumber())
+                    .payeeBankName(shop.getBankName())
+                    .money(respVO.getShopTotalHighAmount().divide(BigDecimal.valueOf(DistriConstants.ONE_HUNDRED), 2, RoundingMode.HALF_UP).toString())
+                    .mark("账单日期: " + formatter.format(respVO.getCreateTime().minusDays(1)))
+                    .build());
+        }
+        return list;
+    }
+
     /**
      * 把数据库的积分转换为数据库的钱
      *
@@ -112,8 +144,8 @@ public class ShopSettlementServiceImpl implements ShopSettlementService {
      * @return 钱
      */
     public static Integer integral2Money(Long integral) {
-        Long l = (integral / DistriConstants.MONEY2INTEGRAL);
-        return l.intValue();
+        long l = (integral / DistriConstants.MONEY2INTEGRAL);
+        return (int) l;
     }
 
     @Override
@@ -130,7 +162,7 @@ public class ShopSettlementServiceImpl implements ShopSettlementService {
         // 代收积分
         Long ptPayIntegral = 0L;
         // 店铺应得金额(成本 * 数量)
-        Integer ptShopAmount = 0;
+        int ptShopAmount = 0;
         BigDecimal ptShopHighAmount = BigDecimal.ZERO;
 
         for (MerchantDTO merchant : merchantDTOS) {
@@ -149,7 +181,7 @@ public class ShopSettlementServiceImpl implements ShopSettlementService {
                 // 代收积分
                 Long payIntegral = 0L;
                 // 店铺应得金额(成本 * 数量)
-                Integer shopAmount = 0;
+                int shopAmount = 0;
                 BigDecimal shopHighAmount = BigDecimal.ZERO;
 
                 //获取该店铺下的订单

+ 12 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/applicationforwithdrawal/ApplicationForWithdrawalMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawal.ApplicationForWithdrawalMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 12 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/applicationforwithdrawalchannel/ApplicationForWithdrawalChannelMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.applicationforwithdrawalchannel.ApplicationForWithdrawalChannelMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 12 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptdailywithdrawal/PtDailyWithdrawalMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.ptdailywithdrawal.PtDailyWithdrawalMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 5 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -385,6 +385,11 @@ public class TradeOrderController {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
 
         List<DailyBillOrderRespVO> list = TradeOrderConvert.INSTANCE.convertDailyBillOrder(tradeOrderQueryService.getOrderPage(pageReqVO).getList());
+
+        for (DailyBillOrderRespVO respVO : list) {
+            respVO.setUsername(memberUserApi.getUser(respVO.getUserId()).getUsername());
+        }
+
         // 导出 Excel
         ExcelUtils.write(response, "每日账单下的订单.xls", "数据", DailyBillOrderRespVO.class,
                 list);

+ 16 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/excelVO/DailyBillOrderRespVO.java

@@ -31,6 +31,22 @@ public class DailyBillOrderRespVO {
     @ExcelProperty("积分抵扣")
     private Double payIntegral;
 
+    @Schema(description = "用户id")
+    private Long userId;
+
+    @Schema(description = "用户名")
+    @ExcelProperty("用户名")
+    private String username;
+
+    @Schema(description = "购买数量")
+    @ExcelProperty("购买数量")
+    private Integer productCount;
+
+    @Schema(description = "收货地址")
+    @ExcelProperty("收货地址")
+    private String receiverDetailAddress;
+
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("下单时间")
     private LocalDateTime createTime;

+ 5 - 1
feifan-module-member/feifan-module-member-api/src/main/java/cn/newfeifan/mall/module/member/api/user/dto/MemberUserRespDTO.java

@@ -27,7 +27,6 @@ public class MemberUserRespDTO {
     private String nickname;
     /**
      * 帐号状态
-     *
      * 枚举 {@link CommonStatusEnum}
      */
     private Integer status;
@@ -56,4 +55,9 @@ public class MemberUserRespDTO {
      */
     private Integer point;
 
+    /**
+     * 用户名
+     */
+    private String username;
+
 }

+ 15 - 0
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserBaseVO.java

@@ -97,4 +97,19 @@ public class MemberUserBaseVO {
     @Schema(description = "累计消费金额(只算人民币,单位为分)")
     private Long cumulativeSpending;
 
+    @Schema(description = "支付宝账号", example = "6872")
+    private String alipayAccount;
+
+    @Schema(description = "支付宝名称", example = "李四")
+    private String alipayName;
+
+    @Schema(description = "开户行名称", example = "李四")
+    private String bankName;
+
+    @Schema(description = "开户名", example = "王五")
+    private String accountName;
+
+    @Schema(description = "银行账号", example = "31488")
+    private String bankAccount;
+
 }

+ 15 - 0
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserPageReqVO.java

@@ -84,4 +84,19 @@ public class MemberUserPageReqVO extends PageParam {
 
     @Schema(description = "用户名")
     private String username;
+
+    @Schema(description = "支付宝账号", example = "6872")
+    private String alipayAccount;
+
+    @Schema(description = "支付宝名称", example = "李四")
+    private String alipayName;
+
+    @Schema(description = "开户行名称", example = "李四")
+    private String bankName;
+
+    @Schema(description = "开户名", example = "王五")
+    private String accountName;
+
+    @Schema(description = "银行账号", example = "31488")
+    private String bankAccount;
 }

+ 15 - 0
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserRespVO.java

@@ -100,4 +100,19 @@ public class MemberUserRespVO extends MemberUserBaseVO {
 
     @Schema(description = "峰值累计")
     private Long highQuotaTotal;
+
+    @Schema(description = "支付宝账号", example = "6872")
+    private String alipayAccount;
+
+    @Schema(description = "支付宝名称", example = "李四")
+    private String alipayName;
+
+    @Schema(description = "开户行名称", example = "李四")
+    private String bankName;
+
+    @Schema(description = "开户名", example = "王五")
+    private String accountName;
+
+    @Schema(description = "银行账号", example = "31488")
+    private String bankAccount;
 }

+ 21 - 0
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/dal/dataobject/user/MemberUserDO.java

@@ -192,4 +192,25 @@ public class MemberUserDO extends TenantBaseDO {
      */
     private String username;
 
+    /**
+     * 支付宝账号
+     */
+    private String alipayAccount;
+    /**
+     * 支付宝名称
+     */
+    private String alipayName;
+    /**
+     * 开户行名称
+     */
+    private String bankName;
+    /**
+     * 开户名
+     */
+    private String accountName;
+    /**
+     * 银行账号
+     */
+    private String bankAccount;
+
 }

+ 11 - 0
feifan-module-sale/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/api/shop/ShopApi.java

@@ -0,0 +1,11 @@
+package cn.newfeifan.mall.module.api.shop;
+
+import cn.newfeifan.mall.module.api.shop.dto.ShopDTO;
+
+/**
+ * 获取店铺接口
+ */
+public interface ShopApi {
+
+    ShopDTO getShop(Long id);
+}

+ 41 - 0
feifan-module-sale/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/api/shop/dto/ShopDTO.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.api.shop.dto;
+
+import lombok.Data;
+
+@Data
+public class ShopDTO {
+    private Long id;
+    /**
+     * 店铺名称
+     */
+    private String name;
+    /**
+     * 店铺状态
+     */
+    private Integer status;
+    /**
+     * 商户id
+     */
+    private Long merchantId;
+    /**
+     * logo地址
+     */
+    private String logoUrl;
+    /**
+     * 域名
+     */
+    private String website;
+
+    /**
+     * 账户名称
+     */
+    private String accountName;
+    /**
+     * 账户号码
+     */
+    private String accountNumber;
+    /**
+     * 开户银行
+     */
+    private String bankName;
+}

+ 21 - 0
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/api/shop/ShopApiImpl.java

@@ -0,0 +1,21 @@
+package cn.newfeifan.mall.sale.api.shop;
+
+import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
+import cn.newfeifan.mall.module.api.shop.ShopApi;
+import cn.newfeifan.mall.module.api.shop.dto.ShopDTO;
+import cn.newfeifan.mall.sale.service.shop.ShopService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class ShopApiImpl implements ShopApi {
+
+    @Resource
+    private ShopService shopService;
+
+    @Override
+    public ShopDTO getShop(Long id) {
+        return BeanUtils.toBean(shopService.getShop(id), ShopDTO.class);
+    }
+}

+ 11 - 2
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantSaveReqVO.java

@@ -2,9 +2,7 @@ package cn.newfeifan.mall.sale.controller.admin.merchant.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
-import java.util.*;
 import javax.validation.constraints.*;
-import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - 商户新增/修改 Request VO")
@@ -74,6 +72,17 @@ public class MerchantSaveReqVO {
     private Long areaId;
 
 
+    @Schema(description = "账户名称", example = "非繁人")
+    @NotEmpty(message = "账户名称不能为空")
+    private String accountName;
+
+    @Schema(description = "账户号码")
+    @NotEmpty(message = "账户号码不能为空")
+    private String accountNumber;
+
+    @Schema(description = "开户银行", example = "李四")
+    @NotEmpty(message = "开户银行不能为空")
+    private String bankName;
 
 
 }

+ 9 - 1
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopPageReqVO.java

@@ -1,7 +1,6 @@
 package cn.newfeifan.mall.sale.controller.admin.shop.vo;
 
 import lombok.*;
-import java.util.*;
 import io.swagger.v3.oas.annotations.media.Schema;
 import cn.newfeifan.mall.framework.common.pojo.PageParam;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -31,4 +30,13 @@ public class ShopPageReqVO extends PageParam {
     @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
     private String logoUrl;
 
+    @Schema(description = "账户名称", example = "非繁人")
+    private String accountName;
+
+    @Schema(description = "账户号码")
+    private String accountNumber;
+
+    @Schema(description = "开户银行", example = "李四")
+    private String bankName;
+
 }

+ 12 - 3
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopRespVO.java

@@ -2,9 +2,6 @@ package cn.newfeifan.mall.sale.controller.admin.shop.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 import com.alibaba.excel.annotation.*;
 
@@ -45,4 +42,16 @@ public class ShopRespVO {
     @ExcelProperty("最后更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "账户名称", example = "非繁人")
+    @ExcelProperty("账户名称")
+    private String accountName;
+
+    @Schema(description = "账户号码")
+    @ExcelProperty("账户号码")
+    private String accountNumber;
+
+    @Schema(description = "开户银行", example = "李四")
+    @ExcelProperty("开户银行")
+    private String bankName;
+
 }

+ 12 - 1
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopSaveReqVO.java

@@ -3,7 +3,6 @@ package cn.newfeifan.mall.sale.controller.admin.shop.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import java.util.*;
 import javax.validation.constraints.*;
 
 @Schema(description = "管理后台 - 店铺新增/修改 Request VO")
@@ -34,5 +33,17 @@ public class ShopSaveReqVO {
     @Schema(description = "域名", example = "https://www.zhongxing.cn")
     private String website;
 
+    @Schema(description = "账户名称", example = "非繁人")
+    @NotNull(message = "账户名称不能为空")
+    private String accountName;
+
+    @Schema(description = "账户号码")
+    @NotNull(message = "账户号码不能为空")
+    private String accountNumber;
+
+    @Schema(description = "开户银行", example = "李四")
+    @NotNull(message = "开户银行不能为空")
+    private String bankName;
+
 
 }

+ 13 - 3
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/dal/dataobject/shop/ShopDO.java

@@ -2,9 +2,6 @@ package cn.newfeifan.mall.sale.dal.dataobject.shop;
 
 import lombok.*;
 
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
 import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
@@ -50,4 +47,17 @@ public class ShopDO extends BaseDO {
      */
     private String website;
 
+    /**
+     * 账户名称
+     */
+    private String accountName;
+    /**
+     * 账户号码
+     */
+    private String accountNumber;
+    /**
+     * 开户银行
+     */
+    private String bankName;
+
 }

+ 1 - 3
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantServiceImpl.java

@@ -13,7 +13,6 @@ import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantRespVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopRespVO;
-import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
 import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
 import cn.newfeifan.mall.sale.dal.mysql.merchant.MerchantMapper;
 import cn.newfeifan.mall.sale.dal.redis.ShopMessage;
@@ -34,7 +33,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.module.enums.ErrorCodeConstants.MERCHANT_NOT_EXISTS;
@@ -70,7 +68,7 @@ public class MerchantServiceImpl implements MerchantService {
         merchantMapper.insert(merchant);
 
         // 创建一个店铺
-        Long shopId = shopService.createShop(merchant);
+        Long shopId = shopService.createShop(merchant, createReqVO);
         // 创建商户的时候, 根据手机号, 创建一个新的账号
         // 如果这个手机号已经存在, 则提示该手机号已经存在
         AdminUserDO adminUserDO = userMapper.selectByMobile(merchant.getContactNumber());

+ 3 - 1
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopService.java

@@ -3,6 +3,7 @@ package cn.newfeifan.mall.sale.service.shop;
 import javax.validation.*;
 
 import cn.newfeifan.mall.module.system.controller.admin.user.vo.user.UserRespVO;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopRespVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
 import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
@@ -32,9 +33,10 @@ public interface ShopService {
      * 创建店铺
      *
      * @param createReqVO 创建信息
+     * @param reqVO
      * @return 编号
      */
-    Long createShop( MerchantDO createReqVO);
+    Long createShop(MerchantDO createReqVO, MerchantSaveReqVO reqVO);
 
 
     /**

+ 7 - 2
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopServiceImpl.java

@@ -8,6 +8,7 @@ import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
 import cn.newfeifan.mall.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO;
 import cn.newfeifan.mall.module.system.service.permission.RoleService;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopRespVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
@@ -58,13 +59,17 @@ public class ShopServiceImpl implements ShopService {
     }
 
     @Override
-    public Long createShop(MerchantDO createReqVO) {
+    public Long createShop(MerchantDO createReqVO, MerchantSaveReqVO reqVO) {
         ShopSaveReqVO build = ShopSaveReqVO.builder()
                 .logoUrl("")
                 .status(1)
                 .website(createReqVO.getWebsite())
                 .name(createReqVO.getName())
-                .merchantId(createReqVO.getId()).build();
+                .merchantId(createReqVO.getId())
+                .accountName(reqVO.getAccountName())
+                .accountNumber(reqVO.getAccountNumber())
+                .bankName(reqVO.getBankName())
+                .build();
         ShopDO shop = BeanUtils.toBean(build, ShopDO.class);
         shopMapper.insert(shop);
         return shop.getId();

+ 0 - 4
sql/mysql/建空库SQL/14_20240625.sql

@@ -15,7 +15,3 @@ ALTER TABLE distri_daily_bill
 ALTER TABLE trade_order_item
     ADD COLUMN `computation_bill` bit(1) DEFAULT b'0' COMMENT '是否已经计算每日账单,已计算是1,未计算为0';
 
-ALTER TABLE sale_shop
-    ADD COLUMN `receiving_bank_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收款银行账号',
-	ADD COLUMN `receiving_bank_account_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收款银行名称';
-

+ 60 - 0
sql/mysql/建空库SQL/18_20240717.sql

@@ -0,0 +1,60 @@
+ALTER TABLE member_user
+    ADD COLUMN `alipay_account` VARCHAR(255) default null COMMENT '支付宝账号',
+		ADD COLUMN `alipay_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci default null COMMENT '支付宝名称',
+		ADD COLUMN `bank_name` VARCHAR(255) default null COMMENT '开户行名称',
+		ADD COLUMN `account_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci default null COMMENT '开户名',
+		ADD COLUMN `bank_account` VARCHAR(255) default null COMMENT '银行账号';
+
+
+CREATE TABLE `distri_application_for_withdrawal` (
+                                                     `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请id',
+                                                     `user_id` bigint NOT NULL COMMENT '用户ID',
+                                                     `withdrawal_type` tinyint NOT NULL COMMENT '提现渠道类型',
+                                                     `amount` bigint NOT NULL COMMENT '提现金额,单位:元',
+                                                     `withdrawal_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '提现账号',
+                                                     `status` bit(1) DEFAULT b'0' COMMENT '提现状态,已完成是1,未完成为0',
+                                                     `application_for_withdrawal_channel_id` bigint NOT NULL COMMENT '提现渠道记录id',
+                                                     `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '创建者',
+                                                     `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                                     `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '更新者',
+                                                     `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+                                                     `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
+                                                     PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='提现申请记录表';
+
+CREATE TABLE `distri_application_for_withdrawal_channel` (
+                                                             `id` bigint NOT NULL AUTO_INCREMENT COMMENT '提现渠道id',
+                                                             `withdrawal_type` tinyint NOT NULL COMMENT '提现渠道类型',
+                                                             `withdrawal_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '提现渠道名称',
+                                                             `amount` bigint NOT NULL DEFAULT '0' COMMENT '提现金额,单位:元',
+                                                             `count` int NOT NULL DEFAULT '0' COMMENT '提现笔数',
+                                                             `status` bit(1) DEFAULT b'0' COMMENT '提现状态,已完成是1,未完成为0',
+                                                             `pt_daily_withdrawal_id` bigint NOT NULL COMMENT '提现渠道记录id',
+                                                             `excel_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '导出状态,已导出是1,未导出为0',
+                                                             `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '创建者',
+                                                             `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                                             `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '更新者',
+                                                             `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+                                                             `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
+                                                             PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='提现渠道记录表';
+
+CREATE TABLE `distri_pt_daily_withdrawal` (
+                                              `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录id',
+                                              `amount` bigint NOT NULL DEFAULT '0' COMMENT '提现金额,单位:元',
+                                              `count` int NOT NULL DEFAULT '0' COMMENT '提现笔数',
+                                              `status` tinyint DEFAULT '0' COMMENT '提现状态,0:待转账 1:全部完成 2:部分完成',
+                                              `start_time` datetime NOT NULL COMMENT '提现开始时间',
+                                              `end_time` datetime NOT NULL COMMENT '提现截止时间',
+                                              `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '创建者',
+                                              `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                              `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '更新者',
+                                              `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+                                              `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
+                                              PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='平台每日提现记录表';
+
+ALTER TABLE sale_shop
+    ADD COLUMN `account_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT null COMMENT '账户名称',
+		ADD COLUMN `account_number` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT null COMMENT '账户号码',
+		ADD COLUMN `bank_name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT null COMMENT '开户银行';