admin
2024-04-26 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
@@ -1,13 +1,5 @@
package com.yeshi.fanli.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.yeshi.utils.CMQUtil;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -20,12 +12,18 @@
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.push.PushQueueRecord;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.util.mq.cmq.TDMQUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CMQManager {
    private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25";
    private static String secretKey = "xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo";
    private static CMQManager cmqManager;
    private static CMQUtil cmqUtil;
    private static TDMQUtil tdmqUtil;
    // 订单处理队列
    public static String QUEUENAME_ORDER = "fanli-orders";
@@ -60,20 +58,6 @@
    static {
        if (Constant.IS_TEST) {
            QUEUENAME_ORDER = "test-" + QUEUENAME_ORDER;
            QUEUENAME_NEW_ORDER = "test-" + QUEUENAME_NEW_ORDER;
            EXTRACT_RESULT = "test-" + EXTRACT_RESULT;
            PUSH_IOS = "test-" + PUSH_IOS;
            FANLI_ORDER = "test-" + FANLI_ORDER;
            FANLI_ORDER_NEW = "test-" + FANLI_ORDER_NEW;
            ORDER_WEIQUAN = "test-" + ORDER_WEIQUAN;
            IMPORTANT_GOODS_UPDATE = "test-" + IMPORTANT_GOODS_UPDATE;
            TEJIA_VIP = "test-" + TEJIA_VIP;
            FANLI_SHARE_ORDER = "test-" + FANLI_SHARE_ORDER;
        }
        QUEUENAME_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        QUEUENAME_NEW_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        EXTRACT_RESULT += "-" + Constant.systemCommonConfig.getProjectName();
@@ -85,21 +69,22 @@
        FANLI_SHARE_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        TEJIA_VIP += "-" + Constant.systemCommonConfig.getProjectName();
        cmqUtil = CMQUtil.getInstance(secretId, secretKey);
        TDMQUtil.getInstance().init(secretId, secretKey, Constant.TDMQ_PUBLIC);
        tdmqUtil = TDMQUtil.getInstance();
        // 最大消息为1M
        cmqUtil.createQueue(QUEUENAME_ORDER, 1024 * 1024);
        cmqUtil.createQueue(QUEUENAME_NEW_ORDER, 1024 * 1024);
        cmqUtil.createQueue(EXTRACT_RESULT);
        cmqUtil.createQueue(PUSH_IOS);
        cmqUtil.createQueue(FANLI_ORDER);
        cmqUtil.createQueue(FANLI_ORDER_NEW);
        tdmqUtil.createQueue(QUEUENAME_ORDER, 1024 * 1024);
        tdmqUtil.createQueue(QUEUENAME_NEW_ORDER, 1024 * 1024);
        tdmqUtil.createQueue(EXTRACT_RESULT);
        tdmqUtil.createQueue(PUSH_IOS);
        tdmqUtil.createQueue(FANLI_ORDER);
        tdmqUtil.createQueue(FANLI_ORDER_NEW);
        cmqUtil.createQueue(ORDER_WEIQUAN);
        cmqUtil.createQueue(GOODS_UPDATE);
        cmqUtil.createQueue(IMPORTANT_GOODS_UPDATE);
        tdmqUtil.createQueue(ORDER_WEIQUAN);
        tdmqUtil.createQueue(GOODS_UPDATE);
        tdmqUtil.createQueue(IMPORTANT_GOODS_UPDATE);
        cmqUtil.createQueue(FANLI_SHARE_ORDER);
        cmqUtil.createQueue(TEJIA_VIP);
        tdmqUtil.createQueue(FANLI_SHARE_ORDER);
        tdmqUtil.createQueue(TEJIA_VIP);
    }
    public static CMQManager getInstance() {
@@ -111,11 +96,11 @@
    /**
     * 发送订单消息
     *
     * @param orderMap
     * @param orderId
     */
    public void addTaoBaoOrderMsg(String orderId) {
        if (!StringUtil.isNullOrEmpty(orderId)) {
            cmqUtil.sendMsg(QUEUENAME_ORDER, orderId);
            tdmqUtil.sendMsg(QUEUENAME_ORDER, orderId);
        }
    }
@@ -126,14 +111,14 @@
     */
    public List<String> consumeTaoBaoOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_ORDER);
        List<Message> list = tdmqUtil.recieveMsg(count, QUEUENAME_ORDER);
        if (list != null)
            for (Message msg : list) {
                String result = msg.msgBody;
                resultList.add(result);
                // 删除消息
                cmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
                tdmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
            }
        return resultList;
    }
