yujian
2020-05-13 8b3c82c0788e23acd889e6f67a91c855693352fd
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserTeamMessageListener.java
@@ -1,14 +1,28 @@
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.user.UserTopicTagEnum;
import com.yeshi.fanli.dto.mq.user.body.BeComeValidUserMQMsg;
import com.yeshi.fanli.dto.mq.user.body.TaoBaoBindSuccessMQMsg;
import com.yeshi.fanli.dto.mq.user.body.UserActiveMQMsg;
import com.yeshi.fanli.dto.mq.user.body.UserInfoUpdateMQMsg;
import com.yeshi.fanli.dto.mq.user.body.UserInfoUpdateMQMsg.UserInfoUpdateTypeEnum;
import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg;
import com.yeshi.fanli.dto.mq.user.body.UserMoneyChangeMQMsg;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.invite.TeamFansInfoService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import net.sf.json.JSONObject;
/**
 * 用户粉丝消息
@@ -18,6 +32,12 @@
 */
@Component
public class UserTeamMessageListener implements MessageListener {
   @Resource
   private TeamFansInfoService teamFansInfoService;
   @Resource
   private ThreeSaleDetailService threeSaleDetailService;
   @Override
   public Action consume(Message message, ConsumeContext context) {
@@ -32,27 +52,57 @@
      if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) {
         if (tag.equalsIgnoreCase(UserTopicTagEnum.userActve.name())) {// 用户活跃
            // TODO 更改用户活跃时间
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            UserActiveMQMsg userActiveMQMsg = new Gson().fromJson(json.toString(), UserActiveMQMsg.class);
            if (userActiveMQMsg != null) {
               // 更改用户活跃时间
               teamFansInfoService.updateActiveTime(userActiveMQMsg.getUid(), userActiveMQMsg.getCreateTime());
            }
         } else if (tag.equalsIgnoreCase(UserTopicTagEnum.userInfoUpdate.name())) {// 用户信息更新
            // TODO 更改微信号绑定
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            UserInfoUpdateMQMsg mqMsg = new Gson().fromJson(json.toString(), UserInfoUpdateMQMsg.class);
            if (mqMsg != null) {
               if (UserInfoUpdateTypeEnum.nickName == mqMsg.getType()) { // 更改昵称
                  teamFansInfoService.updateNickName(mqMsg.getUid(), mqMsg.getValue());
               } else if (UserInfoUpdateTypeEnum.wxId == mqMsg.getType()) { // 微信号绑定
                  teamFansInfoService.updateWeixinId(mqMsg.getUid(), mqMsg.getValue());
               }
            }
         } else if (tag.equalsIgnoreCase(UserTopicTagEnum.taobaoBindSuccess.name())) {// 淘宝绑定成功
            // TODO 更改淘宝绑定状态与原用户淘宝绑定状态
            // 更改淘宝绑定状态与原用户淘宝绑定状态
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            TaoBaoBindSuccessMQMsg mqMsg = new Gson().fromJson(json.toString(), TaoBaoBindSuccessMQMsg.class);
            if (mqMsg != null) {
               // 更新淘宝绑定
               teamFansInfoService.updateTaobaoBind(mqMsg.getUid(), true);
               Long fromUid = mqMsg.getFromUid();
               if (fromUid != null) { // 淘宝被解绑
                  teamFansInfoService.updateTaobaoBind(fromUid, false);
               }
            }
         } else if (tag.equalsIgnoreCase(UserTopicTagEnum.inviteSuccess.name())) {// 邀请成功
            // TODO 更新粉丝数量
            // 更新粉丝数量
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            UserInviteMQMsg mqMsg = new Gson().fromJson(json.toString(), UserInviteMQMsg.class);
            if (mqMsg != null) {
               teamFansInfoService.updateFansNum(mqMsg.getBossId());
               threeSaleDetailService.addByWorkerUid(mqMsg.getWorkerId());
            }
         } else if (tag.equalsIgnoreCase(UserTopicTagEnum.userMoneyAdd.name())) {// 资金到账
            // TODO 更新近60天到账
            // 更新近60天到账
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            UserMoneyChangeMQMsg mqMsg = new Gson().fromJson(json.toString(), UserMoneyChangeMQMsg.class);
            if (mqMsg != null) {
               teamFansInfoService.updateIncome(mqMsg.getUid(), mqMsg.getChangeMoney());
            }
         } else if (tag.equalsIgnoreCase(UserTopicTagEnum.becomeValidUser.name())) {// 成为有效用户
            // TODO 有效用户标识
            // 有效用户标识
            JSONObject json = JSONObject.fromObject(new String(message.getBody()));
            BeComeValidUserMQMsg mqMsg = new Gson().fromJson(json.toString(), BeComeValidUserMQMsg.class);
            if (mqMsg != null) {
               // 更新成为有效粉丝
               teamFansInfoService.updateStateValid(mqMsg.getUid(), true);
            }
         }
      }
      return Action.CommitMessage;