| | |
| | | package com.ruoyi.other.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | 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.vo.ShopCommissionStatisticsVO; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class ShopBalanceStatementServiceImpl extends ServiceImpl<ShopBalanceStatementMapper, ShopBalanceStatement> implements ShopBalanceStatementService { |
| | | |
| | | |
| | | @Override |
| | | public ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement) { |
| | | ShopCommissionStatisticsVO shopCommissionStatisticsVO = new ShopCommissionStatisticsVO(); |
| | | List<ShopBalanceStatement> shopBalanceStatements = this.baseMapper.selectShopBalanceStatementList(shopBalanceStatement); |
| | | |
| | | 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; |
| | | } |
| | | } |