From c070371c7af738dbcfcf045b9fcc2c7342972323 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 23 Dec 2022 11:52:12 +0800
Subject: [PATCH] 20221221
---
src/test/java/cc/mrbird/febs/ProfitTest.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index a988c2e..5bd823a 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -337,11 +337,63 @@
@Autowired
private IMallAchieveService mallAchieveService;
+ @Autowired
+ private MallMemberStarBuyMapper mallMemberStarBuyMapper;
+
@Test
public void achieveTest() {
- List<MallOrderItem> items = mallOrderItemMapper.selectList(null);
- for (MallOrderItem item : items) {
- mallAchieveService.add(item.getId());
+ List<MallMemberStarBuy> mallMemberStarBuys = mallMemberStarBuyMapper.selectByStatus(1);
+ if(CollUtil.isEmpty(mallMemberStarBuys)){
+ return;
+ }
+ for(MallMemberStarBuy mallMemberStarBuy : mallMemberStarBuys){
+ Long memberId = mallMemberStarBuy.getMemberId();
+ MallMember mallMember = memberMapper.selectById(memberId);
+ //用户不存在跳出本次循环
+ if(ObjectUtil.isEmpty(mallMember)){
+ continue;
+ }
+ //返还总金额
+ BigDecimal amount = mallMemberStarBuy.getAmount();
+ //剩余返还总金额不足,跳出本次循环
+ BigDecimal avaAmount = mallMemberStarBuy.getAvaAmount();
+ if(avaAmount.compareTo(BigDecimal.ZERO) <= 0){
+ continue;
+ }
+ //每次返还比例
+ DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.RETURN_PERCENT.getType(),
+ DataDictionaryEnum.RETURN_PERCENT.getCode()
+ );
+ String returnPercentStr = returnPercentDic.getValue();
+ BigDecimal returnPercent = new BigDecimal(returnPercentStr).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
+ //本次返还金额
+ BigDecimal returnAmount = amount.multiply(returnPercent).setScale(2,BigDecimal.ROUND_DOWN);
+ /**
+ * 如果本次返还金额大于剩余返还总金额
+ */
+ if(returnAmount.compareTo(avaAmount) >= 0){
+ returnAmount = avaAmount;
+ avaAmount = BigDecimal.ZERO;
+ }else{
+ avaAmount = avaAmount.subtract(returnAmount).setScale(2,BigDecimal.ROUND_DOWN);
+ }
+ //增加用户金额
+ memberWalletService.addBalance(returnAmount,mallMember.getId());
+ //生成流水记录
+ Long subsidyAmountFlowId = mallMoneyFlowService.addMoneyFlow(
+ mallMember.getId(),
+ mallMemberStarBuy.getBuyCode(),
+ returnAmount,
+ MallMoneyFlowTypeEnum.RETURN_MARKET_STAR.getCode(),
+ MallMoneyFlow.STATUS_SUCCESS,
+ MallMoneyFlow.IS_RETURN_Y,
+ mallMember.getId(),
+ FlowTypeEnum.BALANCE.getValue(),
+ MallMoneyFlowTypeEnum.RETURN_MARKET_STAR.getName()
+ );
+ //更新记录
+ mallMemberStarBuyMapper.updateAvaAmountById(avaAmount,mallMemberStarBuy.getId());
}
}
//
--
Gitblit v1.9.1