Bläddra i källkod

Merge branch 'refs/heads/dev-对账管理' into dev-test

codingliang 1 år sedan
förälder
incheckning
59b36dacb9

+ 19 - 3
src/main/java/com/sqx/modules/reconciliation/model/CashOutRecordBO.java

@@ -17,17 +17,33 @@ public class CashOutRecordBO {
     private Long userId;
 
     /**
-     * 商家提现金额
+     * 提现金额(所有申请,包含已成功、已拒绝、申请中)
      */
     private BigDecimal payouts;
 
     /**
-     * 商家提现手续费
+     * 提现手续费(所有申请,包含已成功、已拒绝、申请中)
      */
     private BigDecimal payoutsRates;
 
     /**
-     * 商家提现次数
+     * 提现次数(所有申请,包含已成功、已拒绝、申请中)
      */
     private Integer payoutsCount;
+
+    /**
+     * 商家已成功提现金额
+     */
+    private BigDecimal payoutsOfSuccess;
+
+    /**
+     * 已成功提现手续费
+     */
+    private BigDecimal payoutsRatesOfSuccess;
+
+    /**
+     * 已成功提现次数
+     */
+    private Integer payoutsCountOfSuccess;
+
 }

+ 21 - 0
src/main/java/com/sqx/modules/reconciliation/model/PlatformBill.java