@@ -144,17 +129,19 @@
     * @param receiptHandle
     */
    public void deleteTaoBaoOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle);
        tdmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle);
    }
    /**
     * 发送订单消息(刚刚产生的订单)
     *
     * @param orderMap
     * @param orderId
     */
    public void addTaoBaoNewOrderMsg(String orderId) {
        if (!StringUtil.isNullOrEmpty(orderId)) {
            cmqUtil.sendMsg(QUEUENAME_NEW_ORDER, orderId);
            tdmqUtil.sendMsg(QUEUENAME_NEW_ORDER, orderId);
        }
    }
@@ -165,17 +152,18 @@
     */
    public List<String> consumeTaoBaoNewOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_NEW_ORDER);
        List<Message> list = tdmqUtil.recieveMsg(count, QUEUENAME_NEW_ORDER);
        if (list != null)
            for (Message msg : list) {
                String result = msg.msgBody;
                resultList.add(result);
                // 删除消息
                cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, msg.receiptHandle);
                tdmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, msg.receiptHandle);
            }
        return resultList;
    }
    /**
     * 删除淘宝订单消息(刚刚产生的订单)
@@ -183,7 +171,9 @@
     * @param receiptHandle
     */
    public void deleteTaoBaoNewOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
        tdmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
    }
    /**
@@ -195,7 +185,7 @@
    public void addExtractResultMsg(Extract extract, AlipayFundTransUniTransferResponse response,
                                    AdminUser adminUser) {
        String content = new Gson().toJson(new AlipayTransferResultInfo(extract, response, adminUser));
        cmqUtil.sendMsg(EXTRACT_RESULT, content);
        tdmqUtil.sendMsg(EXTRACT_RESULT, content);
    }
    /**
@@ -205,7 +195,7 @@
     * @return
     */
    public Map<String, AlipayTransferResultInfo> consumeExtractResultMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, EXTRACT_RESULT);
        List<Message> list = tdmqUtil.recieveMsg(count, EXTRACT_RESULT);
        Map<String, AlipayTransferResultInfo> map = new HashMap<>();
        if (list != null)
@@ -226,23 +216,25 @@
     * @param receiptHandle
     */
    public void deleteExtractResultMsg(String receiptHandle) {
        cmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
        tdmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
    }
    // 订单返利
    public void addFanLiMsg(HongBao hongBao) {
        String content = new Gson().toJson(hongBao);
        cmqUtil.sendMsg(FANLI_ORDER, content);
        tdmqUtil.sendMsg(FANLI_ORDER, content);
    }
    // 新版订单返利
    public void addFanLiMsgNew(HongBaoV2 hongBao) {
        String content = new Gson().toJson(hongBao);
        cmqUtil.sendMsg(FANLI_ORDER_NEW, content);
        tdmqUtil.sendMsg(FANLI_ORDER_NEW, content);
    }
    public Map<String, HongBao> consumeFanLiMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, FANLI_ORDER);
        List<Message> list = tdmqUtil.recieveMsg(count, FANLI_ORDER);
        Map<String, HongBao> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -256,7 +248,7 @@
    }
    public Map<String, HongBaoV2> consumeFanLiMsgNew(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, FANLI_ORDER_NEW);
        List<Message> list = tdmqUtil.recieveMsg(count, FANLI_ORDER_NEW);
        Map<String, HongBaoV2> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -270,21 +262,25 @@
    }
    public void deleteFanLiMsg(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
        tdmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
    }
    public void deleteFanLiMsgNew(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_ORDER_NEW, receiptHandle);
        tdmqUtil.deleteMsg(FANLI_ORDER_NEW, receiptHandle);
    }
    // 分享订单收益
    public void addFanLiShareMsg(UidDateDTO dto) {
        cmqUtil.sendMsg(FANLI_SHARE_ORDER, new Gson().toJson(dto));
        tdmqUtil.sendMsg(FANLI_SHARE_ORDER, new Gson().toJson(dto));
    }
    public Map<String, UidDateDTO> consumeFanLiShareMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, FANLI_SHARE_ORDER);
        List<Message> list = tdmqUtil.recieveMsg(count, FANLI_SHARE_ORDER);
        Map<String, UidDateDTO> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -298,16 +294,16 @@
    }
    public void deleteFanLiShareMsg(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_SHARE_ORDER, receiptHandle);
        tdmqUtil.deleteMsg(FANLI_SHARE_ORDER, receiptHandle);
    }
    // 维权订单
    public void addWeiQuanOrderMsg(TaoBaoWeiQuanOrder order) {
        cmqUtil.sendMsg(ORDER_WEIQUAN, new Gson().toJson(order));
        tdmqUtil.sendMsg(ORDER_WEIQUAN, new Gson().toJson(order));
    }
    public Map<String, TaoBaoWeiQuanOrder> consumeWeiQuanOrderMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, ORDER_WEIQUAN);
        List<Message> list = tdmqUtil.recieveMsg(count, ORDER_WEIQUAN);
        Map<String, TaoBaoWeiQuanOrder> map = new HashMap<>();
        Gson gson = new Gson();
        if (list != null)
