From f15acf7f2d57db3a32c574b0dfc21f564dca6024 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 24 三月 2020 12:01:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java |   78 +++++++++++++++++++++++++++++++++++----
 1 files changed, 70 insertions(+), 8 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 67d2174..72af241 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,6 +1,7 @@
 package com.yeshi.fanli.util.rocketmq.consumer.order;
 
 import java.util.Date;
+import java.util.List;
 
 import javax.annotation.Resource;
 
@@ -20,16 +21,22 @@
 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.order.CommonOrder;
 import com.yeshi.fanli.entity.system.SystemCoupon;
 import com.yeshi.fanli.exception.money.OrderMoneySettleException;
 import com.yeshi.fanli.exception.mq.MQUnSendInfoException;
+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.InviteOrderSubsidyService;
+import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyServiceV2;
 import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
@@ -45,6 +52,9 @@
 	private InviteOrderSubsidyService inviteOrderSubsidyService;
 
 	@Resource
+	private InviteOrderSubsidyServiceV2 inviteOrderSubsidyServiceV2;
+
+	@Resource
 	private UserSystemCouponRecordService userSystemCouponRecordService;
 
 	@Resource(name = "producer")
@@ -55,6 +65,12 @@
 
 	@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() {
 
@@ -72,11 +88,32 @@
 				// 鏌ヨ涓婄骇绾㈠寘
 				OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class);
 				if (dto != null) {
-					try {
-						inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType());
-					} catch (InviteOrderSubsidyException e) {
+					// 鏌ヨ鍑鸿鍗曞垱寤烘椂闂�
+					Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType());
+					if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
+						try {
+							inviteOrderSubsidyServiceV2.addOrUpdateByOrder(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 {
+							inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType());
+						} catch (InviteOrderSubsidyException e) {
+							LogHelper.errorDetailInfo(e, new Gson().toJson(dto), "");
+							return Action.ReconsumeLater;
+						}
 					}
+
 				}
 			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) {
 				OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()),
@@ -115,12 +152,31 @@
 									&& record.getCouponType()
 											.equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name())
 									&& record.getGoodSource() == dto.getSourceType()) {// 鎴愬姛浣跨敤浜嗗鍔卞埜
-								inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(),
-										dto.getSourceType());
+
+								Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType());
+								if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
+									inviteOrderSubsidyServiceV2.invalidByOrderIdAndSourceType(dto.getOrderId(),
+											dto.getSourceType());
+								} else
+
+									inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(),
+											dto.getSourceType());
 							} else {
 								// 浣挎暟鎹湁鏁�
-								inviteOrderSubsidyService.validByOrderIdAndSourceType(dto.getOrderId(),
-										dto.getSourceType());
+								try {
+									Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(),
+											dto.getType());
+									if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
+										inviteOrderSubsidyServiceV2.validByOrderIdAndSourceType(dto.getOrderId(),
+												dto.getSourceType());
+									} else
+
+										inviteOrderSubsidyService.validByOrderIdAndSourceType(dto.getOrderId(),
+												dto.getSourceType());
+								} catch (InviteOrderSubsidyException e) {
+									e.printStackTrace();
+									return Action.ReconsumeLater;
+								}
 							}
 						}
 					}
@@ -136,7 +192,13 @@
 							dto.getSourceType());
 					if (count > 0) {
 						// 浣跨浉鍏宠鍗曞け鏁�
-						inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType());
+						Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getSourceType());
+						if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
+							inviteOrderSubsidyServiceV2.invalidByOrderIdAndSourceType(dto.getOrderId(),
+									dto.getSourceType());
+						} else
+							inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(),
+									dto.getSourceType());
 					}
 					return Action.CommitMessage;
 				}

--
Gitblit v1.8.0