From f3bcea3e6e9c8e93123487ec2ee0b33176bd8697 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 07 十一月 2019 15:09:53 +0800
Subject: [PATCH] 订单统计/订单到账消息通知修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java |   63 +++++++++++++++++++------------
 1 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
index 0517fc3..f62536f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -19,6 +19,7 @@
 import org.yeshi.utils.NumberUtil;
 
 import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
 import com.aliyun.openservices.ons.api.SendResult;
 import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter;
 import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
@@ -151,6 +152,9 @@
 
 	@Resource(name = "orderTransactionProducer")
 	private TransactionProducer orderTransactionProducer;
+
+	@Resource(name = "producer")
+	private Producer producer;
 
 	@Resource
 	private OrderMoneySettleService orderMoneySettleService;
@@ -1196,33 +1200,44 @@
 	 * @param sourceType
 	 * @param hongBaoType
 	 */
+	@Transactional
 	private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
 			int sourceType, int hongBaoType) {
-		// TODO 鍖哄垎娣诲姞涓庝慨鏀�
+
 		final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
-		OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid);
-		Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderStatistic.name(),
-				new Gson().toJson(mqMsg).getBytes());
-		SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
-			@Override
-			public TransactionStatus execute(Message arg0, Object arg1) {
-				int resultCode = 0;
-				try {
-					resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
-				} catch (HongBaoException e) {
-					try {
-						LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
-					} catch (Exception e1) {
-						e1.printStackTrace();
-					}
-				}
-				return TransactionStatus.CommitTransaction;
-				// if (resultCode != 0)
-				// return TransactionStatus.CommitTransaction;
-				// else
-				// return TransactionStatus.RollbackTransaction;
+		int resultCode = 0;
+		try {
+			resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
+		} catch (HongBaoException e) {
+			try {
+				LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
+			} catch (Exception e1) {
+				e1.printStackTrace();
 			}
-		}, null);
-		System.out.println(result);
+		}
+		if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭�
+			OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
+					isCommonOrderValid(coList));
+			Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderStatistic.name(),
+					new Gson().toJson(mqMsg).getBytes());
+			producer.send(msg);
+		}
 	}
+
+	/**
+	 * 璁㈠崟鏄惁鏈夋晥
+	 * 
+	 * @param coList
+	 * @return
+	 */
+	private boolean isCommonOrderValid(List<CommonOrder> coList) {
+		for (CommonOrder commonOrder : coList) {
+			if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_FK
+					|| commonOrder.getState() == CommonOrder.STATE_WQ) {
+				return true;
+			}
+		}
+		return false;
+	}
+
 }

--
Gitblit v1.8.0