60f735313188ad4aa8aba7f66ff7d6f52865dffe.svn-base 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.chinacreator.videoalliance.order.service;
  2. import java.sql.SQLException;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import com.chinacreator.common.exception.BusinessException;
  7. import com.chinacreator.common.util.URLUtil;
  8. import com.chinacreator.videoalliance.common.bean.AreaInfo;
  9. import com.chinacreator.videoalliance.common.dao.DictionaryDao;
  10. import com.chinacreator.videoalliance.common.util.AreaUtil;
  11. import com.chinacreator.videoalliance.order.bean.SPInfo;
  12. import com.chinacreator.videoalliance.order.bean.VacOrderLog;
  13. import com.chinacreator.videoalliance.order.dao.OrderLogDao;
  14. import com.chinacreator.videoalliance.order.dao.SPDao;
  15. import com.chinacreator.videoalliance.order.util.JsonUtil;
  16. import com.chinacreator.videoalliance.order.util.VacUtil;
  17. import org.apache.commons.lang.StringUtils;
  18. import org.apache.log4j.Logger;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Component;
  21. @Component
  22. public class VacOrderService
  23. {
  24. private static Logger log = Logger.getLogger(VacOrderService.class);
  25. @Autowired
  26. private SPDao spDao;
  27. @Autowired
  28. private OrderLogDao orderLogDao;
  29. @Autowired
  30. private DictionaryDao dictionaryDao;
  31. public String order(String userid, String spid)
  32. throws Exception
  33. {
  34. return order(userid,spid,null,null);
  35. }
  36. public String order(String userid, String spid, String sequence,String channel)
  37. throws Exception
  38. {
  39. SPInfo spInfo = getSPInfo(spid);
  40. String result = "0";
  41. String type = "1";
  42. //System.out.println("++++++++++++++++++HASLOCAL:"+spInfo.getVacproductid()+","+spInfo.getHaslocal());
  43. if(spInfo == null || (StringUtils.isEmpty(spInfo.getVacproductid()) && !"0".equals(spInfo.getHaslocal()))){
  44. throw new BusinessException("7003", "产品配置错误");
  45. }
  46. if (!"0".equals(spInfo.getHaslocal()) && spInfo.getFeetype() == 1) {
  47. result = VacUtil.vac(userid, spInfo.getSpcode(), spInfo.getVacproductid(), type, sequence);
  48. }
  49. try
  50. {
  51. saveLog(userid, spInfo, type, result,sequence);
  52. } catch (Exception e) {
  53. e.printStackTrace();
  54. }
  55. if ("1200".equals(result)) {
  56. result = "0";
  57. }
  58. if ((!result.equals("0")) && (spInfo.getErrorhandle() != 0)) {
  59. if(!"cardbus".equals(channel)){
  60. insertPushTw(userid,spInfo.getCpid(),spid);
  61. }
  62. if("8005".equals(result)){
  63. throw new BusinessException(result, "订购失败:VAC参数验证失败", new String[0]);
  64. }
  65. throw new BusinessException(result, "订购失败", new String[0]);
  66. }
  67. return result;
  68. }
  69. private SPInfo getSPInfo(String spid) throws Exception {
  70. return this.spDao.findById(spid);
  71. }
  72. public String cancelOrder(String userid, String spid)
  73. throws Exception
  74. {
  75. SPInfo spInfo = getSPInfo(spid);
  76. String result = "0";
  77. if ((spInfo != null) && (StringUtils.isNotEmpty(spInfo.getVacproductid())) && (spInfo.getFeetype() == 1)) {
  78. result = VacUtil.vac(userid, spInfo.getSpcode(), spInfo.getVacproductid(), "2");
  79. }
  80. try
  81. {
  82. saveLog(userid, spInfo, "2", result,null);
  83. } catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. if ("1201".equals(result)) {
  87. result = "0";
  88. }
  89. if (!result.equals("0")) {
  90. if("8005".equals(result)){
  91. throw new BusinessException(result, "退订失败:VAC参数验证失败", new String[0]);
  92. }
  93. throw new BusinessException(result, "退订失败", new String[0]);
  94. }
  95. return result;
  96. }
  97. /**
  98. * VAC订购失败推送拓维后向订购
  99. * @param userid
  100. * @param cpid
  101. * @param spid
  102. */
  103. public void insertPushTw(String userid,String cpid,String spid){
  104. try {
  105. Map<String, String> map = new HashMap<String, String>();
  106. map.put("userid",userid);
  107. map.put("kcSpid",spid);
  108. map.put("kcCpid",cpid);
  109. map.put("type", "twhx");
  110. String mqReciveUrl = dictionaryDao.getValue("mqReciveUrl");
  111. URLUtil.post(mqReciveUrl, JsonUtil.objectToJson(map));
  112. } catch (Exception e) {
  113. e.printStackTrace();
  114. }
  115. }
  116. private void saveLog(String userid, SPInfo spInfo, String type, String result,String sequence) throws Exception {
  117. VacOrderLog vacOrderLog = new VacOrderLog();
  118. AreaInfo areaInfo = AreaUtil.getAreaInfoByUserid(userid);
  119. if (areaInfo != null) {
  120. vacOrderLog.setProvince(areaInfo.getProvince());
  121. }
  122. vacOrderLog.setUserid(userid);
  123. vacOrderLog.setCpid(spInfo.getCpid());
  124. vacOrderLog.setProductid(spInfo.getVacproductid());
  125. vacOrderLog.setResultcode(result);
  126. vacOrderLog.setSpcode(spInfo.getSpcode());
  127. vacOrderLog.setType(type);
  128. vacOrderLog.setSequence(sequence);
  129. this.orderLogDao.addVacOrderLog(vacOrderLog);
  130. }
  131. public static void main(String[] args)
  132. {
  133. System.out.println("--123-");
  134. }
  135. }