From 05d0f9270936df6eb6af19bc3ee7f5ec42acf0df Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sat, 30 Jul 2022 23:43:30 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java
index 3e75e13..d0c2853 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java
@@ -4,10 +4,15 @@
 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;
@@ -22,11 +27,12 @@
 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
@@ -38,6 +44,8 @@
     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) {
@@ -48,9 +56,50 @@
     @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());
@@ -66,11 +115,10 @@
         userRole.setUserId(user.getUserId());
         userRoleMapper.insert(userRole);
 
-        User currentUser = FebsUtil.getCurrentUser();
         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);
     }

--
Gitblit v1.9.1