@@ -321,18 +317,18 @@
    }
    public void deleteWeiQuanOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(ORDER_WEIQUAN, receiptHandle);
        tdmqUtil.deleteMsg(ORDER_WEIQUAN, receiptHandle);
    }
    /**
     * 添加IOS推送消息
     *
     * @param count
     * @param pushQueueRecord
     */
    public void addIOSPushMsg(PushQueueRecord pushQueueRecord) {
        String content = new GsonBuilder().create().toJson(pushQueueRecord);
        cmqUtil.sendMsg(PUSH_IOS, content);
        tdmqUtil.sendMsg(PUSH_IOS, content);
    }
    /**
@@ -341,7 +337,7 @@
     * @param count
     */
    public Map<String, PushQueueRecord> consumeIOSPushMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, PUSH_IOS);
        List<Message> list = tdmqUtil.recieveMsg(count, PUSH_IOS);
        if (list == null) {
            return null;
        }
@@ -366,16 +362,16 @@
     * @param receiptHandle
     */
    public void deleteIOSPushMsg(String receiptHandle) {
        cmqUtil.deleteMsg(PUSH_IOS, receiptHandle);
        tdmqUtil.deleteMsg(PUSH_IOS, receiptHandle);
    }
    /**
     * 添加需要更新的商品ID
     *
     * @param count
     * @param goodsId
     */
    public void addNeedUpdateTaoBaoGoodsId(Long goodsId) {
        cmqUtil.sendMsg(GOODS_UPDATE, goodsId + "");
    public void addNeedUpdateTaoBaoGoodsId(String goodsId) {
        tdmqUtil.sendMsg(GOODS_UPDATE, goodsId + "");
    }
    /**
@@ -383,17 +379,17 @@
     *
     * @param count
     */
    public Map<String, Long> consumeNeedUpdateTaoBaoGoodsIdMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, GOODS_UPDATE);
    public Map<String, String> consumeNeedUpdateTaoBaoGoodsIdMsg(int count) {
        List<Message> list = tdmqUtil.recieveMsg(count, GOODS_UPDATE);
        if (list == null) {
            return null;
        }
        Map<String, Long> map = new HashMap<>();
        Map<String, String> map = new HashMap<>();
        for (Message msg : list) {
            String result = msg.msgBody;
            if (!StringUtil.isNullOrEmpty(result)) {
                map.put(msg.receiptHandle, Long.parseLong(result));
                map.put(msg.receiptHandle, result);
            }
        }
@@ -407,7 +403,9 @@
     * @param receiptHandle
     */
    public void deleteNeedUpdateTaoBaoGoodsIdMsg(String receiptHandle) {
        cmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
        tdmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
    }
    /**
@@ -415,8 +413,8 @@
     *
     * @param actionId
     */
    public void addTBImpGoodsUpdate(Long actionId) {
        cmqUtil.sendMsg(IMPORTANT_GOODS_UPDATE, actionId + "");
    public void addTBImpGoodsUpdate(String actionId) {
        tdmqUtil.sendMsg(IMPORTANT_GOODS_UPDATE, actionId + "");
    }
    /**
@@ -425,17 +423,17 @@
     * @param count
     * @return
     */
    public Map<String, Long> consumeTBImpGoodsUpdateMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE);
    public Map<String, String> consumeTBImpGoodsUpdateMsg(int count) {
        List<Message> list = tdmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE);
        if (list == null) {
            return null;
        }
        Map<String, Long> map = new HashMap<>();
        Map<String, String> map = new HashMap<>();
        for (Message msg : list) {
            String result = msg.msgBody;
            if (!StringUtil.isNullOrEmpty(result)) {
                map.put(msg.receiptHandle, Long.parseLong(result));
                map.put(msg.receiptHandle, result);
            }
        }
        return map;
@@ -447,7 +445,7 @@
     * @param receiptHandle
     */
    public void deleteTBImpGoodsUpdateMsg(String receiptHandle) {
        cmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
        tdmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
    }
}