From 60f9b412d8c49501dc55a4ffd8f4a63a69043cd0 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 08 Jun 2022 09:37:02 +0800 Subject: [PATCH] fix transfer --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 66 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 12 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 6efb1dc..acc3067 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 @@ -7,20 +7,17 @@ import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.ShareCodeUtil; +import cc.mrbird.febs.dapp.chain.ChainEnum; import cc.mrbird.febs.dapp.chain.ChainService; import cc.mrbird.febs.dapp.chain.ContractChainService; import cc.mrbird.febs.dapp.dto.ApproveDto; import cc.mrbird.febs.dapp.dto.ConnectDto; import cc.mrbird.febs.dapp.dto.PriceSettingDto; -import cc.mrbird.febs.dapp.entity.DappMemberEntity; -import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity; -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.DappTransferRecordDao; -import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao; -import cc.mrbird.febs.dapp.mapper.DappWalletMineDao; +import cc.mrbird.febs.dapp.dto.TeamListDto; +import cc.mrbird.febs.dapp.entity.*; +import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappMemberService; +import cc.mrbird.febs.dapp.vo.TeamListVo; import cc.mrbird.febs.system.entity.User; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; @@ -33,7 +30,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -49,6 +48,7 @@ private final DappWalletMineDao dappWalletMineDao; private final DappTransferRecordDao dappTransferRecordDao; private final RedisUtils redisUtils; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -124,15 +124,23 @@ DappMemberEntity member = dappMemberDao.selectByAddress(connectDto.getAddress(), null); if (member == null) { - member = insertMember(connectDto.getAddress(), null); + member = insertMember(connectDto.getAddress(), connectDto.getInviteId()); + } + + if (member.getActiveStatus() == 2) { + throw new FebsException("账号暂未激活,请联系推荐人"); } String key = LoginUserUtil.getLoginKey(connectDto.getAddress(), connectDto.getNonce(), connectDto.getSign()); redisUtils.set(connectDto.getAddress(), member); - HashMap<String, String> map = new HashMap<>(); - map.put(connectDto.getAddress(), key); - redisUtils.set(AppContants.REDIS_KEY_SIGN, map); + Map<Object, Object> keys = redisUtils.hmget(AppContants.REDIS_KEY_SIGN); + if (keys == null) { + keys = new HashMap<>(); + } + + keys.put(connectDto.getAddress(), key); + redisUtils.hmset(AppContants.REDIS_KEY_SIGN, keys); } @Override @@ -254,10 +262,38 @@ @Override public DappMemberEntity insertMember(String address, String refererId) { + + return insertMember(address, refererId, "BSC", "normal"); + } + + @Override + public DappMemberEntity insertMember(String address, String refererId, String chainType, String accountType) { DappMemberEntity member = new DappMemberEntity(); member.setAddress(address); + member.setChainType(chainType); + member.setAccountType(accountType); + // 如果有推荐人,则需要推荐人转币后激活 + member.setActiveStatus(2); + member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address)); + member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address)); + + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_SYSTEM_NODE_CNT_LIMIT); + int nodeCntLimit = Integer.parseInt(dic.getValue()); + + List<DappMemberEntity> memberCount = dappMemberDao.selectList(null); + if (memberCount.size() <= (nodeCntLimit + 4)) { + member.setNodeType(1); + } else { + member.setNodeType(2); + } dappMemberDao.insert(member); + + if (StrUtil.isEmpty(refererId)) { + refererId = "0"; + // 若没有推荐人,则直接激活 + member.setActiveStatus(1); + } member.setInviteId(ShareCodeUtil.toSerialCode(member.getId())); member.setRefererId(refererId); @@ -290,4 +326,10 @@ return member; } + + @Override + public List<TeamListVo> findTeamList(TeamListDto teamListDto) { + + return new ArrayList<>(); + } } -- Gitblit v1.9.1