yujian
2020-04-15 c6b718c3cadf5e5fff4c2a47fd1247842439f8c7
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java
@@ -12,9 +12,13 @@
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.exception.money.OrderMoneySettleException;
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;
@@ -24,46 +28,77 @@
 * @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;
   @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;
   }
}