77fc924e18c95fdb2570ddf10fb3629b10c69a01.svn-base 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.chinacreator.process.job;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.apache.log4j.Logger;
  5. import org.quartz.DisallowConcurrentExecution;
  6. import org.quartz.PersistJobDataAfterExecution;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import com.chinacreator.common.exception.BusinessException;
  9. import com.chinacreator.process.bean.ActivityConfigBean;
  10. import com.chinacreator.process.bean.OrderBean;
  11. import com.chinacreator.process.bean.ValidateLogBean;
  12. import com.chinacreator.process.dao.ActiveDao;
  13. import com.chinacreator.process.dao.ActivityConfigDao;
  14. import com.chinacreator.process.dao.CallerAreacodeDao;
  15. import com.chinacreator.process.dao.DictionaryDao;
  16. import com.chinacreator.process.util.JsonUtil;
  17. import com.chinacreator.video.queue.MessageService;
  18. import com.chinacreator.video.queue.bean.MessagePipe;
  19. @PersistJobDataAfterExecution
  20. @DisallowConcurrentExecution
  21. public class ValidateJob {
  22. private Logger log = Logger.getLogger("validatemq");
  23. @Autowired
  24. private MessageService messageService;
  25. @Autowired
  26. private CallerAreacodeDao callerAreacodeDao;
  27. @Autowired
  28. private ActiveDao activeDao;
  29. @Autowired
  30. private ActivityConfigDao activityConfigDao;
  31. @Autowired
  32. private DictionaryDao dictionaryDao;
  33. public void doProcess() throws Exception {
  34. System.out.println("接收验证队列JOB启动");
  35. if(dictionaryDao.getValue("recivemq").equals("0")){
  36. List<MessagePipe> list = messageService
  37. .reciveBatchMessage("validate", 500);
  38. for (MessagePipe messagePipe : list) {
  39. ValidateLogBean logbean = new ValidateLogBean();
  40. try{
  41. OrderBean orderBean = transBean(messagePipe.getBody());
  42. System.out.println("验证日志===================="+JsonUtil.objectToJson(logbean));
  43. logbean.setUserid(orderBean.getUserid());
  44. logbean.setCpid(orderBean.getCpid());
  45. logbean.setSpid(orderBean.getSpid());
  46. String province = callerAreacodeDao.findByCallerhead(orderBean.getUserid().substring(0, 7)).getProvince();
  47. ActivityConfigBean activityConfigBean = activityConfigDao
  48. .findByCallerhead(orderBean.getCpid(),
  49. orderBean.getSpid(),province);
  50. if (activityConfigBean == null) {
  51. throw new BusinessException("9030", "非视频风暴活动产品或者活动结束");
  52. }
  53. OrderBean oldOrderBean = activeDao.existUser(orderBean.getUserid(),
  54. orderBean.getCpid(), orderBean.getSpid());
  55. if(oldOrderBean == null){
  56. throw new BusinessException("9036", "验证扣费失败,活动表无记录");
  57. }
  58. if(oldOrderBean.getIscharge().equals("2")){
  59. throw new BusinessException("9037", "验证扣费成功,已扣费");
  60. }
  61. activeDao.updateCharge(oldOrderBean.getId());
  62. }catch (Exception e) {
  63. e.printStackTrace();
  64. logbean.setResult("8000");
  65. logbean.setErrorinfo("系统忙!");
  66. if (e instanceof BusinessException) {
  67. logbean.setErrorinfo(e.getMessage());
  68. logbean.setResult(((BusinessException) e).getCode());
  69. }
  70. } finally {
  71. log.info(JsonUtil.objectToJson(logbean));
  72. }
  73. }
  74. }else{
  75. System.out.println("停止接收队列消息");
  76. }
  77. }
  78. public OrderBean transBean(Map<String, Object> body) {
  79. String jsonStr = JsonUtil.objectToJson(body);
  80. return (OrderBean) JsonUtil.jsonToBean(jsonStr, OrderBean.class);
  81. }
  82. }