From 53ffb6bdb5ec6b8a0a17caf9f6019fa68df22b89 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 13 Apr 2022 10:34:37 +0800 Subject: [PATCH] fix 后台可以无邀请码添加用户 --- src/main/resources/mapper/dapp/DappMemberDao.xml | 2 src/main/java/cc/mrbird/febs/dapp/service/impl/DappUserServiceImpl.java | 64 +++++++++++++++++++++++++------- src/main/java/cc/mrbird/febs/job/MineProfitJob.java | 9 ++++ src/main/resources/templates/febs/views/dapp/user.html | 16 +++++++ src/test/java/cc/mrbird/febs/JunitTest.java | 12 ++++++ src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java | 2 + 6 files changed, 88 insertions(+), 17 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java index c2f3112..bdc1f06 100644 --- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java +++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java @@ -43,4 +43,6 @@ private String refererIds; private int approveCnt; + + private int source; } 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 b4a7d9f..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,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -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) { @@ -49,21 +57,49 @@ @Transactional(rollbackFor = Exception.class) public void add(User user) { User currentUser = FebsUtil.getCurrentUser(); - DappMemberEntity 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("该用户不是直推"); + DappMemberEntity member; + if (StrUtil.isNotBlank(user.getInviteId())) { + member = dappMemberDao.selectMemberInfoByInviteId(user.getInviteId()); + if (member == null) { + throw new FebsException("邀请码错误"); } - } - DappUserMemberRelateEntity userMemberRelate = dappUserMemberRelateDao.selectByInviteId(user.getInviteId()); - if (userMemberRelate != 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()); @@ -82,7 +118,7 @@ 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); } diff --git a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java index e4732f8..113c7d3 100644 --- a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java +++ b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java @@ -109,7 +109,7 @@ * @param member * @param amount */ - private void calAgentMoney(DappMemberEntity member, BigDecimal amount) { + public void calAgentMoney(DappMemberEntity member, BigDecimal amount) { if (StrUtil.isBlank(member.getRefererIds())) { return; } @@ -118,6 +118,13 @@ for (int i = 0; i < agents.size(); i++) { DappMemberEntity agent = agents.get(i); +// if ((agent.getAddress().startsWith("T") || agent.getAddress().startsWith("0x")) && agent.getAddress().length() <= 20) { +// continue; +// } + if (agent.getSource() == 2) { + continue; + } + BigDecimal balance = ChainService.INSTANCE.balanceOf(agent.getAddress()); if (balance.compareTo(BigDecimal.valueOf(100L)) < 0) { continue; diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml index a2b2370..556bb35 100644 --- a/src/main/resources/mapper/dapp/DappMemberDao.xml +++ b/src/main/resources/mapper/dapp/DappMemberDao.xml @@ -34,7 +34,7 @@ <select id="selectAllMemberForInCome" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity"> select * from dapp_member - where account_status=1 + where account_status=1 and source = 1 </select> <select id="selectAgentMemberList" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity"> diff --git a/src/main/resources/templates/febs/views/dapp/user.html b/src/main/resources/templates/febs/views/dapp/user.html index 30c675c..a3aeff9 100644 --- a/src/main/resources/templates/febs/views/dapp/user.html +++ b/src/main/resources/templates/febs/views/dapp/user.html @@ -28,6 +28,8 @@ <option value="1">有效</option> </select> </div> + + <input id="copyShare" type="text" hidden /> </div> </div> </div> @@ -64,7 +66,8 @@ <span shiro:lacksPermission="admin:view,admin:update,admin:delete"> <span class="layui-badge-dot febs-bg-orange"></span> 无权限 </span> - <a lay-event="del" shiro:hasPermission="admin:delete"><i class="layui-icon febs-edit-area febs-red"></i></a> + <a lay-event="share" shiro:hasPermission="admin:delete"><i class="layui-icon febs-edit-area febs-blue"></i></a> + <a lay-event="del" shiro:hasPermission="admin:delete" title="邀请链接"><i class="layui-icon febs-edit-area febs-red"></i></a> </script> <script data-th-inline="none" type="text/javascript"> layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () { @@ -194,6 +197,17 @@ } }); } + + if (layEvent === 'share') { + var url = "https://antethvip.com/?code=" + data.inviteId; + var $copyShare = $("#copyShare") + $copyShare.show(); + $copyShare.val(url); + $copyShare.select(); + document.execCommand("copy"); + $copyShare.hide(); + febs.alert.success('复制成功'); + } }); table.on('sort(adminTable)', function (obj) { diff --git a/src/test/java/cc/mrbird/febs/JunitTest.java b/src/test/java/cc/mrbird/febs/JunitTest.java index 96b3758..d473f01 100644 --- a/src/test/java/cc/mrbird/febs/JunitTest.java +++ b/src/test/java/cc/mrbird/febs/JunitTest.java @@ -1,9 +1,13 @@ package cc.mrbird.febs; +import cc.mrbird.febs.dapp.entity.DappMemberEntity; +import cc.mrbird.febs.dapp.mapper.DappMemberDao; import cc.mrbird.febs.job.MineProfitJob; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; + +import java.math.BigDecimal; /** * @author @@ -14,9 +18,17 @@ @Autowired private MineProfitJob mineProfitJob; + @Autowired + private DappMemberDao dappMemberDao; @Test public void incomeTest() { mineProfitJob.start(); } + + @Test + public void userTest() { + DappMemberEntity member = dappMemberDao.selectById(6L); + mineProfitJob.calAgentMoney(member, BigDecimal.TEN); + } } -- Gitblit v1.9.1