From 37add75366d13ed10fcb8e2db890cbccd7555cb7 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 15 Jan 2024 11:28:44 +0800
Subject: [PATCH] 修改联系人。异步更新所有用户的上下级关系

---
 src/main/java/cc/mrbird/febs/mall/service/AsyncService.java                    |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java           |   55 +++++++++++----------------
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |    9 ++++
 3 files changed, 32 insertions(+), 34 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
index 8ca6dda..622804b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
@@ -11,5 +11,5 @@
 public interface AsyncService extends IService<MallMember> {
 
     @Async(FebsConstant.ASYNC_POOL)
-    void updateAllMemberReferrerId();
+    void updateAllMemberReferrerId(MallMember mallMember);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index a1d3be2..e1f7b00 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -621,7 +621,14 @@
             this.baseMapper.updateById(child);
         }
 
-        asyncService.updateAllMemberReferrerId();
+        log.info("异步更新用户信息");
+        List<MallMember> mallMembers = this.baseMapper.selectList(null);
+        if(CollUtil.isEmpty(mallMembers)){
+            return;
+        }
+        for(MallMember mallMemberDown : mallMembers){
+            asyncService.updateAllMemberReferrerId(mallMemberDown);
+        }
     }
 
     @Override
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
index 1770c3a..768bde2 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
@@ -3,52 +3,43 @@
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.mapper.MallMemberMapper;
 import cc.mrbird.febs.mall.service.AsyncService;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 @Slf4j
 @Service
 @RequiredArgsConstructor
 public class AsyncServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements AsyncService {
     @Override
-    public void updateAllMemberReferrerId() {
-        log.info("异步更新用户信息");
-        List<MallMember> mallMembers = this.baseMapper.selectList(null);
-        if(CollUtil.isEmpty(mallMembers)){
-            return;
+    public void updateAllMemberReferrerId(MallMember mallMember){
+        boolean flag = false;
+        String parentId = mallMember.getReferrerId();
+        if (StrUtil.isBlank(parentId)) {
+            flag = true;
         }
-        for(MallMember mallMember : mallMembers){
-            boolean flag = false;
-            String parentId = mallMember.getReferrerId();
-            if (StrUtil.isBlank(parentId)) {
+        String ids = "";
+        while (!flag) {
+            if (StrUtil.isBlank(ids)) {
+                ids += parentId;
+            } else {
+                ids += ("," + parentId);
+            }
+            MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
+            if (parentMember == null) {
+                break;
+            }
+            parentId = parentMember.getReferrerId();
+            if (StrUtil.isBlank(parentMember.getReferrerId())) {
                 flag = true;
             }
-            String ids = "";
-            while (!flag) {
-                if (StrUtil.isBlank(ids)) {
-                    ids += parentId;
-                } else {
-                    ids += ("," + parentId);
-                }
-                MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
-                if (parentMember == null) {
-                    break;
-                }
-                parentId = parentMember.getReferrerId();
-                if (StrUtil.isBlank(parentMember.getReferrerId())) {
-                    flag = true;
-                }
-            }
-
-            if (StrUtil.isNotBlank(ids)) {
-                mallMember.setReferrerIds(ids);
-            }
-            this.baseMapper.updateById(mallMember);
         }
+
+        if (StrUtil.isNotBlank(ids)) {
+            mallMember.setReferrerIds(ids);
+        }
+        this.baseMapper.updateById(mallMember);
     }
 }

--
Gitblit v1.9.1