From fdfc592f76fb8a1cd72532fc2e25b4cb1c6bc5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Tue, 29 Oct 2024 17:16:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E5=88=86=E6=88=90=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/domain/vo/LongDecimalVO.java | 18 ++++++++++ .../ruoyi/ss/bonus/mapper/BonusMapper.java | 6 ++++ .../com/ruoyi/ss/bonus/mapper/BonusMapper.xml | 16 +++++++++ .../ruoyi/ss/bonus/service/BonusService.java | 6 ++++ .../bonus/service/impl/BonusServiceImpl.java | 7 ++++ .../com/ruoyi/ss/user/domain/SmUserVo.java | 4 +++ .../ruoyi/ss/user/service/UserAssembler.java | 6 ++++ .../user/service/impl/UserAssemblerImpl.java | 34 +++++++++++++++++++ .../web/controller/app/AppUserController.java | 1 + .../web/controller/ss/SmUserController.java | 2 ++ 10 files changed, 100 insertions(+) create mode 100644 smart-switch-service/src/main/java/com/ruoyi/common/domain/vo/LongDecimalVO.java diff --git a/smart-switch-service/src/main/java/com/ruoyi/common/domain/vo/LongDecimalVO.java b/smart-switch-service/src/main/java/com/ruoyi/common/domain/vo/LongDecimalVO.java new file mode 100644 index 00000000..96bcffdf --- /dev/null +++ b/smart-switch-service/src/main/java/com/ruoyi/common/domain/vo/LongDecimalVO.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author wjh + * 2024/10/29 + */ +@Data +public class LongDecimalVO { + + private Long key; + + private BigDecimal value; + +} diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.java b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.java index 7ab4c108..b8a751ce 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.ss.bonus.mapper; import com.ruoyi.common.domain.vo.CommonCountVO; import com.ruoyi.common.domain.vo.CommonSumVO; +import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.ss.bonus.domain.Bonus; import com.ruoyi.ss.bonus.domain.BonusProvideQuery; import com.ruoyi.ss.bonus.domain.BonusQuery; @@ -130,4 +131,9 @@ public interface BonusMapper * @return */ int selectCount(@Param("query") BonusQuery query); + + /** + * 查询未分成金额,并以到账方分组 + */ + List selectWaitAmountGroupByArrival(@Param("query") BonusQuery query); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.xml index 4a3d1ae1..750bb5f5 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.xml +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/mapper/BonusMapper.xml @@ -177,6 +177,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + insert into ss_bonus diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/BonusService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/BonusService.java index b3ea5dfe..a297a9a9 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/BonusService.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/BonusService.java @@ -2,6 +2,7 @@ package com.ruoyi.ss.bonus.service; import com.ruoyi.common.domain.vo.CommonCountVO; import com.ruoyi.common.domain.vo.CommonSumVO; +import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.ss.bonus.domain.Bonus; import com.ruoyi.ss.bonus.domain.BonusProvideQuery; import com.ruoyi.ss.bonus.domain.BonusQuery; @@ -147,4 +148,9 @@ public interface BonusService * 支付预计分成在指定时间的分成 */ int payBonusBeforeTime(LocalDateTime time); + + /** + * 查询待分成金额,以到账方分组统计 + */ + List selectWaitAmountGroupByArrival(BonusQuery query); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/impl/BonusServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/impl/BonusServiceImpl.java index e9c52f35..46735780 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/impl/BonusServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/bonus/service/impl/BonusServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.ss.bonus.service.impl; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.domain.vo.CommonCountVO; import com.ruoyi.common.domain.vo.CommonSumVO; +import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.common.enums.LoginType; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; @@ -36,6 +37,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -410,6 +412,11 @@ public class BonusServiceImpl implements BonusService return sum; } + @Override + public List selectWaitAmountGroupByArrival(BonusQuery query) { + return bonusMapper.selectWaitAmountGroupByArrival(query); + } + private int batchUpdateAmount(List list) { if (CollectionUtils.isEmptyElement(list)) { return 0; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java index b3f35f8a..dc1a1ecf 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java @@ -49,4 +49,8 @@ public class SmUserVo extends SmUser { @ApiModelProperty("实际服务费率") private BigDecimal realServiceRate; + @ApiModelProperty("未入账金额") + @JsonView(JsonViewProfile.App.class) + private BigDecimal waitBonusAmount; + } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/UserAssembler.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/UserAssembler.java index 37c6251b..22a389bc 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/UserAssembler.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/UserAssembler.java @@ -29,4 +29,10 @@ public interface UserAssembler { * 拼接用户实际服务费率 */ void assembleRealServiceRate(List list); + + /** + * 拼接未入账金额 + * @param list + */ + void assembleWaitBonusAmount(List list); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java index ad29c1a1..0dddefb8 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java @@ -1,7 +1,13 @@ package com.ruoyi.ss.user.service.impl; +import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.collection.CollectionUtils; +import com.ruoyi.ss.bonus.domain.Bonus; +import com.ruoyi.ss.bonus.domain.BonusQuery; +import com.ruoyi.ss.bonus.domain.enums.BonusArrivalType; +import com.ruoyi.ss.bonus.domain.enums.BonusStatus; +import com.ruoyi.ss.bonus.service.BonusService; import com.ruoyi.ss.device.domain.DeviceCountVO; import com.ruoyi.ss.device.domain.DeviceQuery; import com.ruoyi.ss.device.domain.enums.DeviceGroupBy; @@ -18,6 +24,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -36,6 +43,9 @@ public class UserAssemblerImpl implements UserAssembler { @Autowired private ISysConfigService sysConfigService; + @Autowired + private BonusService bonusService; + /** * 拼接用户店铺数量 * @@ -120,4 +130,28 @@ public class UserAssemblerImpl implements UserAssembler { } } } + + @Override + public void assembleWaitBonusAmount(List list) { + if (CollectionUtils.isEmptyElement(list)) { + return ; + } + + BonusQuery query = new BonusQuery(); + query.setArrivalIds(CollectionUtils.map(list, SmUserVo::getUserId)); + query.setArrivalTypes(BonusArrivalType.userList()); + query.setStatus(BonusStatus.WAIT_DIVIDE.getStatus()); + List amountList = bonusService.selectWaitAmountGroupByArrival(query); + + for (SmUserVo user : list) { + LongDecimalVO sum = amountList.stream() + .filter(item -> Objects.equals(item.getKey(), user.getUserId())) + .findFirst().orElse(null); + if (sum != null) { + user.setWaitBonusAmount(sum.getValue()); + } else { + user.setWaitBonusAmount(BigDecimal.ZERO); + } + } + } } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java index 4e1db6aa..a10dfdd1 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java @@ -72,6 +72,7 @@ public class AppUserController extends BaseController { userService.desensitization(list); userAssembler.assembleStoreCount(list); userAssembler.assembleDeviceCount(list); + userAssembler.assembleWaitBonusAmount(list); return AjaxResult.success(user); } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java index 8e518b78..48eaef60 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java @@ -60,6 +60,7 @@ public class SmUserController extends BaseController userAssembler.assembleDeviceCount(list); userAssembler.assembleRealServiceRate(list); smUserService.desensitization(list); + userAssembler.assembleWaitBonusAmount(list); return getDataTable(list); } @@ -100,6 +101,7 @@ public class SmUserController extends BaseController userAssembler.assembleDeviceCount(list); userAssembler.assembleRealServiceRate(list); smUserService.desensitization(list); + userAssembler.assembleWaitBonusAmount(list); return success(user); }