From 49e96cc15baf35d710fe3a049fb97aff6a1af132 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 25 二月 2025 19:35:33 +0800
Subject: [PATCH] 修改分佣逻辑

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java |  172 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 127 insertions(+), 45 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
index 083414e..a0d0585 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -10,7 +10,9 @@
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.Shop;
 import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.domain.ShopBalanceStatementCopy;
 import com.ruoyi.other.dto.ShopBalanceDto;
+import com.ruoyi.other.mapper.ShopBalanceStatementCopyMapper;
 import com.ruoyi.other.mapper.ShopBalanceStatementMapper;
 import com.ruoyi.other.service.ShopBalanceStatementService;
 import com.ruoyi.other.service.ShopService;
@@ -25,6 +27,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.Collection;
 import java.util.List;
 import java.util.List;
@@ -51,6 +55,8 @@
     private ShopService shopService;
     @Resource
     private SysUserClient sysUserClient;
+    @Resource
+    private ShopBalanceStatementCopyMapper shopBalanceStatementCopyMapper;
     
     
     
@@ -66,6 +72,17 @@
                                                                   ShopBalanceStatement shopBalanceStatement){
         ShopCommissionStatisticsVO shopCommissionStatisticsVO = shopBalanceStatementService.shopCommissionStatistics(Page.of(pageNum, pageSize), shopBalanceStatement);
         return R.ok(shopCommissionStatisticsVO);
+    }
+    /**
+     * 导出门店分佣统计
+     */
+    @GetMapping("/export")
+    @ApiOperation("导出门店分佣统计")
+    public void export(HttpServletResponse response , ShopBalanceStatement shopBalanceStatement){
+        ShopCommissionStatisticsVO shopCommissionStatisticsVO = shopBalanceStatementService.shopCommissionStatistics(Page.of(1, Integer.MAX_VALUE), shopBalanceStatement);
+        IPage<ShopBalanceStatement> statementIPage = shopCommissionStatisticsVO.getStatementIPage();
+        ExcelUtil<ShopBalanceStatement> util = new ExcelUtil<>(ShopBalanceStatement.class);
+        util.exportExcel(response, statementIPage.getRecords(), "用户积分统计");
     }
     @GetMapping("/commissionStatistics/list")
     @ApiOperation(value = "门店余额明细", notes = "门店余额明细", tags = {"门店后台"})
@@ -88,57 +105,88 @@
    
     @GetMapping("/commissionStatistics/info")
     @ApiOperation(value = "门店余额明细上方数据", notes = "门店余额明细", tags = {"门店后台"})
-    public R<ShopBalanceDto> shopCommissionStatisticsinfo(){
+    public R<ShopBalanceDto> shopCommissionStatisticsinfo(Integer type){
         Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
         ShopBalanceDto dto = new ShopBalanceDto();
-        List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
-        List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
-        BigDecimal bigDecimal1 = new BigDecimal(0);
-        for (ShopBalanceStatement shopBalanceStatement : list) {
-            bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
-        }
-        for (ShopBalanceStatement shopBalanceStatement : list1) {
-            bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
-        }
-        dto.setBigDecimal1(bigDecimal1);
-
-        BigDecimal bigDecimal2= new BigDecimal(0);
-        for (ShopBalanceStatement shopBalanceStatement : list) {
-            bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
-        }
-        dto.setBigDecimal2(bigDecimal2);
-
-        BigDecimal bigDecimal3= new BigDecimal(0);
-        for (ShopBalanceStatement shopBalanceStatement : list1) {
-            bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
-        }
-        dto.setBigDecimal3(bigDecimal3);
-
-        List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
-        BigDecimal bigDecimal4= new BigDecimal(0);
-        for (ShopBalanceStatement shopBalanceStatement : list2) {
-            bigDecimal4 = bigDecimal4.add(shopBalanceStatement.getVariableAmount());
-        }
-        dto.setBigDecimal4(bigDecimal4);
-
         Shop byId = shopService.getById(objectId);
-        dto.setBigDecimal5(byId.getCanWithdrawMoney());
-        dto.setBigDecimal6(byId.getWithdrawMoney());
+
+        if (type==null){
+            List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
+            List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
+            BigDecimal bigDecimal1 = new BigDecimal(0);
+            for (ShopBalanceStatement shopBalanceStatement : list) {
+                bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
+            }
+            for (ShopBalanceStatement shopBalanceStatement : list1) {
+                bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
+            }
+            dto.setBigDecimal1(bigDecimal1);
+
+            BigDecimal bigDecimal2= new BigDecimal(0);
+            for (ShopBalanceStatement shopBalanceStatement : list) {
+                bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
+            }
+            dto.setBigDecimal2(bigDecimal2);
+
+            BigDecimal bigDecimal3= new BigDecimal(0);
+            for (ShopBalanceStatement shopBalanceStatement : list1) {
+                bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
+            }
+            dto.setBigDecimal3(bigDecimal3);
+
+            List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
+            BigDecimal bigDecimal4= new BigDecimal(0);
+            for (ShopBalanceStatement shopBalanceStatement : list2) {
+                bigDecimal4 = bigDecimal4.add(shopBalanceStatement.getVariableAmount());
+            }
+            dto.setBigDecimal4(bigDecimal4);
+
+            dto.setBigDecimal5(byId.getCanWithdrawMoney());
+            dto.setBigDecimal6(byId.getWithdrawMoney());
+            return R.ok(dto);
+        }else{
+            switch (type){
+                case 1:
+                    // 关联用户分拥
+                    BigDecimal bigDecimal = new BigDecimal("0");
+                    List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
+                    for (ShopBalanceStatement shopBalanceStatement : list1) {
+                        bigDecimal = bigDecimal.add(shopBalanceStatement.getVariableAmount());
+                    }
+                    dto.setBigDecimal3(bigDecimal);
+                    dto.setBigDecimal1(bigDecimal);
+                    break;
+                case 2:
+                    // 下级门店分佣
+                    BigDecimal bigDecimal2= new BigDecimal(0);
+                    List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
+                    for (ShopBalanceStatement shopBalanceStatement : list2) {
+                        bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
+                    }
+                    dto.setBigDecimal4(bigDecimal2);
+                    dto.setBigDecimal1(bigDecimal2);
+                    break;
+                case 3:
+                    // 服务费分佣
+                    List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
+                    BigDecimal bigDecimal3= new BigDecimal(0);
+                    for (ShopBalanceStatement shopBalanceStatement : list) {
+                        bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
+                    }
+                    dto.setBigDecimal2(bigDecimal3);
+                    dto.setBigDecimal1(bigDecimal3);
+                    break;
+                case 4:
+                    // 余额提现
+                    dto.setBigDecimal6(byId.getWithdrawMoney());
+                    break;
+            }
+        }
         return R.ok(dto);
     }
 
 
-    /**
-     * 导出门店分佣统计
-     */
-    @GetMapping("/export")
-    @ApiOperation("导出门店分佣统计")
-    public void export(HttpServletResponse response , ShopBalanceStatement shopBalanceStatement){
-        ShopCommissionStatisticsVO shopCommissionStatisticsVO = shopBalanceStatementService.shopCommissionStatistics(Page.of(1, Integer.MAX_VALUE), shopBalanceStatement);
-        IPage<ShopBalanceStatement> statementIPage = shopCommissionStatisticsVO.getStatementIPage();
-        ExcelUtil<ShopBalanceStatement> util = new ExcelUtil<>(ShopBalanceStatement.class);
-        util.exportExcel(response, statementIPage.getRecords(), "用户积分统计");
-    }
+
 
 
 
@@ -157,6 +205,27 @@
         shopBalanceStatementService.save(shopBalanceStatement);
     }
 
