From dd5b15229cb15459fa7c31ccea77dac28cbfafbd Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 13 四月 2020 10:04:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java |   76 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 1 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java
index 5149fe4..f0b0837 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java
@@ -1,11 +1,30 @@
 package com.yeshi.fanli.util.rocketmq.consumer.order;
 
+import java.util.Date;
+
+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.google.gson.Gson;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg;
+import com.yeshi.fanli.exception.order.CommonOrderException;
+import com.yeshi.fanli.exception.order.InviteOrderSubsidyException;
+import com.yeshi.fanli.exception.order.OrderTeamRewardException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.mq.MQUnSendInfoService;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
+import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
+import com.yeshi.fanli.service.manger.order.TeamSubsidyManager;
+import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 /**
  * 閭�璇疯鍗曡ˉ璐存秷鎭秷璐�
@@ -15,6 +34,26 @@
  */
 @Component
 public class InviteOrderSubsidyMessageListener implements MessageListener {
+	@Resource
+	private TeamSubsidyManager teamSubsidyManager;
+
+	@Resource
+	private UserSystemCouponRecordService userSystemCouponRecordService;
+
+	@Resource(name = "producer")
+	private Producer producer;
+
+	@Resource
+	private MQUnSendInfoService mqUnSendInfoService;
+
+	@Resource
+	private OrderMoneySettleService orderMoneySettleService;
+
+	@Resource
+	private CommonOrderService commonOrderService;
+
+	// 鍥㈤槦濂栧姳寮�濮嬫椂闂�
+	private static final long TEAM_REWARD_START_TIME = TimeUtil.convertToTimeTemp("2019-04-15", "yyyy-MM-dd");
 
 	public InviteOrderSubsidyMessageListener() {
 
@@ -22,8 +61,43 @@
 
 	@Override
 	public Action consume(Message message, ConsumeContext context) {
-		if (message.getTag().startsWith("")) {
+		LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getMsgID(), message.getTopic(),
+				message.getTag(), new String(message.getBody()));
+		String tag = message.getTag();
 
+		if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
+			if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())
+					|| tag.equalsIgnoreCase(OrderTopicTagEnum.orderUpdate.name())) {
+				// 鏌ヨ涓婄骇绾㈠寘
+				OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class);
+				if (dto != null) {
+					// 鏌ヨ鍑鸿鍗曞垱寤烘椂闂�
+					Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType());
+					if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
+						try {
+							teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType());
+							return Action.CommitMessage;
+						} catch (InviteOrderSubsidyException e) {
+							e.printStackTrace();
+							LogHelper.errorDetailInfo(e, new Gson().toJson(dto), "");
+						} catch (OrderTeamRewardException e) {
+							e.printStackTrace();
+							LogHelper.errorDetailInfo(e, new Gson().toJson(dto), "");
+						} catch (CommonOrderException e) {
+							e.printStackTrace();
+							LogHelper.errorDetailInfo(e, new Gson().toJson(dto), "");
+						}
+						return Action.ReconsumeLater;
+					} else {
+						try {
+							teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType());
+						} catch (Exception e) {
+							LogHelper.errorDetailInfo(e, new Gson().toJson(dto), "");
+							return Action.ReconsumeLater;
+						}
+					}
+				}
+			}
 		}
 		return Action.CommitMessage;
 	}

--
Gitblit v1.8.0