Browse Source

增加结账单的转账模板导出,修改导出提现表的展示数据

Yangzw 7 months ago
parent
commit
2186200411

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

@@ -89,7 +89,7 @@ public class ApplicationForWithdrawalController {
             if(applicationForWithdrawalRespVO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.ALIPAY.getType())){
                 applicationForWithdrawalRespVO.setAccountName(user.getAlipayName());
             }else if(applicationForWithdrawalRespVO.getWithdrawalType().equals(WithdrawalChannelTypeEnum.BANK.getType())){
-                applicationForWithdrawalRespVO.setAccountName(user.getBankName());
+                applicationForWithdrawalRespVO.setAccountName(user.getAccountName());
             }
         }
 

+ 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;
+
+
+
+}

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

@@ -10,6 +10,7 @@ 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.*;
@@ -89,16 +90,19 @@ public class ApplicationForWithdrawalServiceImpl implements ApplicationForWithdr
         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("提现日期: " + withdrawalDO.getCreateTime().toString())
+                    .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.getBankName());
+                build.setName(user.getAccountName());
             }
 
             list.add(build);

+ 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;
 
                 //获取该店铺下的订单