From e9e2905bfc18dd68562f9e9711ce60f67ec28aa7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 20 Oct 2022 16:05:28 +0800
Subject: [PATCH] 20221020

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |  135 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 130 insertions(+), 5 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..813b090 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 DappBankDao dappBankDao;
 
     private final RedisTemplate<String, Object> redisTemplate;
 
@@ -680,7 +681,7 @@
     }
 
     @Override
-    public List<ApiAmountChangeListVo> findAmountInPage(ApiAmountChangeDto apiAmountChangeDto) {
+    public IPage<ApiAmountChangeListVo> findAmountInPage(ApiAmountChangeDto apiAmountChangeDto) {
         Page<ApiAmountChangeListVo> page = new Page<>(apiAmountChangeDto.getPageNum(), apiAmountChangeDto.getPageSize());
 
         DappMemberEntity member = LoginUserUtil.getAppUser();
@@ -696,7 +697,131 @@
         }
         dappAccountMoneyChangeEntity.setMemberId(member.getId());
         IPage<ApiAmountChangeListVo> records = dappAccountMoneyChangeDao.selectChangeListInPage(page, dappAccountMoneyChangeEntity);
-        return records.getRecords();
+        return records;
+    }
+
+    @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 IPage<ApiMyTeammateInfoListVo> 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 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 IPage<ApiMyTeammateAmountChangeListVo> 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 amountChangeList;
+    }
+
+    @Override
+    public IPage<ApiBankListVo> getBankListInPage(ApiBankListDto apiBankListDto) {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        Page<ApiBankListVo> page = new Page<>(apiBankListDto.getPageNum(), apiBankListDto.getPageSize());
+        apiBankListDto.setMemberId(member.getId());
+        IPage<ApiBankListVo> apiBankListVoIPage = dappBankDao.selectBankListInPage(apiBankListDto,page);
+        return apiBankListVoIPage;
     }
 
     public String generateAsaToken(String token) {

--
Gitblit v1.9.1