From 8eff6445ef97d920d61c60046aaf50e1b5be4d4e Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 28 十月 2024 17:14:14 +0800
Subject: [PATCH] add: 钱包供应商财务

---
 src/main/java/com/mzl/flower/mapper/wallet/WalletBillRecordMapper.java            |    5 --
 src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java           |    2 
 src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java          |    3 +
 src/main/resources/mapper/wallet/WalletBillRecordMapper.xml                       |    8 +--
 src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java |    2 
 src/main/java/com/mzl/flower/web/v2/wallet/WalletBillRecordController.java        |   42 ++------------------
 6 files changed, 13 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/mzl/flower/mapper/wallet/WalletBillRecordMapper.java b/src/main/java/com/mzl/flower/mapper/wallet/WalletBillRecordMapper.java
index a9e005c..b8fcff6 100644
--- a/src/main/java/com/mzl/flower/mapper/wallet/WalletBillRecordMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/wallet/WalletBillRecordMapper.java
@@ -1,14 +1,11 @@
 package com.mzl.flower.mapper.wallet;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mzl.flower.dto.request.wallet.QueryWalletBillDTO;
-import com.mzl.flower.dto.response.wallet.WalletBillRecordVO;
-import com.mzl.flower.dto.response.wallet.WalletWithdrawRecordVO;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mzl.flower.dto.request.wallet.QueryWalletBillRecordDTO;
 import com.mzl.flower.dto.response.wallet.WalletBillRecordVO;
 import com.mzl.flower.entity.wallet.WalletBillRecordDO;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
index a093b30..455e4c9 100644
--- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
@@ -176,7 +176,7 @@
             int a = 0;
             objs[a++] = sn; // 序号
             objs[a++] = o.getSupplierName()+":"+o.getSupplierId(); // 供应商信息
-            objs[a++] = o.getTypeStr(); // 变动类型
+            objs[a++] = o.getTypeName(); // 变动类型
             objs[a++] = o.getOriginalAmount(); // 原金额
             objs[a++] = o.getChangeAmount(); // 变动金额
             objs[a++] = o.getBalance(); //现余额
diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
index 45291a2..40beec9 100644
--- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
@@ -96,7 +96,7 @@
                         walletDO.setSettlingAmount(BigDecimal.ZERO);
                         walletDO.setTotalDeduction(BigDecimal.ZERO);
                         walletDO.setTotalTransactionAmount(BigDecimal.ZERO);
-                        walletDO.setSettlingAmount(BigDecimal.ZERO);
+                        walletDO.setSettledAmount(BigDecimal.ZERO);
                         walletDO.create(SecurityUtils.getUserId());
                         baseMapper.insert(walletDO);
                         // 将再次查询的结果返回
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
index 9bad835..1bab152 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
@@ -732,7 +732,7 @@
                 serviceFee = serviceFee.add(ois.getServiceFee());
                 serviceFeeRate = ois.getServiceFeeRate();
                 settlementAmount = settlementAmount.add(ois.getIncomeSupplier());
