From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java |  148 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 108 insertions(+), 40 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java
index a523b45..47c3d3e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java
@@ -10,12 +10,21 @@
 import com.aliyun.openservices.ons.api.MessageListener;
 import com.google.gson.Gson;
 import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg;
 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.UserInviteMQMsg;
-import com.yeshi.fanli.exception.money.OrderMoneySettleException;
+import com.yeshi.fanli.dto.mq.user.body.ThreeSaleSeparateMQMsg;
+import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
+import com.yeshi.fanli.entity.bus.user.UserActiveLog;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.user.UserActiveLogService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
+import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
 import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 /**
@@ -24,46 +33,105 @@
  * @author Administrator
  *
  */
-//@Component implements MessageListener
-public class UserVIPMessageListener  {
+@Component
+public class UserVIPMessageListener implements MessageListener {
 
 	@Resource
 	private UserVIPPreInfoService userVIPPreInfoService;
 
-//	@Override
-//	public Action consume(Message message, ConsumeContext context) {
-//		
-//		LogHelper.mqInfo("consumer-UserVIPMessageListener", message.getMsgID(), message.getTopic(),
-//				message.getTag(), new String(message.getBody()));
-//		String tag = message.getTag();
-//		if (tag == null)
-//			tag = "";
-//
-//		// 閭�璇风浉鍏�
-//		if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) {
-//			// 閭�璇锋垚鍔�
-//			if (tag.equalsIgnoreCase(UserTopicTagEnum.inviteSuccess.name())) {
-//				UserInviteMQMsg msg = new Gson().fromJson(new String(message.getBody()),UserInviteMQMsg.class);
-//				// 浼氬憳绛夌骇鍗囩骇
-//				userVIPPreInfoService.verifyVipPreInfo(msg.getBossId(), true);
-//			}
-//		}
-//		
-//		// 璁㈠崟鍒拌处鐩稿叧
-//		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) {// 鑷喘鍒拌处
-//					// 浼氬憳绛夌骇鍗囩骇
-//					userVIPPreInfoService.verifyVipPreInfo(dto.getUid(), false);
-//				} else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) {// 鍒嗕韩鍒拌处
-//					// 浼氬憳绛夌骇鍗囩骇
-//					userVIPPreInfoService.verifyVipPreInfo(dto.getUid(), false);
-//				}
-//			}
-//		}
-//		
-//		return Action.CommitMessage;
-//	}
+	@Resource
+	private TeamUserLevelStatisticService teamUserLevelStatisticService;
+
+	@Resource
+	private ThreeSaleSerivce threeSaleSerivce;
+
+	@Resource
+	private UserInviteValidNumService userInviteValidNumService;
+
+	@Resource
+	private UserActiveLogService userActiveLogService;
+	
+
+	@Override
+	public Action consume(Message message, ConsumeContext context) {
+
+		LogHelper.mqInfo("consumer-UserVIPMessageListener", message.getMsgID(), message.getTopic(), message.getTag(),
+				new String(message.getBody()));
+		String tag = message.getTag();
+		if (tag == null)
+			tag = "";
+
+		if (java.lang.System.currentTimeMillis() <= Constant.NEW_ORDER_FANLI_RULE_TIME) {
+			return Action.CommitMessage;
+		}
+
+		// 閭�璇风浉鍏�
+		if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) {
+			if (tag.equalsIgnoreCase(UserTopicTagEnum.userLevelChanged.name())) {// 鐢ㄦ埛绛夌骇鍙戠敓鍙樺寲
+				UserLevelChangedMQMsg msg = new Gson().fromJson(new String(message.getBody()),
+						UserLevelChangedMQMsg.class);
+
+				for (Long fuid : Constant.NO_UPGRADE_UIDS) {// 绂佹涓嶈兘鍗囩骇鐨勭敤鎴峰崌绾�
+					if (msg.getUid().longValue() == fuid)
+						return Action.CommitMessage;
+				}
+
+				// 鏇存柊涓�2绾х殑閭�璇风粺璁�
+				teamUserLevelStatisticService.updateUserLevel(msg.getUid());
+				UserInfo boss = threeSaleSerivce.getBoss(msg.getUid());
+				if (boss != null) {
+					teamUserLevelStatisticService.initData(boss.getId());
+					boss = threeSaleSerivce.getBoss(boss.getId());
+					if (boss != null) {
+						teamUserLevelStatisticService.initData(boss.getId());
+					}
+					
+				}
+				return Action.CommitMessage;
+			} 
+
+		} else if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
+			// 璁㈠崟鍒拌处鐩稿叧
+			if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) {
+				OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()),
+						OrderMoneyRecievedMQMsg.class);
+				if (dto != null) {
+					for (Long fuid : Constant.NO_UPGRADE_UIDS) {// 绂佹涓嶈兘鍗囩骇鐨勭敤鎴峰崌绾�
+						if (dto.getUid().longValue() == fuid)
+							return Action.CommitMessage;
+					}
+					// 鍒ゆ柇鐗堟湰
+					UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(dto.getUid());
+
+					if (log == null || !VersionUtil.greaterThan_2_1(
+							"appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {
+						return Action.CommitMessage;
+					}
+
+					if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 鑷喘鍒拌处
+						// 浼氬憳鍗囩骇-鑷喘璁㈠崟鏁伴噺楠岃瘉
+						userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
+					} else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) {// 鍒嗕韩鍒拌处
+						// 浼氬憳鍗囩骇-鍒嗕韩璁㈠崟鏁伴噺楠岃瘉
+						userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
+					}
+				}
+			} else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) {
+				OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class);
+				if (dto != null) {
+					for (Long fuid : Constant.NO_UPGRADE_UIDS) {// 绂佹涓嶈兘鍗囩骇鐨勭敤鎴峰崌绾�
+						if (dto.getSourceUid().longValue() == fuid)
+							return Action.CommitMessage;
+					}
+
+					// 浼氬憳绛夌骇鍗囩骇-绮変笣鏁伴噺楠岃瘉
+					userVIPPreInfoService.upgradeVipByTeamNum(dto.getSourceUid());
+					userInviteValidNumService.addValidTeamNum(dto.getSourceUid(), dto.getSettleMent(),
+							dto.getPlaceOrderTime());
+				}
+			}
+		}
+
+		return Action.CommitMessage;
+	}
 }

--
Gitblit v1.8.0