From fe86da92bf703556de6030ec40f3c3bf5b999f91 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 23 Apr 2021 14:47:02 +0800
Subject: [PATCH] 20210423

---
 src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java b/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
index bc8fccd..eb13783 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xcong.excoin.common.entity.FebsConstant;
+import com.xcong.excoin.common.entity.FebsResponse;
 import com.xcong.excoin.common.entity.QueryRequest;
 import com.xcong.excoin.common.exception.FebsException;
 import com.xcong.excoin.common.utils.Md5Util;
@@ -56,6 +57,12 @@
         AgentFriendRelationEntity agentFriendRelation = new AgentFriendRelationEntity();
         String refererId = "";
         int level = 0;
+
+        User isExist = userMapper.findByName(agentUser.getAccount());
+        if (isExist != null) {
+            throw new FebsException("该用户名已存在");
+        }
+
         if (FebsConstant.USER_TYPE_ADMIN.equals(user.getType())) {
             refererId = FebsConstant.DEFAULT_REFERER_ID;
             level = 1;
@@ -65,7 +72,7 @@
             if (agentUser.getReturnRatio().compareTo(friendRelationEntity.getReturnRatio()) > 0) {
                 throw new FebsException("返佣比例需小于自己的返佣比例");
             }
-            level++;
+            level = friendRelationEntity.getLevelId() + 1;
         }
         MemberEntity memberEntity = memberMapper.selectMemberByInviteIdAndRefererId(agentUser.getInviteId(), refererId);
         if (memberEntity == null) {
@@ -131,6 +138,15 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void editAgent(AgentUser agentUser, User user) {
+        if (FebsConstant.USER_TYPE_ADMIN.equals(user.getType())) {
+            user.setInviteId(FebsConstant.DEFAULT_REFERER_ID);
+        }
+
+        AgentFriendRelationEntity agentFriendRelationEntity = agentFriendRelationMapper.selectAgentFriendRelationByUserId(agentUser.getId());
+        if (!user.getInviteId().equals(agentFriendRelationEntity.getRefererId())) {
+            throw new FebsException("不是该用户直接上级,无法修改");
+        }
+
         if (!FebsConstant.USER_TYPE_ADMIN.equals(user.getType())) {
             AgentFriendRelationEntity friendRelationEntity = agentFriendRelationMapper.selectAgentFriendRelationByUserId(user.getUserId());
             if (agentUser.getReturnRatio().compareTo(friendRelationEntity.getReturnRatio()) > 0) {
@@ -144,9 +160,7 @@
         editUser.setAgentName(agentUser.getName());
         userMapper.updateById(editUser);
 
-        AgentFriendRelationEntity relationEntity = new AgentFriendRelationEntity();
-        relationEntity.setUserId(agentUser.getId());
-        relationEntity.setReturnRatio(agentUser.getReturnRatio());
-        agentFriendRelationMapper.updateByUserId(relationEntity);
+        agentFriendRelationEntity.setReturnRatio(agentUser.getReturnRatio());
+        agentFriendRelationMapper.updateById(agentFriendRelationEntity);
     }
 }

--
Gitblit v1.9.1