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 |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 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 23a4e24..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
@@ -686,12 +686,25 @@
             MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId);
             Long parentId = mallMemberParent.getId();
             String orderNo = orderInfo.getOrderNo();
-            MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(orderNo, member.getId(), parentId);
+            MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(orderNo, parentId, member.getId());
             if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
                 mallMoneyFlow.setStatus(2);
                 mallMoneyFlow.setIsReturn(1);
                 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());
@@ -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