From 373f08dd87acf015d0c70356cd6a9ad44e5cc470 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 15 Jun 2020 17:48:46 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 74 insertions(+), 3 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 c54e672..b07af97 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
@@ -1,8 +1,10 @@
 package com.xcong.excoin.modules.agent.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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;
@@ -13,12 +15,18 @@
 import com.xcong.excoin.modules.agent.pojo.AgentUser;
 import com.xcong.excoin.modules.agent.service.IAgentService;
 import com.xcong.excoin.system.entity.User;
+import com.xcong.excoin.system.entity.UserRole;
 import com.xcong.excoin.system.mapper.UserMapper;
+import com.xcong.excoin.system.mapper.UserRoleMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import sun.management.Agent;
 
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author wzy
@@ -33,6 +41,8 @@
 
     private final MemberMapper memberMapper;
 
+    private final UserRoleMapper userRoleMapper;
+
     private final AgentFriendRelationMapper agentFriendRelationMapper;
 
     @Override
@@ -41,14 +51,22 @@
         return userMapper.selectAgentUserList(page, agentUser);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void addAgent(AgentUser agentUser, User user) {
         AgentFriendRelationEntity agentFriendRelation = new AgentFriendRelationEntity();
         String refererId = "";
+        int level = 0;
         if (FebsConstant.USER_TYPE_ADMIN.equals(user.getType())) {
             refererId = FebsConstant.DEFAULT_REFERER_ID;
+            level = 1;
         } else {
             refererId = user.getInviteId();
+            AgentFriendRelationEntity friendRelationEntity = agentFriendRelationMapper.selectAgentFriendRelationByUserId(user.getUserId());
+            if (agentUser.getReturnRatio().compareTo(friendRelationEntity.getReturnRatio()) > 0) {
+                throw new FebsException("返佣比例需小于自己的返佣比例");
+            }
+            level++;
         }
         MemberEntity memberEntity = memberMapper.selectMemberByInviteIdAndRefererId(agentUser.getInviteId(), refererId);
         if (memberEntity == null) {
@@ -69,21 +87,74 @@
         addUser.setType(FebsConstant.USER_TYPE_AGENT);
         addUser.setSystem(FebsConstant.SYSTEM_AGENT);
         addUser.setCreateTime(new Date());
+        addUser.setMobile(agentUser.getTelphone());
         addUser.setInviteId(agentUser.getInviteId());
         addUser.setAgentName(agentUser.getName());
-        addUser.setPassword(Md5Util.encrypt(user.getUsername(), User.DEFAULT_PASSWORD));
-        userMapper.insert(user);
+        addUser.setPassword(Md5Util.encrypt(addUser.getUsername(), User.DEFAULT_PASSWORD));
+        userMapper.insert(addUser);
+
+        UserRole userRole = new UserRole();
+        userRole.setUserId(addUser.getUserId());
+        userRole.setRoleId(83L);
+        userRoleMapper.insert(userRole);
 
         agentFriendRelation.setInviteId(agentUser.getInviteId());
         agentFriendRelation.setRefererId(refererId);
         agentFriendRelation.setRefererIds(memberEntity.getRefererIds());
         agentFriendRelation.setMemberId(memberEntity.getId());
         agentFriendRelation.setReturnRatio(agentUser.getReturnRatio());
-        agentFriendRelation.setUserId(user.getUserId());
+        agentFriendRelation.setUserId(addUser.getUserId());
         agentFriendRelation.setCreateBy(user.getUsername());
         agentFriendRelation.setCreateTime(new Date());
         agentFriendRelation.setUpdateBy(user.getUsername());
         agentFriendRelation.setUpdateTime(new Date());
+        agentFriendRelation.setLevelId(level);
+        agentFriendRelation.setFeeIsSelf(2);
         agentFriendRelationMapper.insert(agentFriendRelation);
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delAgent(String[] ids) {
+        List<String> list = Arrays.asList(ids);
+        userMapper.deleteBatchIds(list);
+        agentFriendRelationMapper.delete(new QueryWrapper<AgentFriendRelationEntity>().lambda().in(AgentFriendRelationEntity::getUserId, list));
+        userRoleMapper.delete(new QueryWrapper<UserRole>().lambda().in(UserRole::getUserId, list));
+    }
+
+    @Override
+    public void resetPwd(Long id) {
+        User user = userMapper.selectById(id);
+        user.setPassword(Md5Util.encrypt(user.getUsername(), User.DEFAULT_PASSWORD));
+        userMapper.updateById(user);
+    }
+
+    @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) {
+                throw new FebsException("返佣比例需小于上级的返佣比例");
+            }
+        }
+
+        User editUser = new User();
+        editUser.setUserId(agentUser.getId());
+        editUser.setMobile(agentUser.getTelphone());
+        editUser.setAgentName(agentUser.getName());
+        userMapper.updateById(editUser);
+
+        agentFriendRelationEntity.setReturnRatio(agentUser.getReturnRatio());
+        agentFriendRelationMapper.updateById(agentFriendRelationEntity);
+    }
 }

--
Gitblit v1.9.1