From 0eb60238a905b0b6b60b1b9067177a0b6ca0ec92 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 06 Jun 2024 10:12:12 +0800 Subject: [PATCH] 购买节点 --- src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java | 4 - src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java | 2 src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 8 ++ src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 72 +++++++++++++++++++----- src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java | 6 ++ src/main/java/cc/mrbird/febs/dapp/dto/BuyNodeDto.java | 25 ++++++++ src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java | 3 src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java | 5 - 8 files changed, 101 insertions(+), 24 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java index 12bfe0b..dd80763 100644 --- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java +++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java @@ -1,7 +1,6 @@ package cc.mrbird.febs.dapp.controller; import cc.mrbird.febs.common.annotation.EncryptEnable; -import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.LoginUserUtil; @@ -11,7 +10,6 @@ import cc.mrbird.febs.dapp.service.DappMemberService; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; -import cc.mrbird.febs.dapp.vo.ActiveNftListVo; import cc.mrbird.febs.dapp.vo.TeamListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import io.swagger.annotations.Api; @@ -52,6 +50,12 @@ return new FebsResponse().success().data(walletInfoVo); } + @ApiOperation(value = "购买节点", notes = "购买节点") + @PostMapping(value = "/buyNode") + public FebsResponse buyNode(@RequestBody BuyNodeDto buyNodeDto) { + return new FebsResponse().success().data(dappWalletService.buyNode(buyNodeDto)); + } + @ApiOperation(value = "转账", notes = "转账") @PostMapping(value = "/transfer") public FebsResponse transfer(@RequestBody TransferDto transferDto) { diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/BuyNodeDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/BuyNodeDto.java new file mode 100644 index 0000000..8007025 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/dapp/dto/BuyNodeDto.java @@ -0,0 +1,25 @@ +package cc.mrbird.febs.dapp.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "BuyNodeDto", description = "连接参数接收类") +public class BuyNodeDto { + + @ApiModelProperty(value = "id", example = "1") + private Long id; + + @ApiModelProperty(value = "金额", example = "1") + private BigDecimal amount; + + @ApiModelProperty(value = "success/fail", example = "success") + private String flag; + + @ApiModelProperty(value = "交易hash", example = "123") + private String txHash; + +} diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java index 48b26b4..39645b4 100644 --- a/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java +++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java @@ -6,7 +6,6 @@ import lombok.Data; import java.math.BigDecimal; -import java.util.Date; /** * @author @@ -48,6 +47,8 @@ /** * 类型 1-买入 2-矩阵收益 3-直推收益 4-保险池 5-提现 6-手续费充值 7-手续费扣除 8-结算 9-冻结 10-冻结释放 11-产矿 12-手续费返利 + * + * 13-节点买入 */ private Integer type; 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 bfb0b1b..a50d043 100644 --- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java +++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java @@ -1,12 +1,9 @@ package cc.mrbird.febs.dapp.entity; import cc.mrbird.febs.common.entity.BaseEntity; -import cc.mrbird.febs.dapp.chain.ChainService; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.web3j.abi.datatypes.Int; import java.math.BigDecimal; @@ -68,6 +65,8 @@ * 激活状态 1-已激活 2-未激活 */ private Integer activeStatus; + //是否购买节点 0 - 否 1 - 是 + private Integer buyNode; /** * 滑点分享链 diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java index fcd2b5f..a6e2544 100644 --- a/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java @@ -4,6 +4,8 @@ @Getter public enum DataDictionaryEnum { + // 购买节点需要的金额 + BUY_NODE_AMOUNT("BUY_NODE_AMOUNT","BUY_NODE_AMOUNT"), // 每日返利的产矿百分比 REBATE_PERCENT("SYSTEM_SETTING","REBATE_PERCENT"), // 分给推荐三人的终身VIP会员手续费 diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java index beb9060..663ea28 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java @@ -6,14 +6,11 @@ import cc.mrbird.febs.dapp.entity.DappFundFlowEntity; import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity; import cc.mrbird.febs.dapp.entity.DappWalletMineEntity; -import cc.mrbird.febs.dapp.vo.ActiveNftListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.util.List; -import java.util.Map; public interface DappWalletService { @@ -45,4 +42,5 @@ DappWalletCoinEntity findByMemberId(Long memberId); + Long buyNode(BuyNodeDto buyNodeDto); } diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java index 4804921..471db20 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java @@ -1,32 +1,20 @@ package cc.mrbird.febs.dapp.service.impl; -import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils; -import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; -import cc.mrbird.febs.common.utils.FebsUtil; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; 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.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappWalletService; -import cc.mrbird.febs.dapp.utils.BoxUtil; -import cc.mrbird.febs.dapp.vo.ActiveNftListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import cc.mrbird.febs.rabbit.producer.ChainProducer; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; @@ -36,7 +24,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.*; +import java.util.List; /** * @author @@ -79,6 +67,14 @@ walletInfo.setProfit(dappFundFlowDao.selectProfitAmountByMemberId(member.getId())); walletInfo.setTfcBalance(walletMine.getAvailableAmount()); walletInfo.setSafePool(mineData.getSafePool()); + + DataDictionaryCustom buyNodeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.BUY_NODE_AMOUNT.getType(), + DataDictionaryEnum.BUY_NODE_AMOUNT.getCode() + ); + BigDecimal buyNodeAmount = new BigDecimal(StrUtil.isEmpty(buyNodeAmountDic.getValue()) ? "100" : buyNodeAmountDic.getValue()); + walletInfo.setBuyNodeAmount(buyNodeAmount); + walletInfo.setBuyNode(ObjectUtil.isEmpty(memberInfo.getBuyNode()) ? 0 : memberInfo.getBuyNode()); return walletInfo; } @@ -336,4 +332,50 @@ public DappWalletCoinEntity findByMemberId(Long memberId) { return dappWalletCoinDao.selectByMemberId(memberId); } + + @Override + public Long buyNode(BuyNodeDto transferDto) { + DappMemberEntity member = LoginUserUtil.getAppUser(); + + String upgrade = redisUtils.getString("APP_UPGRADE"); + if ("upgrade".equals(upgrade)) { + throw new FebsException("功能升级中"); + } + + member = dappMemberDao.selectById(member.getId()); + int buyNode = ObjectUtil.isEmpty(member.getBuyNode()) ? 0 : 1; + if (1 == buyNode) { + throw new FebsException("Do not repeat purchase"); + } + + if (ObjectUtil.isEmpty(transferDto.getId())) { + DappFundFlowEntity fundFlow = new DappFundFlowEntity( + member.getId(), + transferDto.getAmount().negate(), + 13, + 1, + BigDecimal.ZERO, + transferDto.getTxHash()); + dappFundFlowDao.insert(fundFlow); + return fundFlow.getId(); + } else { + DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId()); + if(ObjectUtil.isEmpty(flow)){ + return null; + } + if ("success".equals(transferDto.getFlag())) { + flow.setStatus(2); + flow.setFromHash(transferDto.getTxHash()); + dappFundFlowDao.updateById(flow); + member.setBuyNode(1); + dappMemberDao.updateById(member); + + } else { + if (flow.getStatus() == 1) { + dappFundFlowDao.deleteById(transferDto.getId()); + } + } + } + return null; + } } diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java index dabd8f6..4873a7a 100644 --- a/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java +++ b/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java @@ -37,4 +37,10 @@ @ApiModelProperty(value = "保险池") private BigDecimal safePool; + + @ApiModelProperty(value = "购买节点的金额") + private BigDecimal buyNodeAmount; + + @ApiModelProperty(value = "是否是节点 1-是 0-否") + private Integer buyNode; } -- Gitblit v1.9.1