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 |  119 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 94 insertions(+), 25 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 757dd2b..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,11 +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.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;
 
 /**
@@ -23,46 +33,105 @@
  * @author Administrator
  *
  */
-@Component 
+@Component
 public class UserVIPMessageListener implements MessageListener {
 
 	@Resource
 	private UserVIPPreInfoService userVIPPreInfoService;
 
+	@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()));
+
+		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.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);
+			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