From c6b718c3cadf5e5fff4c2a47fd1247842439f8c7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 15 四月 2020 10:45:18 +0800
Subject: [PATCH] 团队消息

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java |  152 +++++++++++++++-----------------------------------
 1 files changed, 46 insertions(+), 106 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 f3d0572..e1881d6 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
@@ -11,27 +11,22 @@
 import com.aliyun.openservices.ons.api.Message;
 import com.aliyun.openservices.ons.api.MessageListener;
 import com.aliyun.openservices.ons.api.Producer;
-import com.aliyun.openservices.ons.api.SendResult;
 import com.google.gson.Gson;
-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;
+import com.yeshi.fanli.dto.mq.order.body.TeamRewardPreRecieveMQMsg;
+import com.yeshi.fanli.exception.ParamsException;
 import com.yeshi.fanli.exception.money.OrderMoneySettleException;
-import com.yeshi.fanli.exception.mq.MQUnSendInfoException;
+import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
+import com.yeshi.fanli.exception.order.CommonOrderException;
 import com.yeshi.fanli.exception.order.InviteOrderSubsidyException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.mq.MQUnSendInfoService;
-import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyService;
+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.util.Constant;
-import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.service.manger.order.TeamSubsidyManager;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 /**
@@ -43,7 +38,7 @@
 @Component
 public class InviteOrderSubsidyMessageListener implements MessageListener {
 	@Resource
-	private InviteOrderSubsidyService inviteOrderSubsidyService;
+	private TeamSubsidyManager teamSubsidyManager;
 
 	@Resource
 	private UserSystemCouponRecordService userSystemCouponRecordService;
@@ -57,14 +52,20 @@
 	@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() {
 
 	}
 
 	@Override
 	public Action consume(Message message, ConsumeContext context) {
-		LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getMsgID(),message.getTopic(), message.getTag(),
-				new String(message.getBody()));
+		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())) {
@@ -73,107 +74,46 @@
 				// 鏌ヨ涓婄骇绾㈠寘
 				OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class);
 				if (dto != null) {
-					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() == OrderMoneyRecievedMQMsg.TYPE_INVITE) {// 閭�璇峰埌璐�
-						// 琛ヨ创鍒拌处
+					// 鏌ヨ鍑鸿鍗曞垱寤烘椂闂�
+					Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType());
+					if (orderTime.getTime() >= TEAM_REWARD_START_TIME) {
 						try {
-							orderMoneySettleService.inviteSubsidySettle(dto.getUid(), message.getKey());
+							teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType());
 							return Action.CommitMessage;
-						} catch (OrderMoneySettleException e) {
+						} catch (InviteOrderSubsidyException 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;
 						}
 					}
 				}
-			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiDelay.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) {
-							// 鍒ゆ柇鏄惁瑕佷娇鐢ㄥ鍔卞埜
-							UserSystemCouponRecord record = userSystemCouponRecordService
-									.getRecordByOrderNo(dto.getOrderId(), UserSystemCouponRecord.STATE_SUCCESS);
-							if (record != null
-									&& record.getCouponType()
-											.equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name())
-									&& record.getGoodSource() == dto.getSourceType()) {// 鎴愬姛浣跨敤浜嗗鍔卞埜
-								inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(),
-										dto.getSourceType());
-							} else {
-								// 浣挎暟鎹湁鏁�
-								inviteOrderSubsidyService.validByOrderIdAndSourceType(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());
-					}
+			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.teamRewardPreRecieved.name())) {// 鍥㈤槦濂栭噾棰勫埌璐�
+				TeamRewardPreRecieveMQMsg dto = new Gson().fromJson(new String(message.getBody()),
+						TeamRewardPreRecieveMQMsg.class);
+				try {
+					teamSubsidyManager.addToTeamEincome(dto.getUid(), message.getKey(), dto.getPreGetTime());
 					return Action.CommitMessage;
+				} catch (OrderMoneySettleException e) {
+					e.printStackTrace();
+				} catch (TeamEincomeRecordException e) {
+					e.printStackTrace();
+				} catch (ParamsException e) {
+					e.printStackTrace();
 				}
+
+				return Action.ReconsumeLater;
 			}
 		}
 		return Action.CommitMessage;
 	}
-
-	/**
-	 * 鍙戦�佽鍗曞欢鏃舵秷鎭�
-	 * 
-	 * @param day
-	 */
-	private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsg dto, int day) {
-
-		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiDelay,
-				dto);
-		msg.setKey(dto.getSourceType() + "_" + dto.getOrderId());
-		long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 60 * 24L * day);
-		msg.setStartDeliverTime(delayTime);
-		SendResult sendResult = producer.send(msg);
-		if (sendResult != null) {
-			return true;
-		} else {
-			MQUnSendInfo info = new MQUnSendInfo();
-			info.setBody(new String(msg.getBody()));
-			if (msg.getStartDeliverTime() > 0)
-				info.setDeliverTime(new Date(msg.getStartDeliverTime()));
-			info.setKey(msg.getKey());
-			info.setTag(msg.getTag());
-			info.setTopic(msg.getTopic());
-			try {
-				mqUnSendInfoService.addMQUnSendInfo(info);
-			} catch (MQUnSendInfoException e) {
-				e.printStackTrace();
-			}
-			return false;
-		}
-	}
-
 }

--
Gitblit v1.8.0