fanli/src/main/java/com/yeshi/fanli/dto/mq/user/UserTopicTagEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/dto/mq/user/body/InterTokenMQMsg.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/token/InterTokenMessageListener.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/resource/env-dev/rocket/consumer.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
fanli/src/main/java/com/yeshi/fanli/dto/mq/user/UserTopicTagEnum.java
@@ -1,6 +1,7 @@ package com.yeshi.fanli.dto.mq.user; import com.yeshi.fanli.dto.mq.user.body.IntegralTaskMQMsg; import com.yeshi.fanli.dto.mq.user.body.InterTokenMQMsg; import com.yeshi.fanli.dto.mq.user.body.UserAccountBindingMQMsg; import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg; import com.yeshi.fanli.dto.mq.user.body.UserRedPackGiftMQMsg; @@ -14,7 +15,8 @@ inviteSuccess(UserInviteMQMsg.class), // 邀请成功 integralTaskFinish(IntegralTaskMQMsg.class), // 完成金币任务 userRegister(UserRegisterMQMsg.class), redPackGift(UserRedPackGiftMQMsg.class);//红包赠送 tokenOutOfDate(InterTokenMQMsg.class), redPackGift(UserRedPackGiftMQMsg.class);// 红包赠送 // 用户注册 fanli/src/main/java/com/yeshi/fanli/dto/mq/user/body/InterTokenMQMsg.java
New file @@ -0,0 +1,40 @@ package com.yeshi.fanli.dto.mq.user.body; import com.yeshi.fanli.dto.mq.BaseMQMsgBody; /** * 内部口令 * * @author Administrator * */ public class InterTokenMQMsg extends BaseMQMsgBody { private Long id;// 口令ID private String token;// 口令 public InterTokenMQMsg(Long id, String token) { super(); this.id = id; this.token = token; } public InterTokenMQMsg() { super(); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } } fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/token/InterTokenMessageListener.java
New file @@ -0,0 +1,57 @@ package com.yeshi.fanli.util.rocketmq.consumer.token; 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.BaseMQMsgBody; import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; import com.yeshi.fanli.dto.mq.user.body.InterTokenMQMsg; import com.yeshi.fanli.log.LogHelper; 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 * */ @Component public class InterTokenMessageListener implements MessageListener { @Resource private UserSystemCouponService userSystemCouponService; @Resource private RedPackWinInviteService redPackWinInviteService; @Override public Action consume(Message message, ConsumeContext context) { LogHelper.mqInfo("consumer-InterTokenMessageListener", message.getMsgID(), 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; if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) { if (tag.equalsIgnoreCase(UserTopicTagEnum.tokenOutOfDate.name())) {// 口令过期 InterTokenMQMsg interTokenMQMsg = new Gson().fromJson(new String(message.getBody()), InterTokenMQMsg.class); // TODO 相关处理 } } return Action.CommitMessage; } } fanli/src/main/resource/env-dev/rocket/consumer.xml
@@ -106,13 +106,13 @@ </key> </entry> <!-- 用户注册,账号绑定,邀请好友 ,完成金币任务 --> <!-- 用户注册,账号绑定,邀请好友 ,完成金币任务,红包赠送到期 --> <entry value-ref="redPackMessageListener"> <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_USER" /> <property name="expression" value="inviteSuccess||userAccountBinding||integralTaskFinish" /> value="inviteSuccess||userAccountBinding||integralTaskFinish||redPackGift" /> </bean> </key> </entry> @@ -120,5 +120,36 @@ </property> </bean> <!-- 应用内口令订阅 --> <bean id="interTokenMessageListener" class="com.yeshi.fanli.util.rocketmq.consumer.token.InterTokenMessageListener"></bean> <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean --> <bean id="interTokenConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean" init-method="start" destroy-method="shutdown"> <property name="properties"> <!--消费者配置信息 --> <props> <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop> <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop> <prop key="GROUP_ID">GID_TOKEN</prop> <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80 </prop> <prop key="ConsumeThreadNums">50</prop> </props> </property> <property name="subscriptionTable"> <map> <!-- 口令到期 --> <entry value-ref="interTokenMessageListener"> <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_USER" /> <property name="expression" value="tokenOutOfDate" /> </bean> </key> </entry> </map> </property> </bean> </beans>