package cc.mrbird.febs.job;
|
|
import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
|
import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
|
import cc.mrbird.febs.dapp.enumerate.FundFlowEnum;
|
import cc.mrbird.febs.dapp.enumerate.MemberLevelEnum;
|
import cc.mrbird.febs.dapp.enumerate.NodeCodeEnum;
|
import cc.mrbird.febs.dapp.enumerate.PoolEnum;
|
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
|
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
|
import cc.mrbird.febs.dapp.service.DappSystemService;
|
import cc.mrbird.febs.rabbit.producer.ChainProducer;
|
import cn.hutool.core.util.ObjectUtil;
|
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;
|
|
@Slf4j
|
@Component
|
@ConditionalOnProperty(prefix = "system", name = "online-transfer", havingValue = "true")
|
public class BnbTransferJob{
|
/**
|
* 搜索还未发生转账操作,但是记录已经更新没有产生HASH值的流水记录,并发起转账操作
|
*/
|
@Autowired
|
private DappFundFlowDao dappFundFlowDao;
|
@Autowired
|
private ChainProducer chainProducer;
|
@Autowired
|
private DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
@Autowired
|
private DappSystemService dappSystemService;
|
|
@Scheduled(cron = "0/30 * * * * ? ")
|
public void BnbTransferAgain() {
|
DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2);
|
if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
|
Integer isReturn = dappFundFlowEntity.getIsReturn();
|
if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
|
chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
|
}
|
}
|
}
|
|
/**
|
* 20%所有人平分的底池
|
*/
|
// @Scheduled(cron = "0 0 1 * * ?")
|
// public void memberPool() {
|
// DataDictionaryCustom nodeThreePoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.POOL_ALL_MEMBER_A_CNT.getType(),
|
// PoolEnum.POOL_ALL_MEMBER_A_CNT.getCode()
|
// );
|
// BigDecimal nodeThreePoolDicCnt = new BigDecimal(nodeThreePoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeThreePoolDicCnt) >= 0){
|
// return;
|
// }
|
// BigDecimal nodeThreePoolDicCntReal = dappSystemService.nodePoolPerk(nodeThreePoolDicCnt, MemberLevelEnum.MEMBER.getType(), FundFlowEnum.POOL_MEMBER_A_CNT.getCode());
|
// BigDecimal nodeThreePoolDicCntAva = nodeThreePoolDicCnt.subtract(nodeThreePoolDicCntReal);
|
// nodeThreePoolDic.setValue(nodeThreePoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeThreePoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeThreePoolDic);
|
// }
|
/**
|
* NODE_5_POOL
|
* NODE_4_POOL
|
* NODE_3_POOL
|
* 节点底池的每日分配
|
*/
|
// @Scheduled(cron = "0 0 1 * * ?")
|
// public void NodeThreePool() {
|
// DataDictionaryCustom nodeThreePoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.NODE_3_POOL.getType(),
|
// PoolEnum.NODE_3_POOL.getCode()
|
// );
|
// BigDecimal nodeThreePoolDicCnt = new BigDecimal(nodeThreePoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeThreePoolDicCnt) >= 0){
|
// return;
|
// }
|
// BigDecimal nodeThreePoolDicCntReal = dappSystemService.nodePoolPerk(nodeThreePoolDicCnt, MemberLevelEnum.NODE_3.getType(), FundFlowEnum.DAO_3_NODE_PERK.getCode());
|
// BigDecimal nodeThreePoolDicCntAva = nodeThreePoolDicCnt.subtract(nodeThreePoolDicCntReal);
|
// nodeThreePoolDic.setValue(nodeThreePoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeThreePoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeThreePoolDic);
|
// }
|
|
/**
|
* 节点四的每日分配
|
*/
|
@Scheduled(cron = "0 0 1 * * ?")
|
// public void NodeFourFivePool() {
|
// DataDictionaryCustom nodeFourPoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.NODE_4_POOL.getType(),
|
// PoolEnum.NODE_4_POOL.getCode()
|
// );
|
// BigDecimal nodeFourPoolDicCnt = new BigDecimal(nodeFourPoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeFourPoolDicCnt) >= 0){
|
// return;
|
// }
|
// BigDecimal nodeFourPoolDicCntReal = dappSystemService.nodePoolPerk(nodeFourPoolDicCnt, MemberLevelEnum.NODE_4.getType(), FundFlowEnum.DAO_4_NODE_PERK.getCode());
|
// BigDecimal nodeFourPoolDicCntAva = nodeFourPoolDicCnt.subtract(nodeFourPoolDicCntReal);
|
// nodeFourPoolDic.setValue(nodeFourPoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeFourPoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeFourPoolDic);
|
// }
|
|
/**
|
* 节点五的每日分配
|
*/
|
@Scheduled(cron = "0 0 1 * * ?")
|
// public void NodeFivePool() {
|
// DataDictionaryCustom nodeFivePoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.NODE_5_POOL.getType(),
|
// PoolEnum.NODE_5_POOL.getCode()
|
// );
|
// BigDecimal nodeFivePoolDicCnt = new BigDecimal(nodeFivePoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeFivePoolDicCnt) >= 0){
|
// return;
|
// }
|
// BigDecimal nodeFivePoolDicCntReal = dappSystemService.nodePoolPerk(nodeFivePoolDicCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_PERK.getCode());
|
// BigDecimal nodeFivePoolDicCntAva = nodeFivePoolDicCnt.subtract(nodeFivePoolDicCntReal);
|
// nodeFivePoolDic.setValue(nodeFivePoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeFivePoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeFivePoolDic);
|
// }
|
|
/**
|
* 节点五的平级奖励每日分配
|
*/
|
@Scheduled(cron = "0 0 1 * * ?")
|
// public void NodeFiveEqualsPool() {
|
// DataDictionaryCustom nodeFivePoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.NODE_5_EQUALS_POOL.getType(),
|
// PoolEnum.NODE_5_EQUALS_POOL.getCode()
|
// );
|
// BigDecimal nodeFivePoolDicCnt = new BigDecimal(nodeFivePoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeFivePoolDicCnt) >= 0){
|
// return;
|
// }
|
// BigDecimal nodeFivePoolDicCntReal = dappSystemService.nodePoolEqualsPerk(nodeFivePoolDicCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode());
|
// BigDecimal nodeFivePoolDicCntAva = nodeFivePoolDicCnt.subtract(nodeFivePoolDicCntReal);
|
// nodeFivePoolDic.setValue(nodeFivePoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeFivePoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeFivePoolDic);
|
// }
|
|
/**
|
* 超级节点奖励每日分配
|
*/
|
@Scheduled(cron = "0 0 1 * * ?")
|
// public void NodeAPercentPool() {
|
// DataDictionaryCustom nodeFivePoolDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
// PoolEnum.NODE_A_PERCENT_POOL.getType(),
|
// PoolEnum.NODE_A_PERCENT_POOL.getCode()
|
// );
|
// BigDecimal nodeFivePoolDicCnt = new BigDecimal(nodeFivePoolDic.getValue());
|
// if(BigDecimal.ZERO.compareTo(nodeFivePoolDicCnt) >= 0){
|
// return;
|
// }
|
// /**
|
// * todo 超级节点的分红
|
// */
|
// BigDecimal nodeFivePoolDicCntReal = dappSystemService.superNodePoolPerk(nodeFivePoolDicCnt, NodeCodeEnum.SUPER_NODE.getCode(), FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode());
|
// BigDecimal nodeFivePoolDicCntAva = nodeFivePoolDicCnt.subtract(nodeFivePoolDicCntReal);
|
// nodeFivePoolDic.setValue(nodeFivePoolDicCntAva.compareTo(BigDecimal.ZERO) > 0 ? nodeFivePoolDicCntAva.toString() : "0");
|
// dataDictionaryCustomMapper.updateById(nodeFivePoolDic);
|
// }
|
|
/**
|
* A币全网每小时自动燃烧0.1%,燃烧按递减燃烧,按个人每小时0.1%每小时递减。
|
*
|
* A币技术做到资产钱包燃烧,闪兑钱包也要燃烧0.1%每小时
|
*/
|
@Scheduled(cron = "0 0 * * * ?")
|
public void aCoinFire() {
|
dappSystemService.aCoinFire();
|
}
|
|
/**
|
* A币内网要做K线图,K线效果做到与交易所效果接近。
|
* 小时
|
*/
|
@Scheduled(cron = "0 0 * * * ?")
|
public void aKlineJobHour() {
|
dappSystemService.aKlineJobHour();
|
}
|
/**
|
* A币内网要做K线图,K线效果做到与交易所效果接近。
|
* 日
|
*/
|
@Scheduled(cron = "0 0 0 * * ?")
|
public void aKlineJobDay() {
|
dappSystemService.aKlineJobDay();
|
}
|
|
|
}
|