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