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 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 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; } }