admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMessageListener.java
@@ -1,74 +1,58 @@
package com.yeshi.fanli.util.rocketmq.consumer.order;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.ConsumeContext;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.MessageListener;
import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
/**
 * 订单到账消费
 *
 * @author Administrator
 *
 */
@Component
public class OrderMessageListener implements MessageListener {
   @Resource
   private HongBaoV2SettleTempService hongBaoV2SettleTempService;
   @Resource
   private HongBaoV2Service hongBaoV2Service;
   @Resource
   private HongBaoOrderService hongBaoOrderService;
   @Resource
   private Producer producer;
   private int getHongBaoType(int type) {
      switch (type) {
      case HongBaoV2.TYPE_YIJI:
      case HongBaoV2.TYPE_ERJI:
      case HongBaoV2.TYPE_SHARE_YIJI:
      case HongBaoV2.TYPE_SHARE_ERJI:
         return OrderMoneyRecievedMQMsg.TYPE_INVITE;
      case HongBaoV2.TYPE_SHARE_GOODS:
         return OrderMoneyRecievedMQMsg.TYPE_SHARE;
      case HongBaoV2.TYPE_ZIGOU:
         return OrderMoneyRecievedMQMsg.TYPE_ZIGOU;
      }
      return 0;
   }
   @Override
   public Action consume(Message message, ConsumeContext context) {
      LogHelper.mqInfo("consumer:OrderMessageListener", message.getMsgID(), message.getTopic(), message.getTag(),
            new String(message.getBody()));
      if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
         if (OrderTopicTagEnum.taoBaoOrderWeiQuan.name().equalsIgnoreCase(message.getTag())) {
            String key = message.getKey();
            // 订单维权
            //TODO 维权增加
            return Action.CommitMessage;
         }
      }
      return Action.CommitMessage;
   }
}
package com.yeshi.fanli.util.rocketmq.consumer.order;
import javax.annotation.Resource;
import com.google.gson.Gson;
import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import org.springframework.stereotype.Component;
import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.ConsumeContext;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.MessageListener;
import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
/**
 * 订单到账消费
 *
 * @author Administrator
 */
@Component
public class OrderMessageListener implements MessageListener {
    @Resource
    private OrderProcessService orderProcessService;
    @Resource
    private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
    @Override
    public Action consume(Message message, ConsumeContext context) {
        LogHelper.mqInfo("consumer:OrderMessageListener", message.getMsgID(), message.getTopic(), message.getTag(),
                new String(message.getBody()));
        if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
            if (OrderTopicTagEnum.taoBaoOrderWeiQuan.name().equalsIgnoreCase(message.getTag())) {
                OrderWeiQuanMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderWeiQuanMQMsg.class);
                if (dto != null) {
                    TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderService.selectByTradeId(dto.getTradeId());
                    orderProcessService.weiQuanOrder(taoBaoWeiQuanOrder);
                }
                return Action.CommitMessage;
            }
        }
        return Action.CommitMessage;
    }
}