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/service/impl/ShopBalanceStatementServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 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 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; + } } -- Gitblit v1.7.1