From 1e9d66afda722a8ace7c5a21c9c0bfa0f14989c4 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 九月 2021 15:23:27 +0800
Subject: [PATCH] 热门搜索采用大淘客的搜索排行
---
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java | 273 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 169 insertions(+), 104 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 2ac2b8a..a791b5c 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
@@ -1,104 +1,169 @@
-package com.yeshi.fanli.util.rocketmq.consumer.user;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Component;
-
-import com.aliyun.openservices.ons.api.Action;
-import com.aliyun.openservices.ons.api.ConsumeContext;
-import com.aliyun.openservices.ons.api.Message;
-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.OrderMoneyRecievedMQMsg;
-import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
-import com.yeshi.fanli.dto.mq.user.body.ThreeSaleSeparateMQMsg;
-import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg;
-import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
-import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
-import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
-import com.yeshi.fanli.util.rocketmq.MQTopicName;
-
-/**
- * 鐢ㄦ埛瓒呯骇浼氬憳
- *
- * @author Administrator
- *
- */
-@Component
-public class UserVIPMessageListener implements MessageListener {
-
- @Resource
- private UserVIPPreInfoService userVIPPreInfoService;
-
- @Resource
- private TeamUserLevelStatisticService teamUserLevelStatisticService;
-
- @Resource
- private ThreeSaleSerivce threeSaleSerivce;
-
- @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);
- } else if (tag.equalsIgnoreCase(UserTopicTagEnum.userLevelChanged.name())) {// 鐢ㄦ埛绛夌骇鍙戠敓鍙樺寲
- UserLevelChangedMQMsg msg = new Gson().fromJson(new String(message.getBody()),
- UserLevelChangedMQMsg.class);
- // 鏇存柊涓�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 (tag.equalsIgnoreCase(UserTopicTagEnum.threeSaleSeparate.name())) {// 閭�璇峰叧绯昏劚绂�
- ThreeSaleSeparateMQMsg msg = new Gson().fromJson(new String(message.getBody()),
- ThreeSaleSeparateMQMsg.class);
- // 鏇存柊涓婁袱绾ч個璇风粺璁�
- teamUserLevelStatisticService.initData(msg.getBossUid());
- UserInfo boss = threeSaleSerivce.getBoss(msg.getBossUid());
- 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) {
- 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;
- }
-}
+package com.yeshi.fanli.util.rocketmq.consumer.user;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemFunction;
+import com.yeshi.fanli.exception.user.vip.UserVIPUpgradeException;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.util.SystemInfoUtil;
+import org.springframework.stereotype.Component;
+
+import com.aliyun.openservices.ons.api.Action;
+import com.aliyun.openservices.ons.api.ConsumeContext;
+import com.aliyun.openservices.ons.api.Message;
+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.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;
+
+/**
+ * 鐢ㄦ埛瓒呯骇浼氬憳
+ *
+ * @author Administrator
+ */
+@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;
+
+ @Resource
+ private UserInfoService userInfoService;
+
+
+ @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);
+
+ //鍒ゆ柇绯荤粺鏄惁鏈変笁绾у垎閿�鍔熻兘
+ Long sourceUid = msg.getUid();
+ SystemEnum system = userInfoService.getUserSystem(sourceUid);
+ if (!SystemInfoUtil.hasFunctions(system, SystemFunction.threeSale, SystemFunction.vip))
+ return Action.CommitMessage;
+
+ 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) {
+ SystemEnum system = userInfoService.getUserSystem(dto.getUid());
+ if (!SystemInfoUtil.hasFunctions(system, SystemFunction.vip))
+ return Action.CommitMessage;
+ 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) {// 鑷喘鍒拌处
+ // 浼氬憳鍗囩骇-鑷喘璁㈠崟鏁伴噺楠岃瘉
+ try {
+ userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
+ } catch (UserVIPUpgradeException e) {
+ e.printStackTrace();
+ }
+ } else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) {// 鍒嗕韩鍒拌处
+ // 浼氬憳鍗囩骇-鍒嗕韩璁㈠崟鏁伴噺楠岃瘉
+ try {
+ userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
+ } catch (UserVIPUpgradeException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) {
+ OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class);
+ if (dto != null) {
+ SystemEnum system = userInfoService.getUserSystem(dto.getSourceUid());
+ if (!SystemInfoUtil.hasFunctions(system, SystemFunction.vip))
+ return Action.CommitMessage;
+ for (Long fuid : Constant.NO_UPGRADE_UIDS) {// 绂佹涓嶈兘鍗囩骇鐨勭敤鎴峰崌绾�
+ if (dto.getSourceUid().longValue() == fuid)
+ return Action.CommitMessage;
+ }
+
+ // 浼氬憳绛夌骇鍗囩骇-绮変笣鏁伴噺楠岃瘉
+ try {
+ userVIPPreInfoService.upgradeVipByTeamNum(dto.getSourceUid());
+ } catch (UserVIPUpgradeException e) {
+ e.printStackTrace();
+ }
+ userInviteValidNumService.addValidTeamNum(dto.getSourceUid(), dto.getSettleMent(),
+ dto.getPlaceOrderTime());
+ }
+ }
+ }
+
+ return Action.CommitMessage;
+ }
+}
--
Gitblit v1.8.0