From 83751617ac342e4168cb714106bc009e3f25f99c Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期三, 18 十二月 2024 09:32:02 +0800
Subject: [PATCH] 1

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java            |    6 
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml                  |   33 ++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java |  127 +++++++----------
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java          |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java              |   22 +++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java              |   23 +++
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml                             |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java    |   42 ++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java |   49 +++++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java                        |   16 ++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopCommissionStatisticsVO.java                |   40 +++++
 11 files changed, 288 insertions(+), 76 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
index 1824fcd..5479c1b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -171,6 +171,22 @@
     @TableField("total_distribution_amount")
     private BigDecimal totalDistributionAmount;
 
+    @ApiModelProperty(value = "拉新人积分总数")
+    @TableField("total_invite_point")
+    private Integer totalInvitePoint;
+
+    @ApiModelProperty(value = "注册积分总数")
+    @TableField("total_register_point")
+    private Integer totalRegisterPoint;
+
+    @ApiModelProperty(value = "做工积分总数")
+    @TableField("total_work_point")
+    private Integer totalWorkPoint;
+
+    @ApiModelProperty(value = "业绩积分总数")
+    @TableField("total_performance_point")
+    private Integer totalPerformancePoint;
+
 
     @ApiModelProperty(value = "剩余积分")
     @TableField("lave_point")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
index 2e8da40..526c5c4 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -36,8 +37,9 @@
     @TableField("shop_id")
     private Integer shopId;
 
-    @ApiModelProperty(value = "变动类型(1=返佣,2=提现)")
+    @ApiModelProperty(value = "变动类型(1=门店分佣,2=下级门店分佣,3=门店服务费)")
     @TableField("type")
+    @Excel(name = "变更类型",readConverterExp = "1=门店分佣,2=下级门店分佣,3=门店服务费")
     private Integer type;
 
     @ApiModelProperty(value = "历史余额")
@@ -48,8 +50,14 @@
     @TableField("variable_amount")
     private BigDecimal variableAmount;
 
+    @ApiModelProperty(value = "变动后余额")
+    @TableField("balance")
+    @Excel(name = "变更后数量")
+    private BigDecimal balance;
+
     @ApiModelProperty(value = "变动时间")
     @TableField("create_time")
+    @Excel(name = "变更时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "变动用户id")
@@ -60,5 +68,18 @@
     @TableField("object_id")
     private Long objectId;
 
+    @ApiModelProperty(value = "门店名称")
+    @TableField(exist = false)
+    @Excel(name = "门店名称")
+    private String shopName;
 
+    @ApiModelProperty(value = "店长名称")
+    @TableField(exist = false)
+    @Excel(name = "店长名称")
+    private String shopManagerName;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField(exist = false)
+    @Excel(name = "联系电话")
+    private String phone;
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java
index 5c5a224..e43b425 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java
@@ -3,17 +3,14 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.model.BalanceChangeRecord;
-import com.ruoyi.account.api.model.UserClickLog;
-import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.dto.BalanceQuery;
-import com.ruoyi.account.dto.UserCancelQuery;
-import com.ruoyi.account.excel.UserPointEx;
+import com.ruoyi.account.excel.BalanceChangeRecordEX;
 import com.ruoyi.account.service.BalanceChangeRecordService;
 import com.ruoyi.account.vo.CommissionStatistics;
-import com.ruoyi.account.vo.UserPointStatistics;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -52,77 +49,63 @@
 		return R.ok(balanceChangeRecordService.pageList(agentQuery));
 	}
 
