c747f04cd2ef5acdfff7a1da14a36b8164234bc3.svn-base 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package com.chinacreator.process.job;
  2. import com.chinacreator.process.bean.NetOrderBean;
  3. import com.chinacreator.process.bean.OrderLog;
  4. import com.chinacreator.process.bean.TencentVacOrderBean;
  5. import com.chinacreator.process.dao.CycleDao;
  6. import com.chinacreator.process.dao.NetOrderDao;
  7. import com.chinacreator.process.dao.VacOrderDao;
  8. import com.chinacreator.process.util.CapUtil;
  9. import com.chinacreator.process.util.CycleUtil;
  10. import com.chinacreator.process.util.JsonUtil;
  11. import org.apache.log4j.Logger;
  12. import org.quartz.DisallowConcurrentExecution;
  13. import org.quartz.PersistJobDataAfterExecution;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import java.sql.SQLException;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. @PersistJobDataAfterExecution
  20. @DisallowConcurrentExecution
  21. public class TencentVacActivityJob {
  22. private static Logger log = Logger.getLogger(TencentVacActivityJob.class);
  23. private static Logger logger = Logger.getLogger("tencentVacActivityJob");
  24. @Autowired
  25. private VacOrderDao vacOrderDao;
  26. @Autowired
  27. private NetOrderDao netOrderDao;
  28. @Autowired
  29. private CycleDao cycleDao;
  30. public void doProcess() throws Exception {
  31. log.info("========》腾讯20元0元扣费job启动");
  32. List<TencentVacOrderBean> list = vacOrderDao.query();
  33. if(list != null && list.size()>0){
  34. for (TencentVacOrderBean tencentVacOrderBean : list) {
  35. Map<String,String> logMap = new HashMap<String, String>();
  36. logMap.put("userid", tencentVacOrderBean.getUserid());
  37. String result ="8000";
  38. try{
  39. if(tencentVacOrderBean.getCpid().equals("tencent") && tencentVacOrderBean.getSpid().equals("84")){
  40. logMap.put("spcode", "88226");
  41. logMap.put("vacproductid", "8000652500");
  42. logMap.put("type", tencentVacOrderBean.getStatus().equals("0") ? "1" : "2");
  43. //result = VacUtil.vac(tencentVacOrderBean.getUserid(), "88226", "8000652500", tencentVacOrderBean.getStatus().equals("0") ? "1" : "2");
  44. result =cap(tencentVacOrderBean, "88226", "8000652500", tencentVacOrderBean.getStatus());
  45. // 判断号码是否在迁移表里面
  46. // 是:调包周期退订接口
  47. // 否:结束
  48. boolean flag = cycleDao.qryIsExist(tencentVacOrderBean.getUserid(),tencentVacOrderBean.getCpid(),tencentVacOrderBean.getSpid());
  49. if(flag){
  50. //去cap退包周期腾讯20元按次产品
  51. String cyclelog = CycleUtil.cycleCancel(tencentVacOrderBean.getUserid(),"8000990000",tencentVacOrderBean.getCpid(),tencentVacOrderBean.getSpid());
  52. logger.info("包周期退订结果返回==》"+cyclelog);
  53. }
  54. }else if(tencentVacOrderBean.getCpid().equals("cctv") && tencentVacOrderBean.getSpid().equals("10081")){
  55. logMap.put("spcode", "88226");
  56. logMap.put("vacproductid", "8000652800");
  57. logMap.put("type", tencentVacOrderBean.getStatus().equals("0") ? "1" : "2");
  58. //result =VacUtil.vac(tencentVacOrderBean.getUserid(), "88226", "8000652800", tencentVacOrderBean.getStatus().equals("0") ? "1" : "2");
  59. result =cap(tencentVacOrderBean, "88226", "8000652800", tencentVacOrderBean.getStatus());
  60. }
  61. if(tencentVacOrderBean.getStatus().equals("0")){
  62. if ("1200".equals(result)) {
  63. result = "0";
  64. }
  65. }else{
  66. if ("1201".equals(result)) {
  67. result = "0";
  68. }
  69. }
  70. logMap.put("result", result);
  71. if(result.equals("0")){
  72. vacOrderDao.update(tencentVacOrderBean.getId(), (Integer.valueOf(tencentVacOrderBean.getVaccount())+1)+"", "0");
  73. }else{
  74. vacOrderDao.update(tencentVacOrderBean.getId(), (Integer.valueOf(tencentVacOrderBean.getVaccount())+1)+"", "1");
  75. }
  76. }catch(Exception e){
  77. log.error("",e);
  78. logMap.put("result", "8000");
  79. }finally {
  80. NetOrderBean orderInfo = new NetOrderBean();
  81. orderInfo.setUserid(tencentVacOrderBean.getUserid());
  82. orderInfo.setCpid(tencentVacOrderBean.getCpid());
  83. orderInfo.setSpid(tencentVacOrderBean.getSpid());
  84. if(tencentVacOrderBean.getStatus().equals("0")){
  85. orderInfo.setOrderchannel(tencentVacOrderBean.getChannel());
  86. }else{
  87. orderInfo.setCancelchannel(tencentVacOrderBean.getChannel());
  88. }
  89. saveNetLog(orderInfo,result,"",tencentVacOrderBean.getStatus());
  90. logger.info(JsonUtil.objectToJson(logMap));
  91. }
  92. }
  93. }
  94. }
  95. public void saveNetLog(NetOrderBean orderInfo, String errorcode, String errorinfo, String ordertype)
  96. throws SQLException {
  97. OrderLog orderLog = new OrderLog();
  98. orderLog.setApptype("");
  99. orderLog.setOrderstatus(ordertype.equals("0") ? 3:5);
  100. orderLog.setStatus(Integer.valueOf(ordertype).intValue());
  101. orderLog.setCpid(orderInfo.getCpid());
  102. orderLog.setIsexperience(orderInfo.getIsexperience());
  103. orderLog.setOrdertype("vac");
  104. orderLog.setProvince("");
  105. orderLog.setArea("");
  106. orderLog.setSpid(orderInfo.getSpid());
  107. orderLog.setUserid(orderInfo.getUserid());
  108. orderLog.setErrorcode(errorcode);
  109. orderLog.setErrorinfo(errorcode.equals("0") ? "受理成功(预受理0元)":"受理失败(预受理0元)");
  110. if(ordertype.equals("0")){
  111. orderLog.setChannel(orderInfo.getOrderchannel());
  112. }else{
  113. orderLog.setChannel(orderInfo.getCancelchannel());
  114. }
  115. this.netOrderDao.addOrderLog(orderLog);
  116. }
  117. public TencentVacOrderBean transBean(Map<String, Object> body) {
  118. String jsonStr = JsonUtil.objectToJson(body);
  119. return (TencentVacOrderBean) JsonUtil.jsonToBean(jsonStr, TencentVacOrderBean.class);
  120. }
  121. /**
  122. * cap
  123. * @param netOrderBean
  124. * @return
  125. * @throws Exception
  126. */
  127. public String cap(TencentVacOrderBean netOrderBean,String spCode,String productid,String type) throws Exception{
  128. String result = "-1";
  129. String errorinfo = "cap退订失败";
  130. String resJson = CapUtil.cap(netOrderBean.getCpid(),netOrderBean.getSpid(),netOrderBean.getUserid(), spCode, productid, type,
  131. "", "", "", "");
  132. logger.info("调AP返回结果:"+resJson);
  133. if (resJson != null) {
  134. Map<?,?> map = JsonUtil.jsonToMap(resJson);
  135. result = map.get("resultcode") != null ? map.get("resultcode").toString() : "-1";
  136. errorinfo = map.get("errorinfo") != null ? map.get("errorinfo").toString() : "cap退订失败";
  137. }
  138. /**
  139. 业务返回编码
  140. 0000 处理成功
  141. 0007 订单同步失败
  142. 0009 参数异常
  143. 0008 非4G用户,鉴权失败
  144. 0001 订购鉴权失败/退订鉴权失败
  145. 0004 话单缓存失败
  146. 0003 查询用户归属省编码失败
  147. 0002 cbss产品订购异常
  148. 0006 cbss产品退订异常
  149. */
  150. /* if (!result.equals("0")) {
  151. if(result.equals("-1")){
  152. throw new BusinessException(result, "cap"+("0".equals(type)?"订购":"退订")+"失败:接口调用失败,服务暂不可用", new String[0]);
  153. }else{
  154. //errorinfo = handelErrorinfo(result,errorinfo);
  155. throw new BusinessException(result, "cap"+("0".equals(type)?"订购":"退订")+"失败:"+errorinfo, new String[0]);
  156. }
  157. }*/
  158. return result;
  159. }
  160. }