yujian
2019-11-12 88a597dc4300bad81004af2ba37c22da8d75f078
Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div
2个文件已修改
2个文件已添加
136 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dto/mq/user/UserTopicTagEnum.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/mq/user/body/InterTokenMQMsg.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/token/InterTokenMessageListener.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/env-dev/rocket/consumer.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | 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>