745407d9616deaecdd1920a69f6e725d3bd13fc7.svn-base 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5. package com.chinacreator.process.job;
  6. import com.chinacreator.process.bean.ContinueBean;
  7. import com.chinacreator.process.bean.ContinueLogBean;
  8. import com.chinacreator.process.dao.ContinueOrderDao;
  9. import com.chinacreator.process.dao.DictionaryDao;
  10. import com.chinacreator.process.util.JsonUtil;
  11. import com.chinacreator.process.util.SpringUtils;
  12. import com.chinacreator.process.util.URLUtil;
  13. import org.apache.log4j.Logger;
  14. import org.quartz.DisallowConcurrentExecution;
  15. import org.quartz.PersistJobDataAfterExecution;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import java.sql.SQLException;
  18. import java.util.Iterator;
  19. import java.util.List;
  20. import java.util.Map;
  21. import java.util.concurrent.*;
  22. import java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy;
  23. @PersistJobDataAfterExecution
  24. @DisallowConcurrentExecution
  25. public class ContinueOrder {
  26. private static Logger log = Logger.getLogger(ContinueOrder.class);
  27. private static Logger logger = Logger.getLogger("continueOrder");
  28. @Autowired
  29. private ContinueOrderDao continueOrderDao;
  30. public ContinueOrder() {
  31. }
  32. public void doProcess() throws Exception {
  33. logger.info("========》续送活动计费开始");
  34. List<ContinueBean> list = this.continueOrderDao.queryNeedOrderDo();
  35. if (list != null && list.size() > 0) {
  36. logger.info("获取数据条数:"+list.size());
  37. CountDownLatch threadSignal = new CountDownLatch(list.size());
  38. ExecutorService executorService = new ThreadPoolExecutor(12, 16, 10L, TimeUnit.MINUTES, new LinkedBlockingQueue(), new CallerRunsPolicy());
  39. Iterator var5 = list.iterator();
  40. while(var5.hasNext()) {
  41. ContinueBean continueBean = (ContinueBean)var5.next();
  42. ContinueOrderService continueService = new ContinueOrderService(list.size(), threadSignal, continueBean);
  43. executorService.execute(continueService);
  44. }
  45. executorService.shutdown();
  46. try {
  47. executorService.awaitTermination(1L, TimeUnit.DAYS);
  48. } catch (InterruptedException var7) {
  49. var7.printStackTrace();
  50. }
  51. }
  52. }
  53. }
  54. class ContinueOrderService implements Runnable {
  55. private static Logger logger = Logger.getLogger("continueOrder");
  56. //private static Logger log = Logger.getLogger(ContinueOrderService.class);
  57. private int totalSize;
  58. private CountDownLatch threadSignal;
  59. private ContinueBean continueBean;
  60. // private static final String url = "http://10.199.99.144:8090/video-activity/continueOrder?";
  61. public ContinueOrderService(int totalSize, CountDownLatch threadSignal, ContinueBean continueBean) {
  62. this.totalSize = totalSize;
  63. this.threadSignal = threadSignal;
  64. this.continueBean = continueBean;
  65. }
  66. @Override
  67. public void run() {
  68. ContinueLogBean logBean = new ContinueLogBean();
  69. logBean.setUserid(this.continueBean.getUserid());
  70. long startime = System.currentTimeMillis();
  71. //续订接口地址
  72. String continueOrderUrl = "";
  73. try {
  74. DictionaryDao dictionaryDao = (DictionaryDao)SpringUtils.getBean(DictionaryDao.class);
  75. continueOrderUrl = dictionaryDao.getValue("continueOrderUrl");
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. logger.error("查字典表获取接口地址出现异常," + e.getMessage());
  79. continueOrderUrl = "http://172.16.1.81:809/video-activity/continueOrder?";
  80. }
  81. String href = continueOrderUrl+"userid=" + this.continueBean.getUserid() + "&cpid=" + this.continueBean.getCpid() + "&spid=" + this.continueBean.getSpid() + "&activityType=" + this.continueBean.getActivityType();
  82. logBean.setReq(href);
  83. String result = "1";
  84. String errorinfo = "";
  85. try {
  86. result = URLUtil.get(href, 15000);
  87. logBean.setRsp(result);
  88. Map<?, ?> map = JsonUtil.jsonToMap(result);
  89. result = (String)map.get("resultcode");
  90. if (!result.equals("0")) {
  91. errorinfo = (String)map.get("errorinfo");
  92. }
  93. logBean.setTimes(String.valueOf(System.currentTimeMillis() - startime));
  94. } catch (Exception e) {
  95. result = "2";
  96. e.printStackTrace();
  97. logger.error(this.continueBean.getUserid()+"调续订接口出现异常,"+e.getMessage());
  98. } finally {
  99. this.threadSignal.countDown();
  100. logger.info("续送[" + this.continueBean.getUserid() + "," + this.continueBean.getCpid() + "]:结果=" + result + "[" + this.totalSize + "/" + ((long)this.totalSize - this.threadSignal.getCount()) + "],花费时间:" + (System.currentTimeMillis() - startime) + "/ms");
  101. logger.info(JsonUtil.objectToJson(logBean));
  102. try {
  103. ContinueOrderDao continueOrderDao = (ContinueOrderDao)SpringUtils.getBean(ContinueOrderDao.class);
  104. continueOrderDao.saveResult(this.continueBean.getUserid(), result, errorinfo, this.continueBean.getCpid(), this.continueBean.getSpid());
  105. } catch (Exception e) {
  106. e.printStackTrace();
  107. logger.error(this.continueBean.getUserid()+"更新续订状态出现异常,"+e.getMessage());
  108. }
  109. }
  110. }
  111. }