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