OrderDownConsumer.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.fdkankan.ucenter.mq.consumer;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.rabbitmq.util.RabbitMqProducer;
  4. import com.fdkankan.ucenter.entity.DownloadOrder;
  5. import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
  6. import com.fdkankan.ucenter.pay.strategy.impl.DownloadOrderImpl;
  7. import com.fdkankan.ucenter.pay.strategy.impl.EntityOrderImpl;
  8. import com.fdkankan.ucenter.pay.strategy.impl.IncrementOrderImpl;
  9. import com.fdkankan.ucenter.service.IIncrementOrderService;
  10. import com.rabbitmq.client.Channel;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.lang.StringEscapeUtils;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.amqp.core.ExchangeTypes;
  15. import org.springframework.amqp.core.Message;
  16. import org.springframework.amqp.rabbit.annotation.Exchange;
  17. import org.springframework.amqp.rabbit.annotation.Queue;
  18. import org.springframework.amqp.rabbit.annotation.QueueBinding;
  19. import org.springframework.amqp.rabbit.annotation.RabbitListener;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.beans.factory.annotation.Value;
  22. import org.springframework.stereotype.Component;
  23. import sun.rmi.runtime.Log;
  24. import java.nio.charset.StandardCharsets;
  25. @Slf4j
  26. @Component
  27. public class OrderDownConsumer {
  28. @Autowired
  29. RabbitMqProducer rabbitMqProducer;
  30. @Autowired
  31. IncrementOrderImpl incrementOrder;
  32. @Autowired
  33. DownloadOrderImpl downloadOrder;
  34. @Autowired
  35. EntityOrderImpl entityOrder;
  36. @RabbitListener(
  37. queuesToDeclare = @Queue("${queue.orderPay.order-payResult:order-payResult}")
  38. )
  39. public void consumerQueue(Channel channel, Message message) {
  40. try {
  41. String messageId = message.getMessageProperties().getMessageId();
  42. String msg = new String(message.getBody(), StandardCharsets.UTF_8);
  43. log.info("接受下单结果mq--messageId:{},msg:{}",messageId,msg);
  44. channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
  45. msg = StringEscapeUtils.unescapeJava(msg);
  46. PayOrderVo order = JSONObject.parseObject(msg, PayOrderVo.class);
  47. if(order == null){
  48. return;
  49. }
  50. //更新订单状态
  51. Integer payType = 3;
  52. //付款方式,0表示微信,1表示支付宝,2表示paypal,3表示其他
  53. switch (order.getPayType()){
  54. case 0 : case 1: case 2: payType = 0;break;
  55. case 3 : case 4: payType = 1;break;
  56. case 5 : payType = 2;break;
  57. }
  58. if("incrementOrder".equals(order.getOrderType())){
  59. incrementOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
  60. }
  61. if("downOrder".equals(order.getOrderType())){
  62. downloadOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
  63. }
  64. if("partOrder".equals(order.getOrderType())){
  65. entityOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
  66. }
  67. }catch (Exception e){
  68. }
  69. }
  70. }