-//	/**
-//	 * 用户分佣统计
-//	 */
-//	@GetMapping("/commissionStatistics")
-//	@ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计")
-//	public R<CommissionStatistics> commissionStatistics(UserPoint userPoint) {
-//		userPoint.setType(2);
-//		IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
-//		UserPointStatistics statistics = userPointService.getStatistics(userPoint);
-//		CommissionStatistics commissionStatistics = new CommissionStatistics();
-//		commissionStatistics.setStatistics(statistics);
-//		commissionStatistics.setUserPointPage(userPointPage);
-//		return R.ok(commissionStatistics);
-//	}
+	/**
+	 * 用户分佣统计
+	 */
+	@GetMapping("/commissionStatistics")
+	@ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计")
+	public R<CommissionStatistics> commissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum,
+														@ApiParam("每一页数据大小") Integer pageSize,
+														BalanceChangeRecord balanceChangeRecord) {
+		CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(pageNum, pageSize), balanceChangeRecord);
+		return R.ok(commissionStatistics1);
+	}
 //
 //	/**
 //	 * 导出用户分佣统计
 //	 */
-//	@GetMapping("/commissionExport")
-//	@ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计")
-//	public void commissionExport(HttpServletResponse response, UserPoint userPoint) {
-//		userPoint.setType(2);
-//		IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(1, Integer.MAX_VALUE), userPoint);
-//		List<UserPoint> userPointList = userPointPage.getRecords();
-//		List<UserPointEx> userPointExList = new ArrayList<>();
-//		for (UserPoint point : userPointList) {
-//			UserPointEx userPointEx = new UserPointEx();
-//			userPointEx.setUserName(point.getUserName());
-//			userPointEx.setPhone(point.getPhone());
-//			userPointEx.setChangeTime(point.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-//			userPointEx.setChangeNum(point.getVariablePoint().toString());
-//			Integer type = point.getType();
-//			switch (type) {
-//				case 1:
-//					userPointEx.setType("消费积分");
-//					break;
-//				case 2:
-//					userPointEx.setType("返佣积分");
-//					break;
-//				case 3:
-//					userPointEx.setType("拉新人积分");
-//					break;
-//				case 4:
-//					userPointEx.setType("兑换商品");
-//					break;
-//				case 5:
-//					userPointEx.setType("门店业绩");
-//					break;
-//				case 6:
-//					userPointEx.setType("门店返佣");
-//					break;
-//				case 7:
-//					userPointEx.setType("技师业绩");
-//					break;
-//				case 8:
-//					userPointEx.setType("转赠积分");
-//					break;
-//				case 9:
-//					userPointEx.setType("做工积分");
-//					break;
-//				case 10:
-//					userPointEx.setType("注册积分");
-//					break;
-//				default:
-//					userPointEx.setType("未知积分");
-//			}
-//			userPointExList.add(userPointEx);
-//		}
-//		ExcelUtil<UserPointEx> util = new ExcelUtil<>(UserPointEx.class);
-//		util.exportExcel(response, userPointExList, "用户分佣统计");
-//	}
+	@GetMapping("/commissionExport")
+	@ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计")
+	public void commissionExport(HttpServletResponse response, BalanceChangeRecord balanceChangeRecord) {
+		CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(1, Integer.MAX_VALUE), balanceChangeRecord);
+		IPage<BalanceChangeRecord> userPointPage = commissionStatistics1.getUserPointPage();
+		List<BalanceChangeRecord> userPointList = userPointPage.getRecords();
+		List<BalanceChangeRecordEX> userPointExList = new ArrayList<>();
+		for (BalanceChangeRecord balanceChangeRecord1 : userPointList) {
+			BalanceChangeRecordEX balanceChangeRecordEX = new BalanceChangeRecordEX();
+			balanceChangeRecordEX.setUserName(balanceChangeRecord1.getUserName());
+			balanceChangeRecordEX.setPhone(balanceChangeRecord1.getUserPhone());
+			balanceChangeRecordEX.setChangeTime(balanceChangeRecord1.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			balanceChangeRecordEX.setChangeNum(balanceChangeRecord1.getAfterAmount().toString());
+			Integer type = balanceChangeRecord1.getChangeType();
+			// 类型:1充值2提现3红包4分佣5商城购物6订单取消回退
+			switch (type) {
+				case 1:
+					balanceChangeRecordEX.setType("充值");
+					break;
+				case 2:
+					balanceChangeRecordEX.setType("提现");
+					break;
+				case 3:
+					balanceChangeRecordEX.setType("红包");
+					break;
+				case 4:
+					balanceChangeRecordEX.setType("分佣");
+					break;
+				case 5:
+					balanceChangeRecordEX.setType("商城购物");
+					break;
+				case 6:
+					balanceChangeRecordEX.setType("订单取消回退");
+					break;
+				default:
+					balanceChangeRecordEX.setType("未知积分");
+			}
+			userPointExList.add(balanceChangeRecordEX);
+		}
+		ExcelUtil<BalanceChangeRecordEX> util = new ExcelUtil<>(BalanceChangeRecordEX.class);
+		util.exportExcel(response, userPointExList, "用户分佣统计");
+	}
 
 	
 	
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java
new file mode 100644
index 0000000..a81fee3
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java
@@ -0,0 +1,22 @@
+package com.ruoyi.account.excel;
+
+import com.ruoyi.common.core.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class BalanceChangeRecordEX {
+    @Excel(name = "用户名称")
+    private String userName;
+
+    @Excel(name = "联系电话")
+    private String phone;
+
+    @Excel(name = "变更类型")
+    private String type;
+
+    @Excel(name = "变更时间")
+    private String changeTime;
+
+    @Excel(name = "变更数量")
+    private String changeNum;
+}
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 9ee1f9e..d03e6f8 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
@@ -1,8 +1,23 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.service.ShopBalanceStatementService;
+import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * <p>
@@ -14,7 +29,34 @@
  */
 @RestController
 @RequestMapping("/shop-balance-statement")
