OrderDownConsumer.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. import java.util.Arrays;
  26. @Slf4j
  27. @Component
  28. public class OrderDownConsumer {
  29. @Autowired
  30. IncrementOrderImpl incrementOrder;
  31. @Autowired
  32. DownloadOrderImpl downloadOrder;
  33. @Autowired
  34. EntityOrderImpl entityOrder;
  35. @RabbitListener(
  36. queuesToDeclare = @Queue("${queue.orderPay.order-payResult:order-payResult}")
  37. )
  38. public void consumerQueue(Channel channel, Message message) {
  39. try {
  40. String messageId = message.getMessageProperties().getMessageId();
  41. String msg = new String(message.getBody(), StandardCharsets.UTF_8);
  42. log.info("接受下单结果mq--messageId:{},msg:{}",messageId,msg);
  43. channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
  44. msg = msg.substring(1, msg.length() - 1);
  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. log.error("order-payResult----消费失败",e);
  69. }finally {
  70. }
  71. }
  72. }