From 148af6b2f57be264c84d0991237fbd7ddea491a4 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 04 十一月 2019 09:55:55 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java |   84 ++++++++++++++++++++++-------------------
 1 files changed, 45 insertions(+), 39 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 55610dc..ff15bbf 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
@@ -13,9 +13,12 @@
 import com.aliyun.openservices.ons.api.Producer;
 import com.aliyun.openservices.ons.api.SendResult;
 import com.google.gson.Gson;
-import com.yeshi.fanli.dto.order.OrderMQMsgDTO;
-import com.yeshi.fanli.dto.order.OrderMoneyRecievedMQMsgDTO;
-import com.yeshi.fanli.dto.user.coupon.UserSystemCouponUseMQMsgDTO;
+import com.yeshi.fanli.dto.mq.BaseMQMsgBody;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg;
+import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
+import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
+import com.yeshi.fanli.dto.mq.user.body.UserSystemCouponUseMQMsg;
 import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
 import com.yeshi.fanli.entity.mq.MQUnSendInfo;
 import com.yeshi.fanli.entity.system.SystemCoupon;
@@ -60,35 +63,37 @@
 	@Override
 	public Action consume(Message message, ConsumeContext context) {
 
-		// if (!Constant.IS_TASK) {// 闈炰换鍔℃湇鍔″櫒涓嶈兘娑堣垂娑堟伅
-		// return Action.ReconsumeLater;
-		// }
+		BaseMQMsgBody baseBody = new Gson().fromJson(new String(message.getBody()), BaseMQMsgBody.class);
+		if (baseBody.isTest() != Constant.IS_TEST)
+			return Action.ReconsumeLater;
 		LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getTopic(), message.getTag(),
 				new String(message.getBody()));
+		String tag = message.getTag();
 
 		if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
-			// 鏌ヨ涓婄骇绾㈠寘
-			OrderMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsgDTO.class);
-			if (dto != null) {
-				try {
-					inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType());
-				} catch (InviteOrderSubsidyException e) {
-					return Action.ReconsumeLater;
-				}
-			}
-		} else if (MQTopicName.TOPIC_FANLI.name().equalsIgnoreCase(message.getTopic())) {
-			if (message.getTag().equalsIgnoreCase("actual")) {
-				OrderMoneyRecievedMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()),
-						OrderMoneyRecievedMQMsgDTO.class);
+			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) {
-					if (dto.getType() == OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU) {// 鑷喘鍒拌处
+					try {
+						inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType());
+					} catch (InviteOrderSubsidyException e) {
+						return Action.ReconsumeLater;
+					}
+				}
+			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) {
+				OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()),
+						OrderMoneyRecievedMQMsg.class);
+				if (dto != null) {
+					if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 鑷喘鍒拌处
 						// 鍒ゆ柇璁㈠崟鍙锋槸鍚﹀湪琛ヨ创涓�
 						long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(),
 								dto.getSourceType());
 						if (count > 0) {// 寤舵椂娑堟伅鍙戦��
 							sendOrderSubsidyUpdateLater(dto, 5);
 						}
-					} else if (dto.getType() == OrderMoneyRecievedMQMsgDTO.TYPE_INVITE) {// 閭�璇峰埌璐�
+					} else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_INVITE) {// 閭�璇峰埌璐�
 						// 琛ヨ创鍒拌处
 						try {
 							orderMoneySettleService.inviteSubsidySettle(dto.getUid(), message.getKey());
@@ -98,11 +103,11 @@
 						}
 					}
 				}
-			} else if (message.getTag().equalsIgnoreCase("delay")) {
-				OrderMoneyRecievedMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()),
-						OrderMoneyRecievedMQMsgDTO.class);
+			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiDelay.name())) {
+				OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()),
+						OrderMoneyRecievedMQMsg.class);
 				if (dto != null) {
-					if (dto.getType() == OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU) {// 寤舵椂鏃堕棿宸插埌
+					if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 寤舵椂鏃堕棿宸插埌
 						// 鍒ゆ柇璁㈠崟鍙锋槸鍚﹀湪琛ヨ创涓�
 						long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(),
 								dto.getSourceType());
@@ -124,19 +129,19 @@
 						}
 					}
 				}
-			}
-
-		} else if (MQTopicName.TOPIC_SYSTEM_COUPON_USE.name().equalsIgnoreCase(message.getTopic())) {// 濂栧姳鍒镐娇鐢ㄦ垚鍔�
-			UserSystemCouponUseMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()),
-					UserSystemCouponUseMQMsgDTO.class);
-			if (dto != null) {
-				long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(),
-						dto.getSourceType());
-				if (count > 0) {
-					// 浣跨浉鍏宠鍗曞け鏁�
-					inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType());
+			} else if (tag.equalsIgnoreCase(UserTopicTagEnum.useSystemCoupon.name())) {
+				UserSystemCouponUseMQMsg dto = new Gson().fromJson(new String(message.getBody()),
+						UserSystemCouponUseMQMsg.class);
+				if (dto != null && dto.getCouponType()
+						.equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name())) {// 杩斿埄濂栧姳鍒哥殑浣跨敤
+					long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(),
+							dto.getSourceType());
+					if (count > 0) {
+						// 浣跨浉鍏宠鍗曞け鏁�
+						inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType());
+					}
+					return Action.CommitMessage;
 				}
-				return Action.CommitMessage;
 			}
 		}
 		return Action.CommitMessage;
@@ -147,9 +152,10 @@
 	 * 
 	 * @param day
 	 */
-	private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsgDTO dto, int day) {
+	private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsg dto, int day) {
 
-		Message msg = new Message(MQTopicName.TOPIC_FANLI.name(), "delay", new Gson().toJson(dto).getBytes());
+		Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderFanLiDelay.name(),
+				new Gson().toJson(dto).getBytes());
 		msg.setKey(dto.getSourceType() + "_" + dto.getOrderId());
 		long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 60 * 24L * day);
 		msg.setStartDeliverTime(delayTime);

--
Gitblit v1.8.0