package com.yeshi.fanli.util.mq.cmq;
|
|
import com.google.gson.Gson;
|
import com.qcloud.cmq.Message;
|
import com.yeshi.fanli.dto.money.UserMoneyChangeDTO;
|
import com.yeshi.fanli.dto.push.PushContentDetailDTO;
|
import com.yeshi.fanli.log.LogHelper;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.mq.cmq.order.JDOrderCMQManager;
|
import org.yeshi.utils.CMQUtil;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
public class PushCMQManager {
|
|
private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25";
|
private static String secretKey = "xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo";
|
private static PushCMQManager pushCMQManager;
|
private static CMQUtil cmqUtil;
|
|
public static String PUSH_HW = "push-hw";
|
|
static {
|
cmqUtil = CMQUtil.getInstance(secretId, secretKey);
|
PUSH_HW += "-" + Constant.systemCommonConfig.getProjectName();
|
cmqUtil.createQueue(PUSH_HW);
|
}
|
|
public static PushCMQManager getInstance() {
|
if (pushCMQManager == null)
|
pushCMQManager = new PushCMQManager();
|
return pushCMQManager;
|
}
|
|
/**
|
* @param dto
|
*/
|
public void addHWPush(PushContentDetailDTO dto) {
|
if (dto == null)
|
return;
|
String json = new Gson().toJson(dto);
|
cmqUtil.sendMsg(PUSH_HW, json);
|
}
|
|
/**
|
* 消费队列消息
|
*
|
* @param count
|
* @return
|
*/
|
public Map<String, PushContentDetailDTO> consumeHWPush(int count) {
|
List<Message> list = cmqUtil.recieveMsg(count, PUSH_HW);
|
Map<String, PushContentDetailDTO> map = new HashMap<>();
|
if (list != null)
|
for (Message msg : list) {
|
String result = msg.msgBody;
|
PushContentDetailDTO dto = new Gson().fromJson(result, PushContentDetailDTO.class);
|
map.put(msg.receiptHandle, dto);
|
}
|
return map;
|
}
|
|
/**
|
* 删除京东队列
|
*
|
* @param receiptHandle
|
*/
|
public void deleteHWPush(String receiptHandle) {
|
cmqUtil.deleteMsg(PUSH_HW, receiptHandle);
|
}
|
}
|