From ec74f248ddac773a6024a243a37346bd2e9bb028 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Thu, 15 Oct 2020 23:46:09 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin_agent
---
src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java | 83 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 80 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..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
@@ -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,28 @@
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;
+
+ 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;
} else {
refererId = user.getInviteId();
+ AgentFriendRelationEntity friendRelationEntity = agentFriendRelationMapper.selectAgentFriendRelationByUserId(user.getUserId());
+ if (agentUser.getReturnRatio().compareTo(friendRelationEntity.getReturnRatio()) > 0) {
+ throw new FebsException("返佣比例需小于自己的返佣比例");
+ }
+ level = friendRelationEntity.getLevelId() + 1;
}
MemberEntity memberEntity = memberMapper.selectMemberByInviteIdAndRefererId(agentUser.getInviteId(), refererId);
if (memberEntity == null) {
@@ -69,21 +93,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