| | |
| | | package com.ks.lucky.util.mq; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.ks.lucky.pojo.DTO.ActivityDrwanOutDateMsg; |
| | | import com.ks.lucky.pojo.DTO.ActivityMQMsg; |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityAssistMsgDTO; |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityDrawnMsgDTO; |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityJoinMsgDTO; |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO; |
| | | import com.ks.lucky.utils.LuckyCMQConstant; |
| | | import com.qcloud.cmq.Message; |
| | | import org.yeshi.utils.CMQUtil; |
| | | import org.yeshi.utils.JsonUtil; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | private static CMQManager cmqManager; |
| | | private static CMQUtil cmqUtil; |
| | | public static String QUEUENAME_LUCKY_ACTIVITY = "lucky-activity"; |
| | | /** |
| | | * 需要执行领奖过期 |
| | | */ |
| | | public static String QUEUENAME_LUCKY_ACTIVITY_DRAWN_OUTDATE_EXEC = "lucky-activity-drawn-outdate-exec"; |
| | | |
| | | |
| | | static { |
| | | cmqUtil = CMQUtil.getInstance(secretId, secretKey); |
| | | // 最大消息为1M |
| | | cmqUtil.createQueue(QUEUENAME_LUCKY_ACTIVITY, 1024 * 1024); |
| | | cmqUtil.createQueue(QUEUENAME_LUCKY_ACTIVITY_DRAWN_OUTDATE_EXEC, 1024 * 1024); |
| | | |
| | | //创建主题 |
| | | cmqUtil.createTopic(LuckyCMQConstant.TOPIC_ACTIVITY_STATE_CHANGE); |
| | | cmqUtil.createTopic(LuckyCMQConstant.TOPIC_ASSIST); |
| | | cmqUtil.createTopic(LuckyCMQConstant.TOPIC_ACTIVITY_DRAWN); |
| | | cmqUtil.createTopic(LuckyCMQConstant.TOPIC_ACTIVITY_JOIN); |
| | | } |
| | | |
| | | public static CMQManager getInstance() { |
| | |
| | | public void addActivityMsg(ActivityMQMsg msg) { |
| | | cmqUtil.sendMsg(QUEUENAME_LUCKY_ACTIVITY, new Gson().toJson(msg)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 活动消息消费 |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 添加活动过期消息 |
| | | * |
| | | * @param msg |
| | | */ |
| | | public void addActivityDrawnOutDateMsg(ActivityDrwanOutDateMsg msg) { |
| | | cmqUtil.sendMsg(QUEUENAME_LUCKY_ACTIVITY_DRAWN_OUTDATE_EXEC, new Gson().toJson(msg)); |
| | | } |
| | | |
| | | /** |
| | | * 消费活动中奖过期消息 |
| | | * |
| | | * @param count |
| | | * @return |
| | | */ |
| | | public Map<String, ActivityDrwanOutDateMsg> consumeActivityDrawnOutDateMsg(int count) { |
| | | List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_LUCKY_ACTIVITY_DRAWN_OUTDATE_EXEC); |
| | | if (list == null) { |
| | | return null; |
| | | } |
| | | |
| | | Map<String, ActivityDrwanOutDateMsg> map = new HashMap<>(); |
| | | Gson gson = new Gson(); |
| | | for (Message msg : list) { |
| | | String result = msg.msgBody; |
| | | map.put(msg.receiptHandle, gson.fromJson(result, ActivityDrwanOutDateMsg.class)); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 删除活动中奖过期消息 |
| | | * |
| | | * @param receiptHandle |
| | | */ |
| | | public void deleteActivityDrawnOutDateMsg(String receiptHandle) { |
| | | cmqUtil.deleteMsg(QUEUENAME_LUCKY_ACTIVITY_DRAWN_OUTDATE_EXEC, receiptHandle); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发布活动状态改变的订阅消息 |
| | | * |
| | | * @param dto |
| | | */ |
| | | public void publishActivityStateChangeMsg(ActivityStateChangeMsgDTO dto) { |
| | | List<String> tagList = new ArrayList<>(); |
| | | tagList.add(LuckyCMQConstant.TAG_ACTIVITY_STATE_CHANGE); |
| | | cmqUtil.publishTopicMessage(LuckyCMQConstant.TOPIC_ACTIVITY_STATE_CHANGE, tagList, JsonUtil.getSimpleGson().toJson(dto)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发布活动助力的订阅消息 |
| | | * |
| | | * @param dto |
| | | */ |
| | | public void publishActivityAssistMsg(ActivityAssistMsgDTO dto) { |
| | | List<String> tagList = new ArrayList<>(); |
| | | tagList.add(LuckyCMQConstant.TAG_ASSIST); |
| | | cmqUtil.publishTopicMessage(LuckyCMQConstant.TOPIC_ASSIST, tagList, JsonUtil.getSimpleGson().toJson(dto)); |
| | | } |
| | | |
| | | /** |
| | | * 发布活动中奖消息到订阅消息 |
| | | * |
| | | * @param dto |
| | | */ |
| | | public void publishActivityDrawnMsg(ActivityDrawnMsgDTO dto) { |
| | | List<String> tagList = new ArrayList<>(); |
| | | tagList.add(LuckyCMQConstant.TAG_ACTIVITY_DRAWN); |
| | | cmqUtil.publishTopicMessage(LuckyCMQConstant.TOPIC_ACTIVITY_DRAWN, tagList, JsonUtil.getSimpleGson().toJson(dto)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 活动参与信息 |
| | | * @param dto |
| | | */ |
| | | public void publishActivityJoinMsg(ActivityJoinMsgDTO dto) { |
| | | List<String> tagList = new ArrayList<>(); |
| | | tagList.add(LuckyCMQConstant.TAG_ACTIVITY_JOIN); |
| | | cmqUtil.publishTopicMessage(LuckyCMQConstant.TOPIC_ACTIVITY_JOIN, tagList, JsonUtil.getSimpleGson().toJson(dto)); |
| | | } |
| | | |
| | | } |