From b4b421ba6b85b586f9b8171c876f716bab9840d0 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 22 七月 2019 14:21:21 +0800 Subject: [PATCH] 增加新订单处理队列 --- fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java | 80 +++++++++++++++++++++++++++------------ 1 files changed, 55 insertions(+), 25 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java b/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java index 26f145e..29cb823 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java @@ -1,8 +1,7 @@ package com.yeshi.fanli.util; -import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -11,7 +10,6 @@ import com.alipay.api.response.AlipayFundTransToaccountTransferResponse; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; import com.qcloud.cmq.Message; import com.yeshi.fanli.dto.HongBao; import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo; @@ -19,10 +17,7 @@ import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.common.AdminUser; import com.yeshi.fanli.entity.push.PushQueueRecord; -import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; - -import net.sf.json.JSONObject; public class CMQManager { private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25"; @@ -31,6 +26,10 @@ private static CMQUtil cmqUtil; // TODO 璁㈠崟澶勭悊闃熷垪 public static String QUEUENAME_ORDER = "fanli-orders"; + + // 鍒氬垰浜х敓鐨勮鍗曞鐞嗛槦鍒� + public static String QUEUENAME_NEW_ORDER = "fanli-new-orders"; + // 鎻愮幇缁撴灉澶勭悊闃熷垪 public static String EXTRACT_RESULT = "extract-result"; // TODO IOS鎺ㄩ�侀槦鍒� @@ -53,6 +52,7 @@ 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; @@ -62,6 +62,7 @@ } QUEUENAME_ORDER += "-" + Constant.systemCommonConfig.getProjectName(); + QUEUENAME_NEW_ORDER += "-" + Constant.systemCommonConfig.getProjectName(); EXTRACT_RESULT += "-" + Constant.systemCommonConfig.getProjectName(); PUSH_IOS += "-" + Constant.systemCommonConfig.getProjectName(); FANLI_ORDER += "-" + Constant.systemCommonConfig.getProjectName(); @@ -72,6 +73,7 @@ cmqUtil = CMQUtil.getInstance(secretId, secretKey); // 鏈�澶ф秷鎭负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); @@ -92,11 +94,9 @@ * * @param orderMap */ - public void addTaoBaoOrderMsg(String orderId, List<TaoBaoOrder> orderList) { - if (!StringUtil.isNullOrEmpty(orderId) && orderList != null && orderList.size() > 0) { - JSONObject item = new JSONObject(); - item.put(orderId, new GsonBuilder().create().toJson(orderList)); - cmqUtil.sendMsg(QUEUENAME_ORDER, item.toString()); + public void addTaoBaoOrderMsg(String orderId) { + if (!StringUtil.isNullOrEmpty(orderId)) { + cmqUtil.sendMsg(QUEUENAME_ORDER, orderId); } } @@ -105,27 +105,18 @@ * * @param count */ - @SuppressWarnings("unchecked") - public Map<String, List<TaoBaoOrder>> consumeTaoBaoOrderMsg(int count) { + public List<String> consumeTaoBaoOrderMsg(int count) { + List<String> resultList = new ArrayList<>(); List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_ORDER); - Map<String, List<TaoBaoOrder>> map = new HashMap<>(); if (list != null) for (Message msg : list) { String result = msg.msgBody; - JSONObject data = JSONObject.fromObject(result); - Iterator<String> its = data.keySet().iterator(); - if (its.hasNext()) { - String orderId = its.next(); - Type type = new TypeToken<List<TaoBaoOrder>>() { - }.getType(); - List<TaoBaoOrder> orderList = new Gson().fromJson(data.optJSONArray(orderId).toString(), type); - map.put(orderId, orderList); - } + resultList.add(result); // 鍒犻櫎娑堟伅 cmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle); } - return map; + return resultList; } /** @@ -134,7 +125,46 @@ * @param receiptHandle */ public void deleteTaoBaoOrderMsg(String receiptHandle) { - cmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle); + cmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle); + } + + /** + * 鍙戦�佽鍗曟秷鎭紙鍒氬垰浜х敓鐨勮鍗曪級 + * + * @param orderMap + */ + public void addTaoBaoNewOrderMsg(String orderId) { + if (!StringUtil.isNullOrEmpty(orderId)) { + cmqUtil.sendMsg(QUEUENAME_NEW_ORDER, orderId); + } + } + + /** + * 娑堣垂娣樺疂璁㈠崟娑堟伅锛堝垰鍒氫骇鐢熺殑璁㈠崟锛� + * + * @param count + */ + public List<String> consumeTaoBaoNewOrderMsg(int count) { + List<String> resultList = new ArrayList<>(); + List<Message> list = 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); + } + return resultList; + } + + /** + * 鍒犻櫎娣樺疂璁㈠崟娑堟伅锛堝垰鍒氫骇鐢熺殑璁㈠崟锛� + * + * @param receiptHandle + */ + public void deleteTaoBaoNewOrderMsg(String receiptHandle) { + cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle); } /** -- Gitblit v1.8.0