xiaoyong931011
2023-05-31 ee787fe1df157b30f20b3b994126d98e06cce377
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
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());
            }
        }
    }
 
    @Scheduled(cron = "0/30 * * * * ? ")
    public void ABTransferAgain() {
        DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashTwoLimitOne(1,2);
        if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
            Integer isReturn = dappFundFlowEntity.getIsReturn();
            if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
                chainProducer.sendAntKLineABMsg(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);
//    }
    @Scheduled(cron = "0 0 * * * ?")
    public void aKlineJobHour() {
        /**
         * A币全网每小时自动燃烧0.1%,燃烧按递减燃烧,按个人每小时0.1%每小时递减。
         *
         * A币技术做到资产钱包燃烧,闪兑钱包也要燃烧0.1%每小时
         */
        dappSystemService.aCoinFire();
        /**
         * A币内网要做K线图,K线效果做到与交易所效果接近。
         * 小时
         */
        dappSystemService.aKlineJobHour();
    }
    /**
     * A币内网要做K线图,K线效果做到与交易所效果接近。
     * 日
     */
    @Scheduled(cron = "0 0 0 * * ?")
    public void aKlineJobDay() {
        dappSystemService.aKlineJobDay();
    }
 
 
}