-                WalletDO walletDO = walletService.getBySupplierId(supplierId);
+                WalletDO walletDO = walletService.getOrCreateBySupplierId(supplierId);
                 RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId()));
                 try {
                     if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {
@@ -766,6 +766,7 @@
                             //已结算金额
                             walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(ois.getIncomeSupplier()));
                             walletMapper.updateById(walletDOInfo);
+                            walletBillRecord.create();
                             walletBillRecordMapper.insert(walletBillRecord);
                         } finally {
                             lock.unlock();
diff --git a/src/main/java/com/mzl/flower/web/v2/wallet/WalletBillRecordController.java b/src/main/java/com/mzl/flower/web/v2/wallet/WalletBillRecordController.java
index 2cc4db2..30c458a 100644
--- a/src/main/java/com/mzl/flower/web/v2/wallet/WalletBillRecordController.java
+++ b/src/main/java/com/mzl/flower/web/v2/wallet/WalletBillRecordController.java
@@ -5,24 +5,12 @@
 import com.mzl.flower.base.BaseController;
 import com.mzl.flower.base.R;
 import com.mzl.flower.base.ReturnDataDTO;
-import com.mzl.flower.dto.request.report.QueryPartnerOrderDTO;
-import com.mzl.flower.dto.request.wallet.QueryWalletBillRecordDTO;
-import com.mzl.flower.dto.request.wallet.QueryWalletWithdrawDTO;
-import com.mzl.flower.dto.response.wallet.WalletBillRecordVO;
-import com.mzl.flower.dto.response.wallet.WalletWithdrawRecordVO;
-
-import com.mzl.flower.config.exception.ValidationException;
-import com.mzl.flower.dto.request.wallet.CreateWalletBillRecordDTO;
 import com.mzl.flower.dto.request.wallet.QueryWalletBillDTO;
+import com.mzl.flower.dto.request.wallet.QueryWalletBillRecordDTO;
 import com.mzl.flower.dto.response.wallet.WalletBillRecordVO;
-import com.mzl.flower.entity.supplier.Supplier;
-import com.mzl.flower.entity.wallet.WalletDO;
-import com.mzl.flower.mapper.supplier.SupplierMapper;
 import com.mzl.flower.service.supplier.SupplierService;
 import com.mzl.flower.service.wallet.WalletBillRecordService;
 import io.swagger.annotations.ApiOperation;
-import com.mzl.flower.service.wallet.WalletReduceService;
-import com.mzl.flower.service.wallet.WalletService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -45,31 +33,10 @@
     @Autowired
     private SupplierService supplierService;
 
-    @PostMapping("")
-    public ResponseEntity<ReturnDataDTO> create(@Validated @RequestBody CreateWalletBillRecordDTO dto) {
-
-
-        return returnData(R.SUCCESS.getCode(), null);
-    }
-
-    @PutMapping("/{id}")
-    public ResponseEntity<ReturnDataDTO>  update(@PathVariable @Positive(message = "{id.positive}") Integer id) {
-        return returnData(R.SUCCESS.getCode(), null);
-    }
-
-    @DeleteMapping("/{id}")
-    public ResponseEntity<ReturnDataDTO>  delete(@PathVariable @Positive(message = "{id.positive}") Integer id) {
-        return returnData(R.SUCCESS.getCode(), null);
-
     @GetMapping("/list")
     @ApiOperation(value = "供应商财务-分页", httpMethod = "GET")
     public ResponseEntity<ReturnDataDTO<Page<WalletBillRecordVO>>> getMemberList(Page page, QueryWalletBillRecordDTO dto) {
         return returnData(R.SUCCESS.getCode(), walletBillRecordService.queryPage(dto, page));
-    }
-
-    @GetMapping("/{id}")
-    public WalletBillRecordDO get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) {
-        return null;
     }
 
     @GetMapping("/page")
@@ -77,12 +44,13 @@
     ) {
         // 根据当前用户获取供应商
         dto.setSupplierId(supplierService.getCurrentSupplier().getId());
-        return returnData(R.SUCCESS.getCode(), walletBillRecordService.getPage(page,dto));
+        return returnData(R.SUCCESS.getCode(), walletBillRecordService.getPage(page, dto));
 
+    }
     @GetMapping({"/export"})
     @ApiOperation(value = "供应商财务导出")
-    public void partnerExportSales(HttpServletResponse response, @Validated QueryWalletBillRecordDTO dto){
+    public void partnerExportSales(HttpServletResponse response, @Validated QueryWalletBillRecordDTO dto) {
         walletBillRecordService.exportSupplierFinanceList(response, dto);
     }
-
 }
+
diff --git a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
index 676d23e..88825d4 100644
--- a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
+++ b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
@@ -40,7 +40,6 @@
     <select id="queryPage" resultType="com.mzl.flower.dto.response.wallet.WalletBillRecordVO">
         select t.* ,s.name supplierName from t_wallet_bill_record t
         left join t_supplier_info s on t.supplier_id = s.id
-        left join t_order o on t.order_id = o.id
         left join t_wallet_withdraw_record w on t.withdraw_record_id = w.id
         where t.deleted= 0
         <if test="dto.supplierName != null and dto.supplierName != ''">
@@ -53,10 +52,10 @@
             and t.type = #{type}
         </if>
         <if test="dto.orderNo != null and dto.orderNo != ''">
-            and o.order_no = like concat('%', #{orderNo}, '%')
+            and torder_no = like concat('%', #{orderNo}, '%')
         </if>
         <if test="dto.createStartDate!=null ">
-            <![CDATA[
+            <![CDATA[.
                AND w.create_time &gt;= #{dto.createStartDate}
             ]]>
         </if>
@@ -82,7 +81,6 @@
     <select id="queryWalletBillRecordList" resultType="com.mzl.flower.dto.response.wallet.WalletBillRecordVO">
         select t.* ,s.name supplierName from t_wallet_bill_record t
         left join t_supplier_info s on t.supplier_id = s.id
-        left join t_order o on t.order_id = o.id
         left join t_wallet_withdraw_record w on t.withdraw_record_id = w.id
         where t.deleted= 0
         <if test="dto.supplierName != null and dto.supplierName != ''">
@@ -95,7 +93,7 @@
             and t.type = #{type}
         </if>
         <if test="dto.orderNo != null and dto.orderNo != ''">
-            and o.order_no = like concat('%', #{orderNo}, '%')
+            and t.order_no = like concat('%', #{orderNo}, '%')
         </if>
         <if test="dto.createStartDate!=null ">
             <![CDATA[

--
Gitblit v1.9.3