From 69f4e7bafd3d81696aa00affd6b9ddfa6b50503f Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 08 二月 2025 13:36:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java | 73 +++++++++++++++++-------------------
1 files changed, 34 insertions(+), 39 deletions(-)
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 518d360..9799f6b 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,19 +1,17 @@
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.api.domain.ShopPoint;
+import com.ruoyi.other.mapper.ShopBalanceStatementMapper;
import com.ruoyi.other.service.ShopBalanceStatementService;
-import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -26,45 +24,42 @@
*/
@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()));
+ List<ShopBalanceStatement> shopBalanceStatements = this.baseMapper.selectShopBalanceStatementList(shopBalanceStatement);
- IPage<ShopBalanceStatement> statementIPage = page(page, new LambdaQueryWrapper<ShopBalanceStatement>());
- List<ShopBalanceStatement> records = statementIPage.getRecords();
- if (!CollectionUtils.isEmpty(records)){
- 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());
- });
- });
+ Map<Integer, BigDecimal> shopCommissionMap = shopBalanceStatements.stream()
+ .collect(Collectors.groupingBy(
+ ShopBalanceStatement::getType,
+ Collectors.reducing(
+ BigDecimal.ZERO,
+ ShopBalanceStatement::getVariableAmount,
+ BigDecimal::add
+ )
+ ));
+
+ BigDecimal totalCommission = shopCommissionMap.getOrDefault(1,BigDecimal.ZERO);
+ BigDecimal totalSubordinateCommission = shopCommissionMap.getOrDefault(2,BigDecimal.ZERO);
+ BigDecimal totalServiceCharge = shopCommissionMap.getOrDefault(3,BigDecimal.ZERO);
+ shopCommissionStatisticsVO.setTotalCommission(totalCommission);
+ shopCommissionStatisticsVO.setTotalSubordinateCommission(totalSubordinateCommission);
+ shopCommissionStatisticsVO.setTotalServiceCharge(totalServiceCharge);
+ BigDecimal totalAmount = totalCommission.add(totalSubordinateCommission).add(totalServiceCharge);
+ shopCommissionStatisticsVO.setTotalAmount(totalAmount);
+ IPage<ShopBalanceStatement> statementIPage = this.baseMapper.queryShopBalanceStatementPage(page, shopBalanceStatement);
+ for (ShopBalanceStatement record : statementIPage.getRecords()) {
+ BigDecimal subtract = record.getHistoricalBalance().subtract(record.getBalance());
+ if (subtract.compareTo(BigDecimal.ZERO)>0){
+ // 减少
+ record.setVariableAmountString("-¥"+record.getVariableAmount());
+ }else if (subtract.compareTo(BigDecimal.ZERO)<0){
+ record.setVariableAmountString("+¥"+record.getVariableAmount());
+ }else{
+ record.setVariableAmountString("¥"+record.getVariableAmount());
+ }
}
shopCommissionStatisticsVO.setStatementIPage(statementIPage);
return shopCommissionStatisticsVO;
--
Gitblit v1.7.1