From 70b8b5feba16d3ef11441c3ee9878420df3fdf37 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 25 Mar 2025 19:23:19 +0800
Subject: [PATCH] perf(mall): 移除会员利润计算中的异步执行

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 2c3fde2..572d0c9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -693,6 +693,19 @@
                 mallMoneyFlowMapper.updateById(mallMoneyFlow);
                 memberWalletService.add(mallMoneyFlow.getAmount(), parentId, "balance");
             }
+
+            if(ObjectUtil.isNotEmpty(mallMemberParent.getReferrerId())){
+                String referrerIdUp = mallMemberParent.getReferrerId();
+                MallMember mallMemberParentUp = memberMapper.selectInfoByInviteId(referrerIdUp);
+                Long parentIdUp = mallMemberParentUp.getId();
+                MallMoneyFlow mallMoneyFlowUp = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(orderNo, parentIdUp, parentId);
+                if(ObjectUtil.isNotEmpty(mallMoneyFlowUp)){
+                    mallMoneyFlowUp.setStatus(2);
+                    mallMoneyFlowUp.setIsReturn(1);
+                    mallMoneyFlowMapper.updateById(mallMoneyFlowUp);
+                    memberWalletService.add(mallMoneyFlow.getAmount(), parentIdUp, "balance");
+                }
+            }
         }
         List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
         if(CollUtil.isNotEmpty(mallOrderItemList)){
@@ -722,6 +735,23 @@
             }
         }
 
+        Integer isMember = member.getIsMember();
+        if(AppContants.MEMBER_STATE_NO == isMember){
+            List<MallOrderInfo> mallOrderInfos = this.baseMapper.selectOrderInfoByStatus(OrderStatusEnum.FINISH.getValue());
+            if(CollUtil.isNotEmpty(mallOrderInfos)){
+                DataDictionaryCustom minAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        DataDictionaryEnum.MIN_AMOUNT_IS_MEMBER.getType(),
+                        DataDictionaryEnum.MIN_AMOUNT_IS_MEMBER.getCode()
+                );
+                BigDecimal minAmount = new BigDecimal(minAmountDic.getValue());//系统设置的累计消费金额
+                BigDecimal accumulateAmount = mallOrderInfos.stream().map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);//累计消费金额
+                if(minAmount.compareTo(accumulateAmount) <= 0){//用户累计消费大于系统设置的累计消费
+                    member.setIsMember(AppContants.MEMBER_STATE_YES);
+                    memberMapper.updateById(member);
+                }
+            }
+        }
+
     }
 
     @Override

--
Gitblit v1.9.1