From e2dca5a3ce717a7708d432955d3dc8d6ee800e5d Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 26 十二月 2024 19:12:16 +0800 Subject: [PATCH] 合并代码 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java | 60 +++++++++++++++++++++++------------------------------------- 1 files changed, 23 insertions(+), 37 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 5e53178..2276d32 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,18 +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 javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -25,44 +24,31 @@ */ @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(); - 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); + + BigDecimal totalAmount = totalCommission.add(totalSubordinateCommission).add(totalServiceCharge); + shopCommissionStatisticsVO.setTotalAmount(totalAmount); + + IPage<ShopBalanceStatement> statementIPage = this.baseMapper.queryShopBalanceStatementPage(page, shopBalanceStatement); shopCommissionStatisticsVO.setStatementIPage(statementIPage); return shopCommissionStatisticsVO; } -- Gitblit v1.7.1