peternameyakj
2025-01-06 4c82733d79b03ee1d5304398b0598d826e6fd0e9
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
package project.miner.job;
 
import java.util.Date;
import java.util.List;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
 
import kernel.util.ThreadUtils;
import kernel.web.Page;
import project.data.DataService;
import project.log.SysLog;
import project.log.SysLogService;
import project.miner.model.MinerOrder;
import project.syspara.SysparaService;
 
public class MinerOrderProfitJob {
    
    private static final Logger logger = LoggerFactory.getLogger(MinerOrderProfitJob.class);
    
    protected MinerOrderProfitService minerOrderProfitService;
    protected SysparaService sysparaService;
    protected DataService dataService;
    protected SysLogService sysLogService;
 
    public void taskJob() {
 
        try {
            for(int i = 0; i < 2;i++) {
                int pageNo = 1;
                int pageSize = 300;
                minerOrderProfitService.cacheRecomProfitClear();
                String miner_bonus_parameters = sysparaService.find("miner_bonus_parameters").getValue();
                while (true) {
                    Page page = minerOrderProfitService.pagedQueryComputeOrder(pageNo, pageSize);
                    List<MinerOrder> minerOrders = page.getElements();
                    if (CollectionUtils.isEmpty(minerOrders)) {
                        break;
                    }
                    try {
                        this.minerOrderProfitService.saveComputeOrderProfit(minerOrders, miner_bonus_parameters);
                    } catch (Throwable e) {
                        logger.error("error:", e);
                    }
                    logger.info("miner profit finished ,count:" + minerOrders.size());
                    pageNo++;
                }
                // 用户收益计算完,计算推荐人收益
                minerOrderProfitService.saveRecomProfit();
                
                //处理完后等待10秒
                ThreadUtils.sleep(20000);
            }
        } catch (Throwable e) {
            logger.error("miner profit run fail", e);
        }
 
    }
 
    public void handleData(Date systemTime) {
        try {
            int pageNo = 1;
            int pageSize = 300;
            minerOrderProfitService.cacheRecomProfitClear();
            String miner_bonus_parameters = sysparaService.find("miner_bonus_parameters").getValue();
            while (true) {
                Page page = minerOrderProfitService.pagedQueryComputeOrder(pageNo, pageSize);
                List<MinerOrder> minerOrders = page.getElements();
                if (CollectionUtils.isEmpty(minerOrders)) {// 分页没数据时表示已经计算结束
                    break;
                }
                try {
                    this.minerOrderProfitService.saveComputeOrderProfit(minerOrders, miner_bonus_parameters, systemTime);
                } catch (Throwable e) {
                    logger.error("error:", e);
                }
                logger.info("miner profit finished ,count:" + minerOrders.size());
                pageNo++;
            }
            // 用户收益计算完,计算推荐人收益
            minerOrderProfitService.saveRecomProfit(systemTime);
        } catch (Throwable e) {
            logger.error("MinerOrderProfitJob run fail e:", e);
            SysLog entity = new SysLog();
            entity.setLevel(SysLog.level_error);
            entity.setCreateTime(new Date());
            entity.setLog("MinerOrderProfitJob 矿机任务 执行失败  e:"+e);
            sysLogService.saveAsyn(entity);
        }
    }
    
    public void setMinerOrderProfitService(MinerOrderProfitService minerOrderProfitService) {
        this.minerOrderProfitService = minerOrderProfitService;
    }
 
    public void setSysparaService(SysparaService sysparaService) {
        this.sysparaService = sysparaService;
    }
 
    public void setDataService(DataService dataService) {
        this.dataService = dataService;
    }
 
    public void setSysLogService(SysLogService sysLogService) {
        this.sysLogService = sysLogService;
    }
 
}