From 25680e135b5bdc15658622cbfde74bab73cfee77 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 25 十二月 2020 18:54:40 +0800 Subject: [PATCH] 功能完善 --- service-lucky/src/main/java/com/ks/lucky/util/mq/CMQManager.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 106 insertions(+), 0 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/util/mq/CMQManager.java b/service-lucky/src/main/java/com/ks/lucky/util/mq/CMQManager.java index 05fdd1f..661d972 100644 --- a/service-lucky/src/main/java/com/ks/lucky/util/mq/CMQManager.java +++ b/service-lucky/src/main/java/com/ks/lucky/util/mq/CMQManager.java @@ -1,10 +1,18 @@ 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; @@ -17,11 +25,23 @@ 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() { @@ -51,6 +71,7 @@ public void addActivityMsg(ActivityMQMsg msg) { cmqUtil.sendMsg(QUEUENAME_LUCKY_ACTIVITY, new Gson().toJson(msg)); } + /** * 娲诲姩娑堟伅娑堣垂 @@ -83,4 +104,89 @@ } + /** + * 娣诲姞娲诲姩杩囨湡娑堟伅 + * + * @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)); + } + } -- Gitblit v1.8.0