Helius
2020-06-12 ea9c9f47bbd3b722e4b2fd215d38fbd86e8b4969
src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -13,12 +14,17 @@
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 java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 * @author wzy
@@ -33,6 +39,8 @@
    private final MemberMapper memberMapper;
    private final UserRoleMapper userRoleMapper;
    private final AgentFriendRelationMapper agentFriendRelationMapper;
    @Override
@@ -41,14 +49,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) {
@@ -71,19 +87,41 @@
        addUser.setCreateTime(new Date());
        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);
    }
    @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);
    }
}