+@Api(tags = "管理后台-财务统计-门店分佣统计")
 public class ShopBalanceStatementController {
+    @Resource
+    private ShopBalanceStatementService shopBalanceStatementService;
+
+    /**
+     * 门店分佣统计
+     */
+    @GetMapping("/commissionStatistics")
+    @ApiOperation("门店分佣统计")
+    public R<ShopCommissionStatisticsVO> shopCommissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum,
+                                                                  @ApiParam("每一页数据大小") Integer pageSize,
+                                                                  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(), "用户积分统计");
+    }
 
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
index 3363860..4b0e3c4 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
@@ -1,7 +1,11 @@
 package com.ruoyi.other.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,5 @@
  * @since 2024-11-20
  */
 public interface ShopBalanceStatementMapper extends BaseMapper<ShopBalanceStatement> {
-
+    List<ShopBalanceStatement> findLatestChangeByType(ShopBalanceStatement shopBalanceStatement);
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java
index 5328644..ff95d38 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.other.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
 
 /**
  * <p>
@@ -12,5 +14,5 @@
  * @since 2024-11-20
  */
 public interface ShopBalanceStatementService extends IService<ShopBalanceStatement> {
-
+    ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement);
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
index 74bf2d2..5e53178 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
@@ -1,10 +1,19 @@
 package com.ruoyi.other.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.other.api.domain.Shop;
 import com.ruoyi.other.mapper.ShopBalanceStatementMapper;
 import com.ruoyi.other.api.domain.ShopBalanceStatement;
 import com.ruoyi.other.service.ShopBalanceStatementService;
+import com.ruoyi.other.service.ShopService;
+import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -16,5 +25,45 @@
  */
 @Service
 public class ShopBalanceStatementServiceImpl extends ServiceImpl<ShopBalanceStatementMapper, ShopBalanceStatement> implements ShopBalanceStatementService {
+    @Resource
+    private ShopBalanceStatementMapper shopBalanceStatementMapper;
+    @Resource
+    private ShopService shopService;
 
+
+    @Override
+    public ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement) {
+        List<ShopBalanceStatement> latestChangeByType = shopBalanceStatementMapper.findLatestChangeByType(shopBalanceStatement);
+        ShopCommissionStatisticsVO shopCommissionStatisticsVO = new ShopCommissionStatisticsVO();
+        for (ShopBalanceStatement sp : latestChangeByType) {
+            switch (sp.getType()) {
+                case 1:
+                    shopCommissionStatisticsVO.setTotalCommission(sp.getBalance());
+                    break;
+                case 2:
+                    shopCommissionStatisticsVO.setTotalSubordinateCommission(sp.getBalance());
+                    break;
+                case 3:
+                    shopCommissionStatisticsVO.setTotalServiceCharge(sp.getBalance());
+                    break;
+           }
+        }
+        shopCommissionStatisticsVO.setTotalAmount(shopCommissionStatisticsVO.getTotalCommission()
+                .add(shopCommissionStatisticsVO.getTotalSubordinateCommission())
+                .add(shopCommissionStatisticsVO.getTotalServiceCharge()));
+
+        IPage<ShopBalanceStatement> statementIPage = page(page, new LambdaQueryWrapper<ShopBalanceStatement>());
+        List<ShopBalanceStatement> records = statementIPage.getRecords();
+        List<Integer> shopIds = records.stream().map(ShopBalanceStatement::getShopId).collect(Collectors.toList());
+        List<Shop> shopList = shopService.listByIds(shopIds);
+        records.forEach(st -> {
+            shopList.stream().filter(shop -> shop.getId().equals(st.getShopId())).findFirst().ifPresent(shop -> {
+                st.setShopName(shop.getName());
+                st.setShopManagerName(shop.getShopManager());
+                st.setPhone(shop.getPhone());
+            });
+        });
+        shopCommissionStatisticsVO.setStatementIPage(statementIPage);
+        return shopCommissionStatisticsVO;
+    }
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopCommissionStatisticsVO.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopCommissionStatisticsVO.java
new file mode 100644
index 0000000..38fa003
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopCommissionStatisticsVO.java
@@ -0,0 +1,40 @@
+package com.ruoyi.other.vo;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("门店分佣统计")
+public class ShopCommissionStatisticsVO {
+    /**
+     * 总金额
+     */
+    @ApiModelProperty(value = "总金额")
+    private BigDecimal totalAmount;
+
+    /**
+     * 分佣总金额
+     */
+    @ApiModelProperty(value = "分佣总金额")
+    private BigDecimal totalCommission;
+
+    /**
+     * 服务费总计
+     */
+    @ApiModelProperty(value = "服务费总计")
+    private BigDecimal totalServiceCharge;
+
+    /**
+     * 下级门店分佣总金额
+     */
+    @ApiModelProperty(value = "下级门店分佣总金额")
+    private BigDecimal totalSubordinateCommission;
+
+    private IPage<ShopBalanceStatement> statementIPage;
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
new file mode 100644
index 0000000..3def01d
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
@@ -0,0 +1,33 @@
+<?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="com.ruoyi.other.mapper.ShopBalanceStatementMapper">
+
+    <select id="findLatestChangeByType" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
+        SELECT
+            id,
+            shop_id,
+            type,
+            historical_balance,
+            variable_amount,
+            balance,
+            create_time,
+            create_user_id,
+            object_id
+        FROM
+            (
+                SELECT
+                    id,
+                    shop_id,
+                    type,
+                    historical_balance,
+                    variable_amount,
+                    balance,
+                    create_time,
+                    create_user_id,
+                    object_id,
+                    ROW_NUMBER() OVER ( PARTITION BY type, create_user_id ORDER BY create_time DESC ) AS rn
+                FROM
+                    t_shop_balance_statement
+            ) AS subquery
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
index 51e5f7e..6828ee3 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
@@ -23,7 +23,7 @@
                     create_time,
                     create_user_id,
                     object_id,
-                    ROW_NUMBER() OVER ( PARTITION BY type ORDER BY create_time DESC ) AS rn
+                    ROW_NUMBER() OVER ( PARTITION BY type,create_user_id ORDER BY create_time DESC ) AS rn
                 FROM
                     t_shop_point
 

--
Gitblit v1.7.1