From dc5be7d38446f70e6ff86df311119c32b41fe7f8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 28 十一月 2020 16:37:05 +0800 Subject: [PATCH] 大淘客搜索接口升级 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java | 131 +++++++++++++++---------------------------- 1 files changed, 47 insertions(+), 84 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java index 1974202..b47fc04 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java @@ -2,110 +2,73 @@ import javax.annotation.Resource; +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.SystemFunction; +import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.manger.msg.RocketMQManager; 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.aliyun.openservices.ons.api.Producer; import com.google.gson.Gson; -import com.yeshi.fanli.dto.mq.BaseMQMsgBody; import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; -import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg; -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.IntegralTaskMQMsg; -import com.yeshi.fanli.dto.mq.user.body.UserAccountBindingMQMsg; -import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg; +import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService; import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; -import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.rocketmq.MQTopicName; /** * 绾㈠寘娑堣垂 - * - * @author Administrator * + * @author Administrator */ @Component public class RedPackMessageListener implements MessageListener { - @Resource - private UserSystemCouponService userSystemCouponService; - - @Resource - private RedPackWinInviteService redPackWinInviteService; + @Resource + private UserSystemCouponService userSystemCouponService; - @Override - public Action consume(Message message, ConsumeContext context) { - LogHelper.mqInfo("consumer-RedPackMessageListener", message.getTopic(), message.getTag(), - new String(message.getBody())); - String tag = message.getTag(); - if (tag == null) - tag = ""; - BaseMQMsgBody baseBody = new Gson().fromJson(new String(message.getBody()), BaseMQMsgBody.class); - if (baseBody.isTest() != Constant.IS_TEST) - return Action.ReconsumeLater; + @Resource + private RedPackWinInviteService redPackWinInviteService; - - if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) {// 杩斿埄鍒拌处 - OrderMoneyRecievedMQMsg orderMoneyRecievedMQMsg = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsg.class); - if (orderMoneyRecievedMQMsg.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) { - try {// 涓婄骇鍒嗕韩璁㈠崟濂栧姳 - redPackWinInviteService.orderArriveReward(orderMoneyRecievedMQMsg.getUid(), - orderMoneyRecievedMQMsg.getSourceType(), orderMoneyRecievedMQMsg.getOrderId()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) {// 璁㈠崟缁熻 - OrderMQMsg orderMQMsg = new Gson().fromJson(new String(message.getBody()), - OrderMQMsg.class); - if (orderMQMsg.isValid()) { - try {// 閭�璇峰鍔� - redPackWinInviteService.inviteSucceedReward(orderMQMsg.getUid()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - } else if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) { - boolean inviteSucceedReward = false; - Long uid = null; - if (tag.equalsIgnoreCase(UserTopicTagEnum.userAccountBinding.name())) {// 璐﹀彿缁戝畾 - UserAccountBindingMQMsg userAccountBindingMQMsg = new Gson().fromJson(new String(message.getBody()), - UserAccountBindingMQMsg.class); - Integer type = userAccountBindingMQMsg.getType(); - if (type == UserAccountBindingMQMsg.TYPE_PHONE || type == UserAccountBindingMQMsg.TYPE_TAOBAO) { - inviteSucceedReward = true; - uid = userAccountBindingMQMsg.getUid(); - } - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.inviteSuccess.name())) {// 閭�璇锋垚鍔� - UserInviteMQMsg userInviteMQMsg = new Gson().fromJson(new String(message.getBody()), - UserInviteMQMsg.class); - inviteSucceedReward = true; - uid = userInviteMQMsg.getWorkerId(); - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.integralTaskFinish.name())) {// 閲戝竵浠诲姟瀹屾垚 - IntegralTaskMQMsg integralTaskMQMsg = new Gson().fromJson(new String(message.getBody()), - IntegralTaskMQMsg.class); - inviteSucceedReward = true; - uid = integralTaskMQMsg.getUid(); - } - - if (inviteSucceedReward ) { - try {// 閭�璇峰鍔� - redPackWinInviteService.inviteSucceedReward(uid); - } catch (Exception e) { - e.printStackTrace(); - } - } - - } - return Action.CommitMessage; - } + @Resource + private RedPackGiveRecordService redPackGiveRecordService; + + @Resource + private RocketMQManager rocketMQManager; + + @Resource + private UserInfoService userInfoService; + + @Override + public Action consume(Message message, ConsumeContext context) { + LogHelper.mqInfo("consumer-RedPackMessageListener", message.getMsgID(), message.getTopic(), message.getTag(), + new String(message.getBody())); + String tag = message.getTag(); + if (tag == null) + tag = ""; + + if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { + // 璁㈠崟纭鏀惰揣 + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) { + OrderConfirmMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class); + //鍒ゆ柇绯荤粺鏄惁鍖呭惈绾㈠寘鍔熻兘 + Long sourceUid = mqMsg.getSourceUid(); + SystemEnum system = userInfoService.getUserSystem(sourceUid); + if (!system.getFunctionSet().contains(SystemFunction.redPack)) + return Action.CommitMessage; + try {// 閭�璇峰鍔� + redPackWinInviteService.winRedPackByOrder(mqMsg.getSourceUid(), mqMsg.getOrderNo(), mqMsg.getSourceType()); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + } + return Action.CommitMessage; + } } -- Gitblit v1.8.0