f3b7eeeb75b02021cb6d6523447b960da287a538.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. package com.chinacreator.process.job;
  2. import java.net.URLEncoder;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.apache.commons.lang.math.NumberUtils;
  9. import org.apache.commons.lang.time.DateFormatUtils;
  10. import org.apache.log4j.Logger;
  11. import org.quartz.DisallowConcurrentExecution;
  12. import org.quartz.PersistJobDataAfterExecution;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import com.chinacreator.common.util.DESUtil;
  15. import com.chinacreator.common.util.URLUtil;
  16. import com.chinacreator.process.dao.DictionaryDao;
  17. import com.chinacreator.process.util.JsonUtil;
  18. import com.chinacreator.video.queue.MessageService;
  19. import com.chinacreator.video.queue.bean.MessagePipe;
  20. @PersistJobDataAfterExecution
  21. @DisallowConcurrentExecution
  22. public class CShandleSmsJob {
  23. private Logger logger = Logger.getLogger("cssms");
  24. private Logger log = Logger.getLogger(CShandleSmsJob.class);
  25. @Autowired
  26. private DictionaryDao dictionaryDao;
  27. @Autowired
  28. private MessageService messageService;
  29. private final static String F_SMS_CONTENT ="很遗憾,由于系统错误{0},畅视业务办理失败,详情请咨询10010";
  30. private final static String T_SMS_CONTENT ="温馨提示,您申请的畅视业务正在办理中,稍后请以短信通知为准,详情请咨询10010超时时间要求:超时时间>30秒";
  31. private final static String E_SMS_CONTENT = "畅视生效提醒:您的畅视业务已生效。请完成以下步骤操作1、点开链接下载最新版畅视合作客户端http:// changshi.wo.cn/cs/xuanchuan.html 2、在合作客户端内激活畅视业务。注意:未激活客户端将无法正常免流量使用!【畅视如非自己开通,则为系统赠送,详情咨询:10010】";
  32. private final static String S_SMS_CONTENT = "温馨提示:您的畅视业务订购成功,请刷新页面查看最终订购状态。";
  33. private final static String B_SMS_CONTENT = "尊敬的用户,为感谢您对联通WO+视频定向流量产品的支持与使用,赠送您400MB省内流量包(当月有效,次月失效),本月赠送流量已经到账。WO+视频邀您畅享视频,流量无忧,详情可咨询4000600611";
  34. private final static String ECB_SMS_CONTENT = "亲爱的{0}用户,您已成功订购无限畅视业务,现可免费领取一个月爱奇艺会员,点击http://changshi.wo.cn/wx/index.html 享受省时跳广告、超清不卡顿等尊贵会员权益,数量有限,先到先得!更多精彩内容,请关注中国联通无限畅视业务!";
  35. private final static String WXCS_SMS_CONTENT = "感谢您对无限畅视业务的支持,祝您使用愉快!活动赠送的两个500M全国流量包将于48小时内到账,具体到账时间请以短信通知为准。";
  36. //private final static String TENCNETORDER_SMS_CONTENT = "温馨提示:您于{0}月{1}日订购的腾讯定向流量会员包月已办理成功,资费20元/月,自然月收费,次月自动续订。生效后请打开腾讯视频客户端进行手动激活(点击http://v.wo.cn/vipjh 了解),激活成功后在观看视频时有免流量标识即已免流量观看;订购当月务必通过 http://v.wo.cn/viphy 领取腾讯VIP会员,次月不能再领取上月会员。当月领取会员的次月续订用户会员自动续订,无需再次领取!";
  37. private final static String TENCNETORDER_SMS_CONTENT = "温馨提示:您于{0}月{1}日订购的腾讯定向流量会员包月已办理成功,资费20元/月,自然月收费,次月自动续订。生效后请打开腾讯视频客户端进行手动激活(点击 http://v.wo.cn/vipjh 了解),激活成功后在观看视频时有免流量标识即已免流量观看;订购当月务必通过 http://v.wo.cn/viphy 领取腾讯VIP会员,次月不能再领取上月会员。当月领取会员的次月续订用户会员自动续订,无需再次领取!您可在腾讯视频客户端进行退订";
  38. private final static String TENCENTCANCEL_SMS_CONTENT = "您已退订联通(腾讯)定向免流会员包";
  39. private final static String TENCENTCANCEL_FAIL_CONTENT = "尊敬的用户,因产品重叠,“WO+视频腾讯定向流量包月”退订失败,请通过10010或线下营业厅自行退订,给您带来的不便敬请谅解。";
  40. private final static String CCTVORDER_SMS_CONTENT = "温馨提示:您于{0}月{1}日订购的CCTV手机电视免流会员包月已办理成功,资费12元/月,自然月收费,次月自动续订。生效后请打开CCTV手机电视客户端进行手动激活(点击 http://v.wo.cn/fifajh 了解),激活成功后在观看视频时有免流量标识即已免流量观看;CCTV手机电视客户端会员会发放至本号码,请务必以本号码获取动态码登录CCTV手机电视客户端使用会员。祝您使用愉快!现关注“畅视互娱”公众号回复“邀请计划”,可领取福利哦!您可在CTV手机电视客户端进行退订";
  41. private final static String CCTVCANCEL_SMS_CONTENT = "您已退订中国联通CCTV手机电视定向流量会员包";
  42. private final static String AIQY_SMS_CONTENT = "您于{0}月{1}日订购的WO+视频爱奇艺定向流量产品已办理成功,资费15元/月,自然月收费,次月自动续订。同时感谢您参与送7天会员活动,请戳此链接进行领取 http://v.wo.cn/aqysms ,也可以在爱奇艺客户端领取。现关注“畅视互娱”公众号回复“邀请计划”,可领取福利哦!您可在爱奇艺客户端进行退订";
  43. private final static String TENCENTCONTINUE_FAILSMS_CONTENT = "尊敬的用户,万分抱歉的通知您,由于系统为您续订腾讯定向流量会员包月产品扣费失败,免流服务已于上月底截止,腾讯视频VIP会员有效期自会员领取日起31天失效,且本月不再续送。诚挚的邀请您继续使用本业务,请拨打10010或点链接进行重新订购 http://v.wo.cn/dx01 ";
  44. private final static String AIQY_GIVEVIP_CONTENT = "感谢参与WO+视频爱奇艺月会员领取活动,爱奇艺31天会员已赠送至此号码,通过此号码登录客户端即可使用,过期无效。";
  45. private final static String AIQY_ORDER_CONTENT = "感谢参与WO+视频爱奇艺定向流量送31天会员活动,请戳此链接进行领取 http://v.wo.cn/aqysms31 ,也可以在爱奇艺客户端领取。";
  46. private final static String AIQY_ORDER20_CONTENT="您于{0}月{1}日订购的联通免流+爱奇艺VIP月会员产品已办理成功,资费20元/月,自然月收费,次月自动续订。请戳此链接进行领取 http://v.wo.cn/aqy20sms ,也可以在爱奇艺客户端领取。您可在爱奇艺客户端进行退订";
  47. private final static String AIQY_GIVEVIP20_CONTENT="感谢您订购联通免流+爱奇艺VIP月会员产品,爱奇艺31天会员已赠送至此号码,通过此号码登录客户端即可使用,过期无效。";
  48. private final static String AIQY_CONTIMUEVIP20_CONTENT="感谢您订购联通免流+爱奇艺VIP月会员产品,这个月的爱奇艺31天会员已赠送至此号码,使用此号码登录客户端,赶快享用吧!";
  49. private final static String LESHI_ORDER_CONTENT="您于{0}月{1}日订购的联通免流+乐视VIP月会员产品已办理成功,资费12元/月,自然月收费,次月自动续订。请在乐视视频app中,点击我的-我的流量-乐视视频定向流量会员包,激活产品后领取会员。您可在乐视视频客户端进行退订";
  50. private final static String LESHI_CANCEL_CONTENT="您已退订中国联通乐视视频定向流量会员包";
  51. private final static String LESHI_CONTIMUEVIP_CONTENT="本月的乐视会员已经赠送到之前领取会员的乐视账户,感谢使用联通免流+乐视VIP月会员产品。";
  52. private final static String MGTV_ORDER_CONTENT="您于{0}月{1}日订购的联通免流+芒果VIP月会员产品已办理成功,资费16元/月,自然月收费,次月自动续订。请戳此链接进行领取会员:http://v.wo.cn/mgtv16 ,也可以在芒果TV客户端领取。您可在芒果TV客户端进行退订";
  53. private final static String MGTV_CANCEL_CONTENT="您已退订中国联通芒果TV定向流量会员包";
  54. private final static String MGTV_CONTIMUE_CONTENT="本月的芒果VIP会员已经赠送到本号码绑定的芒果TV账户,感谢使用联通免流+芒果VIP月会员产品。";
  55. private final static String KEY = "22fdse33";
  56. private final static String AIQY12_CANCEL_CONTENT ="您已退订中国联通爱奇艺定向流量包";
  57. private final static String TENCENT6_ORDER_CONTENT="您于{0}月{1}日订购的WO+视频腾讯定向流量包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在腾讯视频客户端进行退订";
  58. private final static String TENCENT6_CANCEL_CONTENT="您已退订WO+视频腾讯定向流量包月包";
  59. private final static String LESHILT952_ORDER_CONTENT="您于{0}月{1}日订购的WO+乐视视频定向流量包包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在乐视视频客户端进行退订";
  60. private final static String LESHILT952_CANCEL_CONTENT="您已退订WO+乐视视频定向流量包包月包";
  61. private final static String YOUTU21156_ORDER_CONTENT="您于{0}月{1}日订购的WO+视频优酷定向流量包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在优酷视频客户端进行退订";
  62. private final static String YOUTU21156_CANCEL_CONTENT="您已退订WO+视频优酷定向流量包月包";
  63. private final static String BILIBL979_ORDER_CONTENT="您于{0}月{1}日订购的WO+视频哔哩哔哩定向流量包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在哔哩哔哩视频客户端进行退订";
  64. private final static String BILIBL979_CANCEL_CONTENT="您已退订WO+视频哔哩哔哩定向流量包月包";
  65. private final static String MANGTV1005_ORDER_CONTENT="您于{0}月{1}日订购的WO+视频芒果TV定向流量包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在芒果TV视频客户端进行退订";
  66. private final static String MANGTV1005_CANCEL_CONTENT="您已退订WO+视频芒果TV定向流量包月包";
  67. private final static String PPTV11_ORDER_CONTENT="您于{0}月{1}日订购的WO+视频PPTV定向流量包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在PPTV视频客户端进行退订";
  68. private final static String PPTV11_CANCEL_CONTENT="您已退订WO+视频PPTV定向流量包月包";
  69. private final static String BESTV980_ORDER_CONTENT="您于{0}月{1}日订购的WO+bestv定向流量包包月产品已办理成功,资费15元/月,自然月收费,次月自动续订。如有问题,请咨询10010。您可在百事通视频客户端进行退订";
  70. private final static String BESTV980_CANCEL_CONTENT="您已退订WO+bestv定向流量包包月包";
  71. private final static String AIQY1018_CANCEL_CONTENT="您已退订爱奇艺定向流量会员包(前向)包";
  72. private final static String AIQY1017_CANCEL_CONTENT="您已退订WO+视频爱奇艺定向流量包月包";
  73. private final static String YOUTU15_GIVEVIP_CONTENT="感谢您参与订购优酷流量包送优酷7天VIP会员活动,优酷7天VIP会员已充值至订购号码,请您及时查收。活动期间订购且不退订用户,截止至2019年12月31日前每月初可获赠优酷7天VIP会员。《时间的朋友》跨年演讲,我在优酷等你。";
  74. private final static String TWOWEI10013_ORDER_CONTENT="尊敬的用户,您已开通中国联通-腾讯视频免流会员体验卡,请您通过领取时使用的手机号登录腾讯视频客户端激活使用(点击 http://v.wo.cn/vipjh 了解)。温馨提示:要在视频播放中看到免流标识,方可确认免流量使用,如未能正常显示请参见 http://v.wo.cn/vipjh 。祝您使用愉快。";
  75. private final static String TWOWEI10013_CANCEL_CONTENT="您体验的联通-腾讯视频定向免流将于本月底到期,到期后自动退订。搜索公众号“联通视频权益助手”,体验更多精彩视频服务。";
  76. private final static String TWOWEI10014_ORDER_CONTENT="尊敬的用户,您已开通中国联通-爱奇艺免流会员体验卡,请您通过领取时使用的手机号登录爱奇艺客户端激活使用(点击 http://v.wo.cn/iqiyi20 了解)。温馨提示:要在视频播放中看到免流标识,方可确认免流量使用,如未能正常显示请参见 http://v.wo.cn/iqiyi20 。祝您使用愉快。";
  77. private final static String TWOWEI10014_CANCEL_CONTENT="您体验的联通-爱奇艺视频定向免流将于本月底到期,到期后自动退订。搜索公众号“联通视频权益助手”,体验更多精彩视频服务。";
  78. public void doProcess() throws Exception {
  79. log.info("超时,生效短信job开始执行");
  80. if (dictionaryDao.getValue("recivemq").equals("0")) {
  81. List<MessagePipe> list = messageService.reciveBatchMessage("cssms", 500);
  82. if(list != null && list.size()>0){
  83. log.info("超时,生效短信需要发送:"+list.size());
  84. for (MessagePipe messagePipe : list) {
  85. String result ="";
  86. String resultcode =(String) messagePipe.getBody().get("result");
  87. String userid = (String) messagePipe.getBody().get("userid");
  88. String times = (String) messagePipe.getBody().get("times");
  89. int style = NumberUtils.toInt((String)messagePipe.getBody().get("style"));
  90. try{
  91. String content = "";
  92. switch (style) {
  93. case 0:
  94. content =F_SMS_CONTENT.replace("{0}", resultcode);
  95. break;
  96. case 1:
  97. content =T_SMS_CONTENT;
  98. break;
  99. case 2:
  100. content =E_SMS_CONTENT;
  101. break;
  102. case 3:
  103. content =S_SMS_CONTENT;
  104. break;
  105. case 4:
  106. content =B_SMS_CONTENT;
  107. break;
  108. case 5:
  109. content =ECB_SMS_CONTENT.replace("{0}", userid);
  110. break;
  111. case 6:
  112. content =WXCS_SMS_CONTENT;
  113. break;
  114. case 7:
  115. content =TENCNETORDER_SMS_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  116. break;
  117. case 8:
  118. content =TENCENTCANCEL_SMS_CONTENT;
  119. break;
  120. case 9:
  121. content =TENCENTCANCEL_FAIL_CONTENT;
  122. break;
  123. case 10:
  124. content =CCTVORDER_SMS_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  125. break;
  126. case 11:
  127. content =CCTVCANCEL_SMS_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  128. break;
  129. case 12:
  130. content =AIQY_SMS_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));;
  131. break;
  132. case 13:
  133. content =TENCENTCONTINUE_FAILSMS_CONTENT;
  134. break;
  135. case 14:
  136. content =AIQY_GIVEVIP_CONTENT;
  137. break;
  138. case 15:
  139. content =AIQY_ORDER_CONTENT;
  140. break;
  141. case 16:
  142. content =AIQY_ORDER20_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  143. break;
  144. case 17:
  145. content =AIQY_GIVEVIP20_CONTENT;
  146. break;
  147. case 18:
  148. content =AIQY_CONTIMUEVIP20_CONTENT;
  149. break;
  150. default:
  151. case 20:
  152. content =LESHI_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  153. break;
  154. case 21:
  155. content =LESHI_CANCEL_CONTENT;
  156. break;
  157. case 22:
  158. content =MGTV_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  159. break;
  160. case 23:
  161. content =MGTV_CANCEL_CONTENT ;
  162. break;
  163. case 24:
  164. content =LESHI_CONTIMUEVIP_CONTENT;
  165. break;
  166. case 25:
  167. content =MGTV_CONTIMUE_CONTENT;
  168. break;
  169. case 26:
  170. content =AIQY12_CANCEL_CONTENT;
  171. break;
  172. case 30:
  173. content =TENCENT6_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  174. break;
  175. case 31:
  176. content =LESHILT952_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  177. break;
  178. case 32:
  179. content =YOUTU21156_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  180. break;
  181. case 33:
  182. content =BILIBL979_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  183. break;
  184. case 34:
  185. content =MANGTV1005_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  186. break;
  187. case 35:
  188. content =PPTV11_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  189. break;
  190. case 36:
  191. content =BESTV980_ORDER_CONTENT.replace("{0}", DateFormatUtils.format(new Date(), "MM")).replace("{1}", DateFormatUtils.format(new Date(), "dd"));
  192. break;
  193. case 37:
  194. content =TENCENT6_CANCEL_CONTENT;
  195. break;
  196. case 38:
  197. content =LESHILT952_CANCEL_CONTENT;
  198. break;
  199. case 39:
  200. content =YOUTU21156_CANCEL_CONTENT;
  201. break;
  202. case 40:
  203. content =BILIBL979_CANCEL_CONTENT;
  204. break;
  205. case 41:
  206. content =MANGTV1005_CANCEL_CONTENT;
  207. break;
  208. case 42:
  209. content =PPTV11_CANCEL_CONTENT;
  210. break;
  211. case 43:
  212. content =BESTV980_CANCEL_CONTENT;
  213. break;
  214. case 45:
  215. content =AIQY1018_CANCEL_CONTENT;
  216. break;
  217. case 44:
  218. content =AIQY1017_CANCEL_CONTENT;
  219. break;
  220. case 50:
  221. content =YOUTU15_GIVEVIP_CONTENT;
  222. break;
  223. case 51:
  224. content =TWOWEI10013_ORDER_CONTENT;
  225. break;
  226. case 52:
  227. content =TWOWEI10013_CANCEL_CONTENT;
  228. break;
  229. case 53:
  230. content =TWOWEI10014_ORDER_CONTENT;
  231. break;
  232. case 54:
  233. content =TWOWEI10014_CANCEL_CONTENT;
  234. break;
  235. }
  236. if(StringUtils.isNotEmpty(content)){
  237. result = URLUtil.get("http://10.199.99.147:8092/videoif/channelSmsSend.do?userid="+URLEncoder.encode(DESUtil.encode(userid, KEY),"utf-8")+"&content="+URLEncoder.encode(content,"UTF-8")+"&channel=cssms", 2000);
  238. }
  239. }catch(Exception e){
  240. log.error(userid+"短信发送失败",e);
  241. }finally {
  242. Map<String,String> map = new HashMap<String, String>();
  243. map.put("userid", userid);
  244. map.put("style", style+"");
  245. map.put("result", result);
  246. map.put("times", times);
  247. logger.info(JsonUtil.objectToJson(map));
  248. }
  249. }
  250. }
  251. }
  252. }
  253. public static void main(String[] args) throws Exception {
  254. String url = "http://114.255.201.238:8092/videoif/channelSmsSend.do?userid="+URLEncoder.encode(DESUtil.encode("18574414678", KEY),"utf-8")+"&content="+URLEncoder.encode(F_SMS_CONTENT,"utf-8")+"&channel=cssms";
  255. System.out.println(url);
  256. System.out.println(URLUtil.get(url, 3000));
  257. }
  258. }