From 8b25dae4f4481a72a1adbb09a6628f2e001f45b1 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 29 四月 2020 16:25:46 +0800
Subject: [PATCH] 动态自动删除过期

---
 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java |  101 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 95 insertions(+), 6 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java
index 7884b70..a91f336 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java
@@ -1,5 +1,9 @@
 package com.yeshi.fanli.util.rocketmq.consumer.user;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Component;
@@ -11,9 +15,21 @@
 import com.google.gson.Gson;
 import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
 import com.yeshi.fanli.dto.mq.user.body.UserActiveMQMsg;
+import com.yeshi.fanli.entity.bus.user.UserActiveLog;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.bus.user.UserInfoRegister;
+import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
+import com.yeshi.fanli.exception.user.vip.UserVIPPreInfoException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.user.UserActiveLogService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
+import com.yeshi.fanli.service.inter.user.UserInfoRegisterService;
 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.StringUtil;
+import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 /**
@@ -25,19 +41,29 @@
 @Component
 public class SyncBeforeInfoMessageListener implements MessageListener {
 
-
 	@Resource
 	private UserInfoModifyRecordService userInfoModifyRecordService;
-	
+
 	@Resource
 	private TeamUserLevelStatisticService teamUserLevelStatisticService;
-	
-	
+
+	@Resource
+	private UserActiveLogService userActiveLogService;
+
+	@Resource
+	private UserInfoRegisterService userInfoRegisterService;
+
+	@Resource
+	private UserVIPPreInfoService userVIPPreInfoService;
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
 	@Override
 	public Action consume(Message message, ConsumeContext context) {
 
-		LogHelper.mqInfo("consumer-SyncBeforeInfoMessageListener", message.getMsgID(), message.getTopic(), message.getTag(),
-				new String(message.getBody()));
+		LogHelper.mqInfo("consumer-SyncBeforeInfoMessageListener", message.getMsgID(), message.getTopic(),
+				message.getTag(), new String(message.getBody()));
 		String tag = message.getTag();
 		if (tag == null)
 			tag = "";
@@ -51,6 +77,69 @@
 
 				// 鑰佺敤鎴峰悓姝ョ粦瀹氫俊鎭�
 				userInfoModifyRecordService.syncBeforeInfo(uid);
+
+				// 鍚屾鑰佺敤鎴风瓑绾�
+				UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(uid);
+
+				// 浣庣増鏈叏閮ㄥ崌绾ф櫘閫氫細鍛�
+				if (log != null && !VersionUtil.greaterThan_2_1(
+						"appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {
+					UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
+					if (vipInfo == null) {
+						vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
+						if (vipInfo == null) {// 娌℃湁鐢熸垚楂樼骇鍙婁互涓婁細鍛�
+							UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
+							if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
+								// 鑰佺敤鎴风敓鎴愭櫘閫氫細鍛�
+								UserVIPPreInfo vip = new UserVIPPreInfo();
+								vip.setCreateTime(new Date());
+								vip.setProcess(UserVIPPreInfo.PROCESS_1);
+								vip.setUid(uid);
+								try {
+									userVIPPreInfoService.addUserVIPPreInfo(vip);
+								} catch (UserVIPPreInfoException e) {
+									e.printStackTrace();
+								}
+							}
+						}
+					}
+
+				} else if (log != null && VersionUtil.greaterThan_2_1(
+						"appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {// 2.1鍚庡崌绾у叾浠栫瓑绾�
+					// 绾夸笂鑰佺敤鎴峰崌绾у埌2.1锛岃嚜鍔ㄨ绠楃瓑绾�
+					List<Long> uids = new ArrayList<>();
+					uids.add(uid);
+					List<UserInfoRegister> list = userInfoRegisterService.listByMultipleUids(uids);
+					if (list != null && list.size() > 0)// 鏈夋敞鍐屼俊鎭�
+					{
+						if (list.get(0).getCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) {// 鑰佺敤鎴�
+							// 鍚屾鐢ㄦ埛绛夌骇
+							UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
+							if (vipInfo == null) {
+								// 璁$畻绛夌骇
+								userVIPPreInfoService.upgradeVipByMyOrder(uid);
+								userVIPPreInfoService.upgradeVipByTeamNum(uid);
+								vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
+								if (vipInfo == null) {// 娌℃湁鐢熸垚楂樼骇鍙婁互涓婁細鍛�
+									UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
+									if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
+										// 鑰佺敤鎴风敓鎴愭櫘閫氫細鍛�
+										UserVIPPreInfo vip = new UserVIPPreInfo();
+										vip.setCreateTime(new Date());
+										vip.setProcess(UserVIPPreInfo.PROCESS_1);
+										vip.setUid(uid);
+										try {
+											userVIPPreInfoService.addUserVIPPreInfo(vip);
+										} catch (UserVIPPreInfoException e) {
+											e.printStackTrace();
+										}
+									}
+								}
+							}
+						}
+					}
+				}
+
 			}
 		}
 		return Action.CommitMessage;

--
Gitblit v1.8.0