9e2cc3127b554f64c2bc50eb4cc43e6cfdce560c.svn-base 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.chinacreator.process.service;
  2. import com.chinacreator.process.bean.VipBlackBean;
  3. import com.chinacreator.process.dao.BlackDao;
  4. import com.chinacreator.process.util.DesUtil;
  5. import com.chinacreator.process.util.SHAUtil;
  6. import com.chinacreator.process.util.URLUtil;
  7. import org.apache.log4j.Logger;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Component;
  10. import java.net.URLEncoder;
  11. import java.text.SimpleDateFormat;
  12. import java.util.Date;
  13. import java.util.List;
  14. @Component
  15. public class VipBlackService {
  16. @Autowired
  17. private BlackDao blackDao;
  18. //prod
  19. private static String ORDER_CLEAN_URL="http://114.255.201.238:8090/video-activity/cacheOper?cacheName=ECBConfig&ip=all";
  20. private static String VIP_CLEAN_URL="http://114.255.201.238:8090/video-activity/cacheOper?cacheName=ECBJoinConfig&ip=all";
  21. // private static String ORDER_CLEAN_URL="http://114.255.201.228:86/video-activity/cacheOper?cacheName=ECBConfig&ip=all";
  22. // private static String VIP_CLEAN_URL="http://114.255.201.228:86/video-activity/cacheOper?cacheName=ECBJoinConfig&ip=all";
  23. private static String MSG_SEND_URL="http://111.206.133.54/smsorder/channelSmsSend.do?";
  24. private static String CHANNEL="kclyl02";
  25. private static String PWD="xhs82dks";
  26. private Logger logger = Logger.getLogger("intoBlack");
  27. public void intoBlack(String cpid,String spid,List<String> userids)throws Exception{
  28. List<VipBlackBean> orderbean=blackDao.getAllOrderCount(cpid,spid);
  29. VipBlackBean vipBlackBean;
  30. double percent=0;
  31. if(orderbean!=null && orderbean.size()>0){
  32. for(VipBlackBean vip:orderbean){
  33. logger.info("findProvince"+vip.getProvince());
  34. //根据省份产品查询套餐订购量
  35. vipBlackBean= blackDao.getOrderCountBy(cpid,spid,vip.getProvince());
  36. if(vipBlackBean!=null){
  37. percent=(Math.round(vipBlackBean.getCount()*10000/vip.getCount())/100.0);
  38. logger.info("percent"+percent);
  39. if(percent>60 && !blackDao.isOrderWhiteUser(cpid,spid,vip.getProvince(),vipBlackBean.getLimit())){
  40. logger.info("findPackage"+vipBlackBean.getLimit());
  41. int flag=0;
  42. if(!blackDao.isOrderBlackUser(cpid,spid,vip.getProvince(),vipBlackBean.getLimit())){
  43. blackDao.insertOrderBlack(vipBlackBean);
  44. flag=1;
  45. logger.info("加入订购黑名单成功");
  46. }
  47. if(!blackDao.isVipBlackUser(cpid,spid,vip.getProvince(),vipBlackBean.getLimit())){
  48. vipBlackBean.setActivetype(blackDao.getActiveType(vipBlackBean));
  49. blackDao.insertVipBlack(vipBlackBean);
  50. flag=1;
  51. logger.info("加入领取黑名单成功");
  52. }
  53. logger.info(flag);
  54. if(flag>0){
  55. //刷新缓存
  56. for(int i=0;i<3;i++){
  57. URLUtil.get(ORDER_CLEAN_URL);
  58. URLUtil.get(VIP_CLEAN_URL);
  59. }
  60. if(userids!=null && userids.size()>0) {
  61. //发送短信
  62. String content=vipBlackBean.getProvince()+"省 "+vipBlackBean.getLimit()+"套餐 腾讯20元产品最近10小时占比为"+percent+"%,已加入黑名单";
  63. logger.info(content);
  64. for (String userid : userids) {
  65. sendMsg(CHANNEL, userid, PWD, content);
  66. }
  67. }
  68. }
  69. }
  70. }else{
  71. logger.info("无超额套餐");
  72. }
  73. }
  74. }else{
  75. logger.info("无超额省份");
  76. }
  77. }
  78. public void sendMsg(String channel,String userid,String pwd,String content) {
  79. String result="";
  80. try {
  81. String timestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
  82. String sign = SHAUtil.shaEncode(channel + userid + timestamp + pwd).toLowerCase();
  83. userid = URLEncoder.encode(DesUtil.encode(userid, pwd), "utf-8");
  84. content = URLEncoder.encode(content, "utf-8");
  85. String url = MSG_SEND_URL + "userid=" + userid + "&channel=" + channel + "&timestamp=" + timestamp + "&sign=" + sign + "&content=" + content;
  86. result=URLUtil.get(url);
  87. logger.info(url+"result="+result);
  88. } catch (Exception e) {
  89. e.printStackTrace();
  90. logger.error("短信发送失败"+result);
  91. }
  92. }
  93. }