From 6827cdbc773688f34c8b9470bf5300054292fe14 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 20 Oct 2022 15:09:38 +0800
Subject: [PATCH] 20221020

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |  122 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 119 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 1178fdf..074481e 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -19,10 +19,9 @@
 import cc.mrbird.febs.dapp.service.DappMemberService;
 import cc.mrbird.febs.dapp.utils.CaptchaUtil;
 import cc.mrbird.febs.dapp.utils.UUIDUtil;
-import cc.mrbird.febs.dapp.vo.ApiAmountChangeListVo;
-import cc.mrbird.febs.dapp.vo.MemberInfoVo;
-import cc.mrbird.febs.dapp.vo.TeamListVo;
+import cc.mrbird.febs.dapp.vo.*;
 import cc.mrbird.febs.system.entity.User;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -43,6 +42,7 @@
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -64,6 +64,7 @@
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     private final PlatformBannerMapper platformBannerMapper;
     private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
+    private final DappMemberService dappMemberService;
 
     private final RedisTemplate<String, Object> redisTemplate;
 
@@ -699,6 +700,121 @@
         return records.getRecords();
     }
 
+    @Override
+    @Transactional
+    public FebsResponse addTeammate(ApiAddTeammateDto apiAddTeammateDto) {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        //验证验证码是否正确
+        // 根据前端传回的token在redis中找对应的value
+        ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
+        if(ObjectUtil.isEmpty(apiAddTeammateDto.getCodeToken()) || ObjectUtil.isEmpty(apiAddTeammateDto.getCodeValue())){
+            return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_001"));
+        }
+        String codeToken = apiAddTeammateDto.getCodeToken();
+        String codeValue = apiAddTeammateDto.getCodeValue();
+        if (redisTemplate.hasKey(codeToken)) {
+            //验证通过, 删除对应的key
+            if (valueOperations.get(codeToken).equals(codeValue)) {
+                redisTemplate.delete(codeToken);
+            } else {
+                return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_002"));
+            }
+        } else {
+            return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_003"));
+        }
+
+        // 查询是否存在该账号用户
+        DappMemberEntity memberExit = dappMemberDao.selectMemberInfoByUsername(apiAddTeammateDto.getAccount());
+        if (ObjectUtil.isNotEmpty(memberExit)) {
+            return new FebsResponse().fail().message(MessageSourceUtils.getString("register_err_004"));
+        }
+        DappMemberEntity refererMember = dappMemberDao.selectMemberInfoByInviteId(member.getInviteId());
+        if (ObjectUtil.isEmpty(refererMember)) {
+            return new FebsResponse().fail().message(MessageSourceUtils.getString("register_err_005"));
+        }
+        member = new DappMemberEntity();
+        member.setUsername(apiAddTeammateDto.getAccount());
+        member.setPassword(SecureUtil.md5(apiAddTeammateDto.getPassword()));
+        member.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode());
+        member.setRefererId(member.getInviteId());
+        dappMemberDao.insert(member);
+
+        //更新用户信息
+        String inviteId = ShareCodeUtil.toSerialCode(member.getId());
+        member.setInviteId(inviteId);
+        boolean flag = false;
+        String parentId = member.getRefererId();
+        String ids = "";
+        while (!flag) {
+            ids += ("," + parentId);
+            DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
+            if (parentMember == null) {
+                break;
+            }
+            parentId = parentMember.getRefererId();
+            if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
+                flag = true;
+            }
+        }
+        member.setRefererIds(ids);
+        dappMemberDao.updateById(member);
+        //初始化账户信息
+        DappWalletCoinEntity dappWalletCoinEntity = new DappWalletCoinEntity();
+        dappWalletCoinEntity.setMemberId(member.getId());
+        dappWalletCoinEntity.setAvailableAmount(AppContants.INIT_MONEY);
+        dappWalletCoinEntity.setFrozenAmount(AppContants.INIT_MONEY);
+        dappWalletCoinEntity.setTotalAmount(AppContants.INIT_MONEY);
+        dappWalletCoinDao.insert(dappWalletCoinEntity);
+
+        return new FebsResponse().success().message(MessageSourceUtils.getString("register_err_006"));
+    }
+
+    @Override
+    public FebsResponse myTeammateInfo(ApiMyTeammateInfoDto apiMyTeammateInfoDto) {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        Page<ApiMyTeammateInfoListVo> page = new Page<>(apiMyTeammateInfoDto.getPageNum(), apiMyTeammateInfoDto.getPageSize());
+        if(ObjectUtil.isEmpty(apiMyTeammateInfoDto.getInviteId())){
+            apiMyTeammateInfoDto.setInviteId(member.getInviteId());
+        }else{
+            apiMyTeammateInfoDto.setInviteId(apiMyTeammateInfoDto.getInviteId());
+        }
+        IPage<ApiMyTeammateInfoListVo> apiMyTeammateInfoListVos = dappMemberDao.selectMyTeammateInfoInPage(apiMyTeammateInfoDto, page);
+        if(CollUtil.isNotEmpty(apiMyTeammateInfoListVos.getRecords())){
+            for(ApiMyTeammateInfoListVo apiMyTeammateInfoListVo : apiMyTeammateInfoListVos.getRecords()){
+                String identity = apiMyTeammateInfoListVo.getIdentity();
+                if(DataDictionaryEnum.LEVEL_TM.getCode().equals(identity)){
+                    apiMyTeammateInfoListVo.setLevelName("游客");
+                }else{
+                    apiMyTeammateInfoListVo.setLevelName("会员");
+                }
+            }
+        }
+        return new FebsResponse().success().data(apiMyTeammateInfoListVos);
+    }
+
+    @Override
+    public FebsResponse amountType() {
+        ArrayList<ApiAmountTypeVo> apiAmountTypeVos = new ArrayList<>();
+        List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.WITHDRAW_OUT.getType());
+        if(CollUtil.isNotEmpty(dataDictionaryCustoms)){
+            for(DataDictionaryCustom dataDictionaryCustom : dataDictionaryCustoms){
+                ApiAmountTypeVo apiAmountTypeVo = new ApiAmountTypeVo();
+                apiAmountTypeVo.setDescription(dataDictionaryCustom.getDescription());
+                apiAmountTypeVo.setCodeValue(dataDictionaryCustom.getValue());
+            }
+        }
+        return new FebsResponse().success().data(apiAmountTypeVos);
+    }
+
+    @Override
+    public FebsResponse findTeammateChangeListInPage(ApiAmountChangeDto apiAmountChangeDto) {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        Page<ApiMyTeammateAmountChangeListVo> page = new Page<>(apiAmountChangeDto.getPageNum(), apiAmountChangeDto.getPageSize());
+        apiAmountChangeDto.setInviteId(member.getInviteId());
+        IPage<ApiMyTeammateAmountChangeListVo> amountChangeList = dappAccountMoneyChangeDao.selectTeammateChangeListInPage(apiAmountChangeDto,page);
+        return new FebsResponse().success().data(amountChangeList);
+    }
+
     public String generateAsaToken(String token) {
         RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
         return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);

--
Gitblit v1.9.1