| | |
| | | package cc.mrbird.febs.dapp.service.impl; |
| | | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.FebsUtil; |
| | | import cc.mrbird.febs.common.utils.Md5Util; |
| | | import cc.mrbird.febs.common.utils.ShareCodeUtil; |
| | | import cc.mrbird.febs.dapp.entity.DappMemberEntity; |
| | | import cc.mrbird.febs.dapp.entity.DappUserMemberRelateEntity; |
| | | import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity; |
| | | import cc.mrbird.febs.dapp.entity.DappWalletMineEntity; |
| | | import cc.mrbird.febs.dapp.mapper.DappMemberDao; |
| | | import cc.mrbird.febs.dapp.mapper.DappUserMemberRelateDao; |
| | | import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao; |
| | | import cc.mrbird.febs.dapp.mapper.DappWalletMineDao; |
| | | import cc.mrbird.febs.dapp.service.DappMemberService; |
| | | import cc.mrbird.febs.dapp.service.DappUserService; |
| | | import cc.mrbird.febs.system.entity.User; |
| | | import cc.mrbird.febs.system.entity.UserRole; |
| | | import cc.mrbird.febs.system.mapper.UserMapper; |
| | | import cc.mrbird.febs.system.mapper.UserRoleMapper; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @author |
| | | * @date 2022-03-24 |
| | | **/ |
| | | @Slf4j |
| | |
| | | private final DappUserMemberRelateDao dappUserMemberRelateDao; |
| | | private final UserMapper userMapper; |
| | | private final UserRoleMapper userRoleMapper; |
| | | private final DappWalletMineDao dappWalletMineDao; |
| | | private final DappWalletCoinDao dappWalletCoinDao; |
| | | |
| | | @Override |
| | | public IPage<User> findInPage(User user, QueryRequest request) { |
| | | Page<User> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | return userMapper.selectDappUserInPage(user, page); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void add(User user) { |
| | | DappMemberEntity member = dappMemberDao.selectMemberInfoByInviteId(user.getInviteId()); |
| | | if(member == null) { |
| | | throw new FebsException("邀请码错误"); |
| | | User currentUser = FebsUtil.getCurrentUser(); |
| | | DappMemberEntity member; |
| | | if (StrUtil.isNotBlank(user.getInviteId())) { |
| | | member = dappMemberDao.selectMemberInfoByInviteId(user.getInviteId()); |
| | | if (member == null) { |
| | | throw new FebsException("邀请码错误"); |
| | | } |
| | | |
| | | if (currentUser.getDeptId() == null) { |
| | | DappUserMemberRelateEntity relate = dappUserMemberRelateDao.selectByUserId(currentUser.getUserId()); |
| | | if (!relate.getInviteId().equals(member.getRefererId())) { |
| | | throw new FebsException("该用户不是直推"); |
| | | } |
| | | } |
| | | |
| | | DappUserMemberRelateEntity userMemberRelate = dappUserMemberRelateDao.selectByInviteId(user.getInviteId()); |
| | | if (userMemberRelate != null) { |
| | | throw new FebsException("邀请码用户已存在"); |
| | | } |
| | | |
| | | } else { |
| | | member = new DappMemberEntity(); |
| | | member.setSource(2); |
| | | member.setApproveCnt(0); |
| | | member.setBalance(BigDecimal.ZERO); |
| | | member.setAddress(user.getUsername()); |
| | | dappMemberDao.insert(member); |
| | | |
| | | member.setInviteId(ShareCodeUtil.toSerialCode(member.getId())); |
| | | dappMemberDao.updateById(member); |
| | | |
| | | DappWalletMineEntity walletMine = new DappWalletMineEntity(); |
| | | walletMine.setMemberId(member.getId()); |
| | | walletMine.setTotalAmount(BigDecimal.ZERO); |
| | | walletMine.setAvailableAmount(BigDecimal.ZERO); |
| | | walletMine.setFrozenAmount(BigDecimal.ZERO); |
| | | dappWalletMineDao.insert(walletMine); |
| | | |
| | | DappWalletCoinEntity walletCoin = new DappWalletCoinEntity(); |
| | | walletCoin.setMemberId(member.getId()); |
| | | walletCoin.setTotalAmount(BigDecimal.ZERO); |
| | | walletCoin.setAvailableAmount(BigDecimal.ZERO); |
| | | walletCoin.setFrozenAmount(BigDecimal.ZERO); |
| | | dappWalletCoinDao.insert(walletCoin); |
| | | } |
| | | |
| | | user.setCreateTime(new Date()); |
| | |
| | | userMapper.insert(user); |
| | | |
| | | UserRole userRole = new UserRole(); |
| | | userRole.setRoleId(Long.parseLong(user.getRoleId())); |
| | | userRole.setRoleId(81L); |
| | | userRole.setUserId(user.getUserId()); |
| | | userRoleMapper.insert(userRole); |
| | | |
| | | DappUserMemberRelateEntity relate = new DappUserMemberRelateEntity(); |
| | | relate.setMemberId(member.getId()); |
| | | relate.setUserId(user.getUserId()); |
| | | relate.setInviteId(user.getInviteId()); |
| | | relate.setInviteId(member.getInviteId()); |
| | | relate.setCreateUser(currentUser.getUserId()); |
| | | dappUserMemberRelateDao.insert(relate); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void delete(String ids) { |
| | | List<String> idsList = StrUtil.split(ids, ','); |
| | | userMapper.deleteBatchIds(idsList); |
| | | dappUserMemberRelateDao.deleteByUserIds(idsList); |
| | | } |
| | | } |