From e9391705ed64a34caf08c9f217b498dac3dc59b5 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 31 Dec 2024 14:30:24 +0800 Subject: [PATCH] refactor(mall): 优化会员利润计算服务 --- src/test/java/cc/mrbird/febs/AgentTest.java | 22 +++++++++++++++++----- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 35 +++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 21 deletions(-) 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 5e4d4e8..ab288b2 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 @@ -29,6 +29,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -719,22 +720,24 @@ continue; } for (MallMember item : directMembers) { - BigDecimal realScore = calculateDirectScore(memberRunVip, item, operationDate, runVipMap); - if(BigDecimal.ZERO.compareTo(realScore) >= 0){ - continue; - } - walletService.addScore(realScore, memberId); - String orderNo = MallUtils.getOrderNum("ZLS"); - mallMoneyFlowService.runVipMoneyFlowAdd( - memberId, - item.getId(), - orderNo, - FlowTypeEnum.SCORE.getValue(), - RunVipMoneyFlowTypeEnum.DIRECT_SCORE.getValue(), - realScore, - StrUtil.format(RunVipMoneyFlowTypeEnum.DIRECT_SCORE.getDescription(), realScore), - YesOrNoEnum.YES.getValue() - ); + CompletableFuture.runAsync(() -> { + BigDecimal realScore = calculateDirectScore(memberRunVip, item, operationDate, runVipMap); + if(BigDecimal.ZERO.compareTo(realScore) >= 0){ + return; + } + walletService.addScore(realScore, memberId); + String orderNo = MallUtils.getOrderNum("ZLS"); + mallMoneyFlowService.runVipMoneyFlowAdd( + memberId, + item.getId(), + orderNo, + FlowTypeEnum.SCORE.getValue(), + RunVipMoneyFlowTypeEnum.DIRECT_SCORE.getValue(), + realScore, + StrUtil.format(RunVipMoneyFlowTypeEnum.DIRECT_SCORE.getDescription(), realScore), + YesOrNoEnum.YES.getValue() + ); + }); } } } catch (Exception e) { diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java index 5fba906..139250c 100644 --- a/src/test/java/cc/mrbird/febs/AgentTest.java +++ b/src/test/java/cc/mrbird/febs/AgentTest.java @@ -1,5 +1,6 @@ package cc.mrbird.febs; +import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IMemberProfitService; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; @@ -9,14 +10,25 @@ @Slf4j @SpringBootTest public class AgentTest { - @Autowired private IMemberProfitService memberProfitService; + @Autowired + private IApiMallMemberService apiMallMemberService; +// @Test +// public void getCouponAmountMap(){ +// for(int i = 0;i<10;i++){ +// RegisterDto registerDto = new RegisterDto(); +// registerDto.setAccount("1910000005"+i); +// registerDto.setRegistType("admin"); +// registerDto.setPassword("a123456"); +// registerDto.setPasswordAgain("a123456"); +// registerDto.setInviteId("36460266"); +// apiMallMemberService.register(registerDto); +// } +// +// } @Test - public void getCouponAmountMap(){ - - + public void getCouponAmountMapV2(){ memberProfitService.updateMemberCoin(); - } } -- Gitblit v1.9.1