package org.fanli.facade.user.util;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.fanli.facade.user.dto.money.AlipayTransferResultInfo;
|
import org.fanli.facade.user.entity.money.extract.Extract;
|
import org.yeshi.utils.CMQUtil;
|
import org.yeshi.utils.StringUtil;
|
|
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
|
import com.google.gson.Gson;
|
import com.qcloud.cmq.Message;
|
import com.yeshi.fanli.base.Constant;
|
import com.yeshi.fanli.base.entity.admin.AdminUser;
|
|
public class ExtractCMQManager {
|
private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25";
|
private static String secretKey = "xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo";
|
private static ExtractCMQManager cmqManager;
|
private static CMQUtil cmqUtil;
|
|
// 提现结果处理队列
|
public static String EXTRACT_RESULT = "extract-result";
|
|
static {
|
|
if (Constant.IS_TEST) {
|
EXTRACT_RESULT = "test-" + EXTRACT_RESULT;
|
}
|
|
EXTRACT_RESULT += "-" + Constant.systemCommonConfig.getProjectName();
|
|
cmqUtil = CMQUtil.getInstance(secretId, secretKey);
|
// 最大消息为1M
|
cmqUtil.createQueue(EXTRACT_RESULT);
|
}
|
|
public static ExtractCMQManager getInstance() {
|
if (cmqManager == null)
|
cmqManager = new ExtractCMQManager();
|
return cmqManager;
|
}
|
|
/**
|
* 添加提现结果消息
|
*
|
* @param extract
|
* @param response
|
*/
|
public void addExtractResultMsg(Extract extract, AlipayFundTransToaccountTransferResponse response,
|
AdminUser adminUser) {
|
String content = new Gson().toJson(new AlipayTransferResultInfo(extract, response, adminUser));
|
cmqUtil.sendMsg(EXTRACT_RESULT, content);
|
}
|
|
/**
|
* 消费提现结果消息
|
*
|
* @param count
|
* @return
|
*/
|
public Map<String, AlipayTransferResultInfo> consumeExtractResultMsg(int count) {
|
List<Message> list = cmqUtil.recieveMsg(count, EXTRACT_RESULT);
|
Map<String, AlipayTransferResultInfo> map = new HashMap<>();
|
|
if (list != null)
|
for (Message msg : list) {
|
String result = msg.msgBody;
|
if (!StringUtil.isNullOrEmpty(result)) {
|
AlipayTransferResultInfo alipayTransferResultInfo = new Gson().fromJson(result,
|
AlipayTransferResultInfo.class);
|
map.put(msg.receiptHandle, alipayTransferResultInfo);
|
}
|
}
|
return map;
|
}
|
|
/**
|
* 删除提现结果消息
|
*
|
* @param receiptHandle
|
*/
|
public void deleteExtractResultMsg(String receiptHandle) {
|
cmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
|
}
|
}
|