admin
2022-04-27 3340ed122e19e3943ce4f93eb52103b623a3fc2c
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,20 @@
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 org.yeshi.utils.CMQUtil;
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";
@@ -86,20 +86,22 @@
        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 +113,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 +128,18 @@
     */
    public List<String> consumeTaoBaoOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_ORDER);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, QUEUENAME_ORDER) : cmqUtil.recieveMsg(count, QUEUENAME_ORDER);
        if (list != null)
            for (Message msg : list) {
                String result = msg.msgBody;
                resultList.add(result);
                // 删除消息
                cmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
                if (Constant.TDMQ_CONSUMER) {
                    tdmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
                } else {
                    cmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
                }
            }
        return resultList;
    }
@@ -144,17 +150,21 @@
     * @param receiptHandle
     */
    public void deleteTaoBaoOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle);
        } else {
            cmqUtil.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 +175,22 @@
     */
    public List<String> consumeTaoBaoNewOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_NEW_ORDER);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, QUEUENAME_NEW_ORDER) : cmqUtil.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);
                if (Constant.TDMQ_CONSUMER) {
                    tdmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, msg.receiptHandle);
                } else {
                    cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, msg.receiptHandle);
                }
            }
        return resultList;
    }
    /**
     * 删除淘宝订单消息(刚刚产生的订单)
@@ -183,7 +198,11 @@
     * @param receiptHandle
     */
    public void deleteTaoBaoNewOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
        } else {
            cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
        }
    }
    /**
@@ -195,7 +214,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 +224,7 @@
     * @return
     */
    public Map<String, AlipayTransferResultInfo> consumeExtractResultMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, EXTRACT_RESULT);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, EXTRACT_RESULT) : cmqUtil.recieveMsg(count, EXTRACT_RESULT);
        Map<String, AlipayTransferResultInfo> map = new HashMap<>();
        if (list != null)
@@ -226,23 +245,27 @@
     * @param receiptHandle
     */
    public void deleteExtractResultMsg(String receiptHandle) {
        cmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
        } else {
            cmqUtil.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 = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, FANLI_ORDER) : cmqUtil.recieveMsg(count, FANLI_ORDER);
        Map<String, HongBao> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -256,7 +279,7 @@
    }
    public Map<String, HongBaoV2> consumeFanLiMsgNew(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, FANLI_ORDER_NEW);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, FANLI_ORDER_NEW) : cmqUtil.recieveMsg(count, FANLI_ORDER_NEW);
        Map<String, HongBaoV2> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -270,21 +293,29 @@
    }
    public void deleteFanLiMsg(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
        } else {
            cmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
        }
    }
    public void deleteFanLiMsgNew(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_ORDER_NEW, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(FANLI_ORDER_NEW, receiptHandle);
        } else {
            cmqUtil.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 = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, FANLI_SHARE_ORDER) : cmqUtil.recieveMsg(count, FANLI_SHARE_ORDER);
        Map<String, UidDateDTO> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
@@ -298,16 +329,20 @@
    }
    public void deleteFanLiShareMsg(String receiptHandle) {
        cmqUtil.deleteMsg(FANLI_SHARE_ORDER, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(FANLI_SHARE_ORDER, receiptHandle);
        } else {
            cmqUtil.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 = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, ORDER_WEIQUAN) : cmqUtil.recieveMsg(count, ORDER_WEIQUAN);
        Map<String, TaoBaoWeiQuanOrder> map = new HashMap<>();
        Gson gson = new Gson();
        if (list != null)
@@ -321,18 +356,22 @@
    }
    public void deleteWeiQuanOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(ORDER_WEIQUAN, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(ORDER_WEIQUAN, receiptHandle);
        } else {
            cmqUtil.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 +380,7 @@
     * @param count
     */
    public Map<String, PushQueueRecord> consumeIOSPushMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, PUSH_IOS);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, PUSH_IOS) : cmqUtil.recieveMsg(count, PUSH_IOS);
        if (list == null) {
            return null;
        }
@@ -366,16 +405,20 @@
     * @param receiptHandle
     */
    public void deleteIOSPushMsg(String receiptHandle) {
        cmqUtil.deleteMsg(PUSH_IOS, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(PUSH_IOS, receiptHandle);
        } else {
            cmqUtil.deleteMsg(PUSH_IOS, receiptHandle);
        }
    }
    /**
     * 添加需要更新的商品ID
     *
     * @param count
     * @param goodsId
     */
    public void addNeedUpdateTaoBaoGoodsId(Long goodsId) {
        cmqUtil.sendMsg(GOODS_UPDATE, goodsId + "");
        tdmqUtil.sendMsg(GOODS_UPDATE, goodsId + "");
    }
    /**
@@ -384,7 +427,7 @@
     * @param count
     */
    public Map<String, Long> consumeNeedUpdateTaoBaoGoodsIdMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, GOODS_UPDATE);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, GOODS_UPDATE) : cmqUtil.recieveMsg(count, GOODS_UPDATE);
        if (list == null) {
            return null;
        }
@@ -407,7 +450,11 @@
     * @param receiptHandle
     */
    public void deleteNeedUpdateTaoBaoGoodsIdMsg(String receiptHandle) {
        cmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
        } else {
            cmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
        }
    }
    /**
@@ -416,7 +463,7 @@
     * @param actionId
     */
    public void addTBImpGoodsUpdate(Long actionId) {
        cmqUtil.sendMsg(IMPORTANT_GOODS_UPDATE, actionId + "");
        tdmqUtil.sendMsg(IMPORTANT_GOODS_UPDATE, actionId + "");
    }
    /**
@@ -426,7 +473,7 @@
     * @return
     */
    public Map<String, Long> consumeTBImpGoodsUpdateMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE);
        List<Message> list = Constant.TDMQ_CONSUMER ? tdmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE) : cmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE);
        if (list == null) {
            return null;
        }
@@ -447,7 +494,11 @@
     * @param receiptHandle
     */
    public void deleteTBImpGoodsUpdateMsg(String receiptHandle) {
        cmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
        if (Constant.TDMQ_CONSUMER) {
            tdmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
        } else {
            cmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
        }
    }
}