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