| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | |
| | | private final MemberMapper memberMapper; |
| | | |
| | | private final UserRoleMapper userRoleMapper; |
| | | |
| | | private final AgentFriendRelationMapper agentFriendRelationMapper; |
| | | |
| | | @Override |
| | |
| | | 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) { |
| | |
| | | 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); |
| | | } |
| | | } |