From 959bd76c3dd17ff7cb0b492c7568b8b54c09dee2 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Mon, 29 Jan 2024 23:42:27 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

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 88d2416..483fb2c 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
@@ -697,16 +697,29 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void modifyReferer(MallMember member) {
-        MallMember referer = this.baseMapper.selectInfoByInviteId(member.getReferrerId());
+        if(StrUtil.isEmpty(member.getReferrerId())){
+            this.baseMapper.updateReferrerId(member.getId());
+            return;
+        }
+        String referrerId = member.getReferrerId();//新的推荐人邀请码
+        //获取新推荐人信息
+        MallMember referer = this.baseMapper.selectInfoByInviteId(referrerId);
         if (referer == null) {
             throw new FebsException("推荐人不存在");
         }
-        String refererId = member.getReferrerId();
+        member = this.baseMapper.selectById(member.getId());//修改的用户
 
-        member = this.baseMapper.selectById(member.getId());
-
-        String beforeReferer = member.getReferrerId();
-        member.setReferrerId(refererId);
+        if(member.getInviteId().equals(referrerId)){
+            throw new FebsException("自己不能推荐自己");
+        }
+        String refererId = referer.getInviteId();//新推荐人的邀请码
+        if(StrUtil.isNotEmpty(referer.getReferrerIds())){
+            if (referer.getReferrerIds().contains(member.getInviteId())) {
+                throw new FebsException("修改的推荐关系不符合规则");
+            }
+        }
+//        String beforeReferer = member.getReferrerId();
+        member.setReferrerId(refererId);//更新用户的上级推荐人为新推荐人的邀请码refererId
         String refererIds = refererIds(refererId);
         member.setReferrerIds(refererIds);
         this.baseMapper.updateById(member);

--
Gitblit v1.9.1