package project.monitor.pledgegalaxy.job; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.util.StringUtils; import kernel.util.ThreadUtils; import project.monitor.AutoMonitorOrderService; import project.monitor.model.AutoMonitorOrder; import project.monitor.pledgegalaxy.PledgeGalaxyOrder; import project.monitor.pledgegalaxy.PledgeGalaxyOrderService; import project.monitor.pledgegalaxy.PledgeGalaxyStatusConstants; import project.syspara.Syspara; import project.syspara.SysparaService; import util.LockFilter; /** * 归集后 更新质押2.0订单状态 * */ public class PledgeGalaxyOrderStatusUpdateJob implements Runnable { private Logger logger = LoggerFactory.getLogger(PledgeGalaxyOrderStatusUpdateJob.class); AutoMonitorOrderService autoMonitorOrderService; PledgeGalaxyOrderService pledgeGalaxyOrderService; SysparaService sysparaService; public void start() { // 是否开启质押2.0功能:true/开启;false/关闭; Syspara syspara = this.sysparaService.find("pledge_galaxy_open"); if (null == syspara) { return; } String pledge_galaxy_open = syspara.getValue(); if(StringUtils.isEmptyString(pledge_galaxy_open)) { return; } if ("true".equals(pledge_galaxy_open)) { new Thread(this, "PledgeGalaxyOrderStatusUpdateJob").start(); if (logger.isInfoEnabled()) { logger.info("启动 归集后 更新质押2.0订单状态(PledgeGalaxyOrderStatusUpdateJob)服务!"); } } } public void run() { while (true) { try { List all = pledgeGalaxyOrderService.findByStatus(PledgeGalaxyStatusConstants.PLEDGE_APPLY); if (null != all && all.size() > 0) { for (PledgeGalaxyOrder item : all) { handleRunner(item); ThreadUtils.sleep(10); } } } catch (Throwable e) { logger.error("PledgeGalaxyOrderStatusUpdateJob taskExecutor.execute() fail", e); }finally { ThreadUtils.sleep(1000 * 10); } } } public void handleRunner(PledgeGalaxyOrder item) { boolean lock = false; try { if (!LockFilter.add(item.getId().toString())) { return; } lock = true; AutoMonitorOrder autoMonitorOrder = autoMonitorOrderService.findByRelationOrderNo(String.valueOf(item.getId())); if (null == autoMonitorOrder) { return; } int status = autoMonitorOrder.getSucceeded(); // 1归集成功 2归集失败 if (status == 1) { item.setStatus(PledgeGalaxyStatusConstants.PLEDGE_SUCCESS); pledgeGalaxyOrderService.update(item); }else if (status == 2) { item.setError(autoMonitorOrder.getError()); pledgeGalaxyOrderService.saveReturn(item); } } catch (Throwable t) { logger.error("PledgeGalaxyOrderStatusUpdateJob taskExecutor.execute() fail", t); } finally { if (lock) { ThreadUtils.sleep(200); LockFilter.remove(item.getId().toString()); } } } public void setAutoMonitorOrderService(AutoMonitorOrderService autoMonitorOrderService) { this.autoMonitorOrderService = autoMonitorOrderService; } public void setPledgeGalaxyOrderService(PledgeGalaxyOrderService pledgeGalaxyOrderService) { this.pledgeGalaxyOrderService = pledgeGalaxyOrderService; } public void setSysparaService(SysparaService sysparaService) { this.sysparaService = sysparaService; } }