From ff2845059d92bb71c7901e18a4936a246b7aa1e5 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 23 Dec 2024 18:13:28 +0800 Subject: [PATCH] perf(mall): 优化节点助力功能 --- src/main/java/cc/mrbird/febs/mall/service/AsyncService.java | 2 +- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 16 ++++++++++++++-- src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java | 4 ++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java index dbedd8a..f913a72 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java @@ -13,5 +13,5 @@ void releaseScore(BigDecimal amount,Long memberId); @Async(FebsConstant.ASYNC_POOL) - void releaseNodeCoin(BigDecimal amount,BigDecimal percent,BigDecimal balanceToCoin,Long memberId); + void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin, Long memberId); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java index d661692..c3585fd 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java @@ -43,8 +43,8 @@ } @Override - public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin,Long memberId) { - //实际节点返利的金额 + public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin, Long memberId) { + //实际节点助力的碳币 BigDecimal multiply = amount.multiply(percent); if(BigDecimal.ZERO.compareTo(multiply) >=0){ return; diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index c7e69f2..ad680eb 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -710,15 +710,25 @@ RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(), RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue() ).setScale(2, BigDecimal.ROUND_DOWN); + + DateTime endTime = DateUtil.date(); for (MallMember item : mallMembers) { //获取总业绩 - BigDecimal achieve = getDirectAchieve(item.getInviteId()); + BigDecimal achieve = getDirectAchieve(item.getInviteId(),item.getDirectorTime(),endTime); + if(BigDecimal.ZERO.compareTo(achieve) >= 0){ + continue; + } BigDecimal nodePercent = getNodePercent(runNodeSets, achieve); + if(BigDecimal.ZERO.compareTo(nodePercent) >= 0){ + continue; + } asyncService.releaseNodeCoin(achieve,nodePercent,balanceToCoin,item.getId()); + item.setDirectorTime(endTime); + mallMemberMapper.updateById(item); } } - private BigDecimal getDirectAchieve(String inviteId) { + private BigDecimal getDirectAchieve(String inviteId,Date startTime,Date endTime) { try { // 获取直推成员和团队成员的ID集合 @@ -733,6 +743,8 @@ new LambdaQueryWrapper<MallCharge>() .in(MallCharge::getMemberId, memberIds) .eq(MallCharge::getState, YesOrNoEnum.YES.getValue()) + .ge(MallCharge::getCreatedTime, startTime) + .lt(MallCharge::getCreatedTime, endTime) ); if (CollUtil.isEmpty(mallCharges)) { -- Gitblit v1.9.1