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