@@ -1,6 +1,7 @@
 package com.sqx.modules.reconciliation.model;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -104,4 +105,24 @@ public class PlatformBill implements Serializable {
     @ApiModelProperty(value = "商户余额")
     private BigDecimal shopBalance;
 
+    /**
+     * 临时存储
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家已成功提现金额")
+    private BigDecimal payoutsOfSuccess;
+
+    /**
+     * 临时存储
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "已成功提现手续费")
+    private BigDecimal payoutsRatesOfSuccess;
+
+    /**
+     * 临时存储
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "已成功提现次数")
+    private Integer payoutsCountOfSuccess;
 }

+ 25 - 11
src/main/java/com/sqx/modules/reconciliation/service/impl/PlatformBillServiceImpl.java

@@ -376,22 +376,22 @@ public class PlatformBillServiceImpl extends ServiceImpl<PlatformBillMapper, Pla
         // 平台对账
         platformBill.setType("0");
 
-        // 平台总收入等于所有支付金额
-        platformBill.setRevenue(sum(shopPlatformBills, PlatformBill::getPayMoney));
+        // 平台总收入等于所有支付金额-退款金额
+        platformBill.setRevenue(sum(shopPlatformBills, PlatformBill::getPayMoney).subtract(sum(shopPlatformBills, PlatformBill::getRefundMoney)));
         // 订单总笔数
         platformBill.setRevenueCount(sumInt(shopPlatformBills, PlatformBill::getRevenueCount));
         // 商家总提现金额
-        platformBill.setShopPayouts(sum(shopPlatformBills, PlatformBill::getShopPayouts));
+        platformBill.setShopPayouts(sum(shopPlatformBills, PlatformBill::getPayoutsOfSuccess));
         // 商家总提现手续费
-        platformBill.setShopPayoutsRates(sum(shopPlatformBills, PlatformBill::getShopPayoutsRates));
+        platformBill.setShopPayoutsRates(sum(shopPlatformBills, PlatformBill::getPayoutsRatesOfSuccess));
         // 商家提现笔数
-        platformBill.setShopPayoutsCount(sumInt(shopPlatformBills, PlatformBill::getShopPayoutsCount));
+        platformBill.setShopPayoutsCount(sumInt(shopPlatformBills, PlatformBill::getPayoutsCountOfSuccess));
         // 骑手总提现金额
-        platformBill.setRiderPayouts(sum(riderPlatformBills, PlatformBill::getRiderPayouts));
+        platformBill.setRiderPayouts(sum(riderPlatformBills, PlatformBill::getPayoutsOfSuccess));
         // 骑手总提现手续费
-        platformBill.setRiderPayoutsRates(sum(riderPlatformBills, PlatformBill::getRiderPayoutsRates));
+        platformBill.setRiderPayoutsRates(sum(riderPlatformBills, PlatformBill::getPayoutsRatesOfSuccess));
         // 骑手提现笔数
-        platformBill.setRiderPayoutsCount(sumInt(riderPlatformBills, PlatformBill::getRiderPayoutsCount));
+        platformBill.setRiderPayoutsCount(sumInt(riderPlatformBills, PlatformBill::getPayoutsCountOfSuccess));
         // 退款金额
         platformBill.setRefundMoney(sum(shopPlatformBills, PlatformBill::getRefundMoney));
         // 退款笔数
@@ -407,12 +407,10 @@ public class PlatformBillServiceImpl extends ServiceImpl<PlatformBillMapper, Pla
             platformBill.setStartMoney(sum(shopPlatformBills, PlatformBill::getShopBalance));
         }
 
-        // 期末金额 = 期初金额 + 当天收入 - 商家当天提现手续费 - 商家当天提现金额(已转账和待转账) - 骑手当天提现手续费 - 骑手当天提现金额(已转账+待转账+已拒绝)
+        // 期末金额 = 期初金额 + 当天收入 - 商家当天提现金额(已转账和待转账) - 骑手当天提现金额(已转账+待转账+已拒绝)
         BigDecimal endMoney = platformBill.getStartMoney()
                 .add(platformBill.getRevenue())
-                .subtract(platformBill.getShopPayoutsRates())
                 .subtract(platformBill.getShopPayouts())
-                .subtract(platformBill.getRiderPayoutsRates())
                 .subtract(platformBill.getRiderPayouts());
         platformBill.setEndMoney(endMoney);
 
@@ -484,10 +482,18 @@ public class PlatformBillServiceImpl extends ServiceImpl<PlatformBillMapper, Pla
                 platformBill.setRiderPayouts(cashOutRecord.getPayouts());
                 platformBill.setRiderPayoutsRates(cashOutRecord.getPayoutsRates());
                 platformBill.setRiderPayoutsCount(cashOutRecord.getPayoutsCount());
+
+                platformBill.setPayoutsOfSuccess(cashOutRecord.getPayoutsOfSuccess());
+                platformBill.setPayoutsRatesOfSuccess(cashOutRecord.getPayoutsRatesOfSuccess());
+                platformBill.setPayoutsCountOfSuccess(cashOutRecord.getPayoutsCountOfSuccess());
             } else {
                 platformBill.setRiderPayouts(BigDecimal.ZERO);
                 platformBill.setRiderPayoutsRates(BigDecimal.ZERO);
                 platformBill.setRiderPayoutsCount(0);
+
+                platformBill.setPayoutsOfSuccess(BigDecimal.ZERO);
+                platformBill.setPayoutsRatesOfSuccess(BigDecimal.ZERO);
+                platformBill.setPayoutsCountOfSuccess(0);
             }
 
             SysGiftRecordBO sysGiftRecord = sysGiftRecordMap.get(riderInfo.getUserId());
@@ -616,10 +622,18 @@ public class PlatformBillServiceImpl extends ServiceImpl<PlatformBillMapper, Pla
                 platformBill.setShopPayouts(shopCashOutRecord.getPayouts());
                 platformBill.setShopPayoutsRates(shopCashOutRecord.getPayoutsRates());
                 platformBill.setShopPayoutsCount(shopCashOutRecord.getPayoutsCount());
+
+                platformBill.setPayoutsOfSuccess(shopCashOutRecord.getPayoutsOfSuccess());
+                platformBill.setPayoutsRatesOfSuccess(shopCashOutRecord.getPayoutsRatesOfSuccess());
+                platformBill.setPayoutsCountOfSuccess(shopCashOutRecord.getPayoutsCountOfSuccess());
             } else {
                 platformBill.setShopPayouts(BigDecimal.ZERO);
                 platformBill.setShopPayoutsRates(BigDecimal.ZERO);
                 platformBill.setShopPayoutsCount(0);
+
+                platformBill.setPayoutsOfSuccess(BigDecimal.ZERO);
+                platformBill.setPayoutsRatesOfSuccess(BigDecimal.ZERO);
+                platformBill.setPayoutsCountOfSuccess(0);
             }
 
             UserMoneyBalanceBO userMoneyBalance = userMoneyBalanceMap.get(goodsShop.getUserId());

+ 14 - 9
src/main/resources/mapper/reconciliation/PlatformBillMapper.xml

@@ -331,11 +331,14 @@
             user_id,
             IFNULL(SUM(money), 0) payouts, -- 提现金额
             IFNULL(SUM(rate), 0) payouts_rates, -- 提现手续费
-            COUNT(id) payouts_count -- 提现次数
+            COUNT(id) payouts_count, -- 提现次数
+            SUM(IF(state = 1, money, 0)) AS payouts_of_Success,  -- 已成功提现金额
+            SUM(IF(state = 1, rate, 0)) AS payouts_rates_of_Success,  -- 已成功提现手续费
+            COUNT(IF(state = 1, 1, NULL)) AS payouts_count_of_Success  -- 已成功提现次数
         FROM
             cash_out
         WHERE
-            state != -1 -- 提现成功
+            state != -1
             AND create_at BETWEEN #{startTime} AND #{endTime}
             AND shop_id IS NOT NULL
         GROUP BY user_id;
@@ -343,15 +346,17 @@
 
     <select id="getRiderCashOutRecord" resultType="com.sqx.modules.reconciliation.model.CashOutRecordBO">
         SELECT
-        user_id,
-        IFNULL(SUM(money), 0) payouts, -- 提现金额
-        IFNULL(SUM(rate), 0) payouts_rates, -- 提现手续费
-        COUNT(id) payouts_count -- 提现次数
+            user_id,
+            IFNULL(SUM(money), 0) payouts, -- 提现金额
+            IFNULL(SUM(rate), 0) payouts_rates, -- 提现手续费
+            COUNT(id) payouts_count, -- 提现次数
+            SUM(IF(state = 1, money, 0)) AS payouts_of_Success,  -- 已成功提现金额
+            SUM(IF(state = 1, rate, 0)) AS payouts_rates_of_Success,  -- 已成功提现手续费
+            COUNT(IF(state = 1, 1, NULL)) AS payouts_count_of_Success  -- 已成功提现次数
         FROM
-        cash_out
+            cash_out
         WHERE
-            type = 1
-            AND create_at BETWEEN #{startTime} AND #{endTime}
+            create_at BETWEEN #{startTime} AND #{endTime}
             AND shop_id IS NULL
         GROUP BY user_id;
     </select>