From 8986d6d479bf56432ebb8e18bfa0f344d028eee6 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 12 Jun 2024 18:06:11 +0800
Subject: [PATCH] 星级买入
---
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java | 146 +++++++++-----------
src/main/resources/mapper/dapp/DbMemberNodeMapper.xml | 14 -
src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java | 2
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 135 +++++++++++++++++++
src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java | 2
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 6
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 53 +++++++
src/main/java/cc/mrbird/febs/dapp/dto/BuyStarDto.java | 27 +++
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java | 3
src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java | 3
src/main/java/cc/mrbird/febs/dapp/mapper/DbMemberNodeMapper.java | 2
11 files changed, 295 insertions(+), 98 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 dd80763..3d5e86e 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -56,6 +56,12 @@
return new FebsResponse().success().data(dappWalletService.buyNode(buyNodeDto));
}
+ @ApiOperation(value = "购买星团", notes = "购买星团")
+ @PostMapping(value = "/buyStar")
+ public FebsResponse buyStar(@RequestBody BuyStarDto buyStarDto) {
+ return new FebsResponse().success().data(dappWalletService.buyStar(buyStarDto));
+ }
+
@ApiOperation(value = "转账", notes = "转账")
@PostMapping(value = "/transfer")
public FebsResponse transfer(@RequestBody TransferDto transferDto) {
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/BuyStarDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/BuyStarDto.java
new file mode 100644
index 0000000..89df78c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/BuyStarDto.java
@@ -0,0 +1,27 @@
+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 = "BuyStarDto", description = "连接参数接收类")
+public class BuyStarDto {
+
+ @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;
+
+ @ApiModelProperty(value = "星团类型")
+ private Integer nodeType;
+}
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 8a7cfd8..c2f4829 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
@@ -51,6 +51,9 @@
* 13-节点买入
* 14-节点返利
* 15-见点奖
+ * 16-复投
+ * 17-收益
+ * 18-买入
*/
private Integer type;
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 54aa5a5..5d94683 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 {
+ //直邀人数
+ INVITE_NUM("INVITE_NUM","INVITE_NUM"),
// 奖励百分比
PERK_PERCENT("PERK_PERCENT","PERK_PERCENT"),
PERK_NUM("PERK_NUM","PERK_NUM"),
diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java
index cc91e8c..410fcd4 100644
--- a/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java
+++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java
@@ -7,6 +7,9 @@
public enum NodeType {
/**
* 节点类型 投注金额 投注奖励
+ * 30
+ * 30*1.4
+ * 30*1.4*1.4
*/
NODE_13(13,"566.9","793.66"),
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DbMemberNodeMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DbMemberNodeMapper.java
index d3baafa..8ad9903 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DbMemberNodeMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DbMemberNodeMapper.java
@@ -6,6 +6,6 @@
public interface DbMemberNodeMapper extends BaseMapper<DbMemberNode> {
- DbMemberNode selectOneByWorkStateAndLeftNodeNullOrRightNodeNull(@Param("workState")int stateOne);
+ DbMemberNode selectOneByWorkStateAndLeftNodeNullOrRightNodeNull(@Param("workState")int stateOne,@Param("type")int type);
}
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 663ea28..f2e0a25 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
@@ -43,4 +43,6 @@
DappWalletCoinEntity findByMemberId(Long memberId);
Long buyNode(BuyNodeDto buyNodeDto);
+
+ Long buyStar(BuyStarDto buyStarDto);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index 2cbb49f..a63588c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -169,8 +169,13 @@
return;
}
BigDecimal amount = dappFundFlowEntity.getAmount();
+ //存放买入新团的类型
+ String toHash = dappFundFlowEntity.getToHash();
//根据金额判断属于属于购买的哪一个节点
- NodeType nodeType = NodeType.NODE_1.getNodeByAmount(amount);
+ NodeType nodeType = NodeType.NODE_1.getNode(Integer.parseInt(toHash));
+ if(ObjectUtil.isEmpty(nodeType)){
+ return;
+ }
/**
* 获取一条最老的左右节点未满的记录
* 然后生成一条新的记录
@@ -182,7 +187,7 @@
*
*/
//获取一条最老的左右节点未满且生效中的记录
- DbMemberNode dbMemberNodeOld = dbMemberNodeMapper.selectOneByWorkStateAndLeftNodeNullOrRightNodeNull(DbMemberNode.STATE_ONE);
+ DbMemberNode dbMemberNodeOld = dbMemberNodeMapper.selectOneByWorkStateAndLeftNodeNullOrRightNodeNull(DbMemberNode.STATE_ONE,nodeType.getNodeType());
if(ObjectUtil.isEmpty(dbMemberNodeOld)){
//生成ROOT节点
DbMemberNode root = new DbMemberNode();
@@ -224,6 +229,10 @@
if(ObjectUtil.isEmpty(dbMemberNodeRoot)){
return;
}
+ //每个星团,只复投10轮
+ if(10 < dbMemberNodeRoot.getCountFund()){
+ return;
+ }
//有,则上级节点出局复投,轮数加1,复投逻辑
memberNodeNext(dbMemberNodeRoot);
}else{//父节点为左节点,那么没人出局
@@ -241,6 +250,124 @@
*/
public void memberNodeNext(DbMemberNode dbMemberNodeRoot) {
log.info("进入复投");
+ DataDictionaryCustom inviteNumDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.INVITE_NUM.getType(),
+ DataDictionaryEnum.INVITE_NUM.getCode()
+ );
+ int inviteNum = Integer.parseInt(inviteNumDic.getValue());
+
+ Long memberId = dbMemberNodeRoot.getMemberId();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ //必须要有两个直推才能复投,或者获取收益,否则,直接返回
+ QueryWrapper<DappMemberEntity> inviteQuery = new QueryWrapper<>();
+ inviteQuery.eq("referer_id",dappMemberEntity.getInviteId());
+ List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectList(inviteQuery);
+ if(CollUtil.isEmpty(dappMemberEntities)){
+ return;
+ }
+ if(inviteNum > dappMemberEntities.size()){
+ return;
+ }
+ Integer countFund = dbMemberNodeRoot.getCountFund();
+ Integer type = dbMemberNodeRoot.getType();
+ //如果是13星局,则直接复投产生收益
+ if(NodeType.NODE_13.getNodeType() == type){
+ //复投
+ futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
+ //产生收益
+ BigDecimal perkAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4"));
+ perkSevenTeen(memberId,perkAmount,countFund);
+ return;
+ }
+ //如果是1到12星团
+ if(type >=NodeType.NODE_1.getNodeType() && type <= NodeType.NODE_12.getNodeType()){
+ //需要复投本轮,
+ //如果是第一轮,当下一个星团没有投入时,收益复投下一个新团
+ //如果是第一轮,下一个新团有投入,则产生收益
+ //复投或者收益的金额
+ BigDecimal nodeAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4"));
+ if(1 == countFund){//第一轮
+ //复投本轮,轮数 +1
+ futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
+ //收益复投(当前的下一个星团没有已投入),还是收益提出
+ Integer nextType = type + 1;
+ QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>();
+ nodeQueryWrapper.eq("member_id",memberId);
+ nodeQueryWrapper.eq("type", nextType);
+ nodeQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE);
+ DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(nodeQueryWrapper);
+ if(ObjectUtil.isEmpty(dbMemberNode)){
+ futouSixTeen(memberId,nodeAmount,nextType,1);
+ }else{
+ perkSevenTeen(memberId,nodeAmount,countFund);
+ }
+ }else if(countFund <= 9 && countFund >= 2){//2-9轮
+ //复投本轮,轮数 +1
+ futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
+ perkSevenTeen(memberId,nodeAmount,countFund);
+ }else{//10轮,收益本金都返回
+ BigDecimal add = dbMemberNodeRoot.getAmount().add(nodeAmount);
+ perkSevenTeen(memberId,add,countFund);
+
+ dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
+ dbMemberNodeMapper.updateById(dbMemberNodeRoot);
+ }
+ }
+ }
+ /**
+ * 产生收益
+ * @param memberId 会员ID
+ * @param amount 收益金额
+ * @param countFund 轮数
+ */
+ public void perkSevenTeen(Long memberId,BigDecimal amount,Integer countFund){
+ //收益流水
+ DappFundFlowEntity fundFlow = new DappFundFlowEntity(
+ memberId,
+ amount,
+ 17,
+ 2,
+ BigDecimal.ZERO,
+ countFund.toString());
+ dappFundFlowDao.insert(fundFlow);
+ //更新用户的金额
+ dappWalletService.updateWalletCoinWithLock(amount, memberId, 1);
+ }
+
+ /**
+ * 复投本轮
+ * 插入流水,产生记录
+ * @param memberId 会员ID
+ * @param amount 复投金额
+ * @param type 星团类型
+ * @param countFund 轮数
+ */
+ public void futouSixTeen(Long memberId,BigDecimal amount,Integer type,Integer countFund){
+ //复投流水
+ DappFundFlowEntity fundFlow = new DappFundFlowEntity(
+ memberId,
+ amount,
+ 16,
+ 2,
+ BigDecimal.ZERO,
+ null);
+ dappFundFlowDao.insert(fundFlow);
+ DbMemberNode dbMemberNodeOld = dbMemberNodeMapper.selectOneByWorkStateAndLeftNodeNullOrRightNodeNull(DbMemberNode.STATE_ONE,type);
+
+ //复投
+ DbMemberNode dbMemberNode = new DbMemberNode();
+ dbMemberNode.setMemberId(memberId);
+ dbMemberNode.setFundId(fundFlow.getId());
+ dbMemberNode.setAmount(amount);
+ dbMemberNode.setType(type);
+ dbMemberNode.setCountFund(countFund);
+ dbMemberNode.setPerkState(1);
+ if(ObjectUtil.isNotEmpty(dbMemberNodeOld)){
+ dbMemberNode.setLeftRight(ObjectUtil.isEmpty(dbMemberNodeOld.getLeftNode()) ? 1 : 2);
+ dbMemberNode.setParentNode(dbMemberNodeOld.getId());
+ }
+ dbMemberNode.setWorkState(1);
+ dbMemberNodeMapper.insert(dbMemberNode);
}
@@ -493,6 +620,10 @@
//奖励总份数
BigDecimal totalPerkNum = BigDecimal.ZERO;
for(DappMemberEntity dappMemberEntity : dappMemberEntities){
+ //如果账号未激活,则无法领取收益
+ if(1 != dappMemberEntity.getActiveStatus()){
+ continue;
+ }
BigDecimal buyNode = new BigDecimal(dappMemberEntity.getBuyNode());
totalPerkNum = totalPerkNum.add(buyNode);
if(perKNum.compareTo(totalPerkNum) < 0){
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 df7aa05..8a19784 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
@@ -13,8 +13,10 @@
import cc.mrbird.febs.dapp.service.DappWalletService;
import cc.mrbird.febs.dapp.vo.WalletInfoVo;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@@ -47,6 +49,7 @@
private final ChainProducer chainProducer;
private final DappSystemDao dappSystemDao;
+ private final DbMemberNodeMapper dbMemberNodeMapper;
@Override
public WalletInfoVo walletInfo() {
@@ -391,4 +394,54 @@
}
return null;
}
+
+ @Override
+ public Long buyStar(BuyStarDto buyStarDto) {
+ DappMemberEntity member = LoginUserUtil.getAppUser();
+
+ String upgrade = redisUtils.getString("APP_UPGRADE");
+ if ("upgrade".equals(upgrade)) {
+ throw new FebsException("功能升级中");
+ }
+
+ /**
+ * 买入先验证当前星团是否已经买入
+ */
+ Integer nodeType = buyStarDto.getNodeType();
+ QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>();
+ nodeQueryWrapper.eq("member_id",member.getId());
+ nodeQueryWrapper.eq("type", nodeType);
+ nodeQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE);
+ List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(nodeQueryWrapper);
+ if(CollUtil.isNotEmpty(dbMemberNodes)){
+ throw new FebsException("已购买");
+ }
+
+ if (ObjectUtil.isEmpty(buyStarDto.getId())) {//第一次
+ DappFundFlowEntity fundFlow = new DappFundFlowEntity(
+ member.getId(),
+ buyStarDto.getAmount().negate(),
+ 18,
+ 1,
+ BigDecimal.ZERO,
+ buyStarDto.getTxHash());
+ dappFundFlowDao.insert(fundFlow);
+ return fundFlow.getId();
+ } else {//第二次
+ DappFundFlowEntity flow = dappFundFlowDao.selectById(buyStarDto.getId());
+ if(ObjectUtil.isEmpty(flow)){
+ return null;
+ }
+ if ("success".equals(buyStarDto.getFlag())) {
+ flow.setFromHash(buyStarDto.getTxHash());
+ flow.setToHash(buyStarDto.getNodeType().toString());
+ dappFundFlowDao.updateById(flow);
+ } else {
+ if (flow.getStatus() == 1) {
+ dappFundFlowDao.deleteById(buyStarDto.getId());
+ }
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
index f4774f5..750f64e 100644
--- a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
+++ b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
@@ -1,95 +1,77 @@
package cc.mrbird.febs.job;
-import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
-import cc.mrbird.febs.dapp.entity.DappMemberEntity;
-import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
-import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
-import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
-import cc.mrbird.febs.dapp.mapper.DappMemberDao;
-import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
-import cc.mrbird.febs.dapp.service.DappWalletService;
-import cc.mrbird.febs.tree.TreeConstants;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.List;
@Slf4j
@Component
@ConditionalOnProperty(prefix = "system", name = "quartz-job", havingValue = "true")
public class ProfitDailyJob {
- @Autowired
- private DappMemberDao dappMemberDao;
- @Autowired
- private DappFundFlowDao dappFundFlowDao;
- @Autowired
- private DataDictionaryCustomMapper dataDictionaryCustomMapper;
- @Autowired
- private DappWalletService dappWalletService;
-
- @Scheduled(cron = "0 0 0 * * ?")
- public void profitDailyJob() {
- log.info("每日产矿任务执行");
- DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode());
- if (symbolPriceDic == null) {
- log.info("未设置币种价格");
- return;
- }
-
- DataDictionaryCustom rebateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.REBATE_PERCENT.getType(), DataDictionaryEnum.REBATE_PERCENT.getCode());
- if (rebateDic == null) {
- log.info("未设置每日产矿比例");
- return;
- }
-
- BigDecimal symbolPrice = new BigDecimal(symbolPriceDic.getValue());
- BigDecimal rebateRatio = new BigDecimal(rebateDic.getValue());
-
- QueryWrapper<DappMemberEntity> query = new QueryWrapper<>();
- query.eq("active_status", 1);
- List<DappMemberEntity> members = dappMemberDao.selectList(query);
- if (CollUtil.isEmpty(members)) {
- return;
- }
-
- members.forEach(item -> {
- QueryWrapper<DappFundFlowEntity> fundFlowQuery = new QueryWrapper<>();
- fundFlowQuery.eq("member_id", item.getId());
- fundFlowQuery.eq("type", 11);
- List<DappFundFlowEntity> flows = dappFundFlowDao.selectList(fundFlowQuery);
-
- BigDecimal sum = BigDecimal.ZERO;
- if (CollUtil.isNotEmpty(flows)) {
- double symbolSum = flows.stream().mapToDouble(flow -> flow.getAmount().doubleValue()).sum();
- sum = symbolPrice.multiply(new BigDecimal(symbolSum));
- }
-
- if (CollUtil.isEmpty(flows) || TreeConstants.PUT_IN_AMOUNT.compareTo(sum) > 0) {
- BigDecimal profitU = TreeConstants.PUT_IN_AMOUNT.multiply(rebateRatio.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN));
-
- BigDecimal remain = TreeConstants.PUT_IN_AMOUNT.subtract(sum);
- if (remain.compareTo(profitU) < 0) {
- profitU = remain;
- }
-
- BigDecimal profitSymbol = profitU.divide(symbolPrice, 8, RoundingMode.HALF_DOWN);
-
- dappWalletService.updateWalletMineWithLock(profitSymbol, item.getId(), 1);
- DappFundFlowEntity fundFlow = new DappFundFlowEntity(item.getId(), profitSymbol, 11, 2, null, null);
- dappFundFlowDao.insert(fundFlow);
- }
- });
-
-
- }
+// @Autowired
+// private DappMemberDao dappMemberDao;
+// @Autowired
+// private DappFundFlowDao dappFundFlowDao;
+// @Autowired
+// private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+// @Autowired
+// private DappWalletService dappWalletService;
+//
+// @Scheduled(cron = "0 0 0 * * ?")
+// public void profitDailyJob() {
+// log.info("每日产矿任务执行");
+// DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode());
+// if (symbolPriceDic == null) {
+// log.info("未设置币种价格");
+// return;
+// }
+//
+// DataDictionaryCustom rebateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.REBATE_PERCENT.getType(), DataDictionaryEnum.REBATE_PERCENT.getCode());
+// if (rebateDic == null) {
+// log.info("未设置每日产矿比例");
+// return;
+// }
+//
+// BigDecimal symbolPrice = new BigDecimal(symbolPriceDic.getValue());
+// BigDecimal rebateRatio = new BigDecimal(rebateDic.getValue());
+//
+// QueryWrapper<DappMemberEntity> query = new QueryWrapper<>();
+// query.eq("active_status", 1);
+// List<DappMemberEntity> members = dappMemberDao.selectList(query);
+// if (CollUtil.isEmpty(members)) {
+// return;
+// }
+//
+// members.forEach(item -> {
+// QueryWrapper<DappFundFlowEntity> fundFlowQuery = new QueryWrapper<>();
+// fundFlowQuery.eq("member_id", item.getId());
+// fundFlowQuery.eq("type", 11);
+// List<DappFundFlowEntity> flows = dappFundFlowDao.selectList(fundFlowQuery);
+//
+// BigDecimal sum = BigDecimal.ZERO;
+// if (CollUtil.isNotEmpty(flows)) {
+// double symbolSum = flows.stream().mapToDouble(flow -> flow.getAmount().doubleValue()).sum();
+// sum = symbolPrice.multiply(new BigDecimal(symbolSum));
+// }
+//
+// if (CollUtil.isEmpty(flows) || TreeConstants.PUT_IN_AMOUNT.compareTo(sum) > 0) {
+// BigDecimal profitU = TreeConstants.PUT_IN_AMOUNT.multiply(rebateRatio.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN));
+//
+// BigDecimal remain = TreeConstants.PUT_IN_AMOUNT.subtract(sum);
+// if (remain.compareTo(profitU) < 0) {
+// profitU = remain;
+// }
+//
+// BigDecimal profitSymbol = profitU.divide(symbolPrice, 8, RoundingMode.HALF_DOWN);
+//
+// dappWalletService.updateWalletMineWithLock(profitSymbol, item.getId(), 1);
+// DappFundFlowEntity fundFlow = new DappFundFlowEntity(item.getId(), profitSymbol, 11, 2, null, null);
+// dappFundFlowDao.insert(fundFlow);
+// }
+// });
+//
+//
+// }
}
diff --git a/src/main/resources/mapper/dapp/DbMemberNodeMapper.xml b/src/main/resources/mapper/dapp/DbMemberNodeMapper.xml
index 76bac63..c2df97d 100644
--- a/src/main/resources/mapper/dapp/DbMemberNodeMapper.xml
+++ b/src/main/resources/mapper/dapp/DbMemberNodeMapper.xml
@@ -8,23 +8,11 @@
from
db_member_node
where work_state = #{workState}
+ and type = #{type}
and (left_node is null or right_node is null)
ORDER BY create_time ASC
limit 1
</select>
- <update id="updateDicValueByTypeAndCode">
- update data_dictionary_custom
- set value=#{value}
- <where>
- 1=1
- <if test="code != null and code != ''">
- and code = #{code}
- </if>
- <if test="type != null and type != ''">
- and type = #{type}
- </if>
- </where>
- </update>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1