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