+    @PostMapping("/saveShopBalanceStatementCopy")
+    public void saveShopBalanceStatementCopy(@RequestBody ShopBalanceStatementCopy shopBalanceStatementCopy){
+        shopBalanceStatementCopyMapper.insert(shopBalanceStatementCopy);
+    }
+
+    @DeleteMapping("/deleteShopBalanceStatementCopy")
+    public R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        shopBalanceStatementCopyMapper.delete(new LambdaQueryWrapper<ShopBalanceStatementCopy>().in(ShopBalanceStatementCopy::getType, type)
+                .eq(ShopBalanceStatementCopy::getObjectId, orderId));
+        return R.ok();
+    }
+    
+    
+    @PostMapping("/getShopBalanceStatementCopy")
+    public R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        List<ShopBalanceStatementCopy> shopBalanceStatementCopies = shopBalanceStatementCopyMapper.selectList(new LambdaQueryWrapper<ShopBalanceStatementCopy>().in(ShopBalanceStatementCopy::getType, type)
+                .eq(ShopBalanceStatementCopy::getObjectId, orderId));
+        return R.ok(shopBalanceStatementCopies);
+    }
+    
+
 
     /**
      * 获取门店流水数据
@@ -165,11 +234,24 @@
      * @return
      */
     @PostMapping("/getShopBalanceStatementList")
-    public R<List<ShopBalanceStatement>> getShopBalanceStatementList(@RequestParam("types") Collection<Integer> types, @RequestParam("objectId") Long objectId){
+    public R<List<ShopBalanceStatement>> getShopBalanceStatementList(@RequestParam("types") Collection<Integer> types, @RequestParam(value = "objectId",required = false) Long objectId){
         List<ShopBalanceStatement> list = shopBalanceStatementService.list(new LambdaQueryWrapper<ShopBalanceStatement>()
                 .eq(objectId != null,ShopBalanceStatement::getObjectId, objectId)
                 .in(types !=null && !types.isEmpty(),ShopBalanceStatement::getType, types));
         return R.ok(list);
     }
+
+    @PostMapping("/getShopBalanceStatementList2")
+    public R<List<ShopBalanceStatement>> getShopBalanceStatementList2(@RequestParam("type") Integer type, @RequestParam(value = "shopId") Integer shopId,
+                                                                      @RequestParam(value = "date") LocalDateTime date){
+        LambdaQueryWrapper<ShopBalanceStatement> queryWrapper = new LambdaQueryWrapper<ShopBalanceStatement>()
+                .eq(ShopBalanceStatement::getType, type)
+                .between(ShopBalanceStatement::getCreateTime, date.with(LocalTime.MIN), date.with(LocalTime.MAX));
+        if(null != shopId && 0 != shopId){
+            queryWrapper.eq(ShopBalanceStatement::getShopId, shopId);
+        }
+        List<ShopBalanceStatement> list = shopBalanceStatementService.list(queryWrapper);
+        return R.ok(list);
+    }
 }
 

--
Gitblit v1.7.1