From bf5c02aaecb3f7a42daa4fa356c62a2e6bca0db5 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 28 十月 2019 09:55:59 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java |  109 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java
index d25a4ba..0c6bff5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java
@@ -9,8 +9,11 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.DefaultTransactionDefinition;
 
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper;
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderTradeMapMapper;
@@ -34,6 +37,9 @@
 
 	@Resource
 	private TaoBaoOrderTradeMapMapper taoBaoOrderTradeMapMapper;
+
+	@Resource(name = "transactionManager")
+	private DataSourceTransactionManager transactionManager;
 
 	/**
 	 * 鑾峰彇璁㈠崟鐨勫搱甯屽��
@@ -90,68 +96,77 @@
 	@Transactional
 	@Override
 	public void addTaoBaoOrder(String orderId, List<TaoBaoOrder> list) {
-		LogHelper.test("璁㈠崟鍙蜂笌璁㈠崟鏁伴噺:" + orderId + "-" + list.size());
-		// 楠岃瘉orderby鏄惁姝g‘
-		if (list != null && list.size() > 0) {
-			int maxOrderBy = list.get(0).getOrderBy();
-			if (list.size() > 1)
-				for (TaoBaoOrder order : list) {
-					if (order.getOrderBy() > maxOrderBy)
-						maxOrderBy = order.getOrderBy();
+		TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
+		try {
+
+			LogHelper.test("璁㈠崟鍙蜂笌璁㈠崟鏁伴噺:" + orderId + "-" + list.size());
+			
+			// 楠岃瘉orderby鏄惁姝g‘
+			if (list != null && list.size() > 0) {
+				int maxOrderBy = list.get(0).getOrderBy();
+				if (list.size() > 1)
+					for (TaoBaoOrder order : list) {
+						if (order.getOrderBy() > maxOrderBy)
+							maxOrderBy = order.getOrderBy();
+					}
+
+				if (list.size() != maxOrderBy) {
+					LogHelper.test("鎹曟崏鍒版帓搴忓�奸敊璇�:" + orderId);
+					throw new Exception();
 				}
-
-			if (list.size() != maxOrderBy) {
-				LogHelper.test("鎹曟崏鍒版帓搴忓�奸敊璇�:" + orderId);
-				return;
 			}
-		}
-		// 楠岃瘉tradeId闂
-		Set<String> tradesIds = new HashSet<>();
-		for (TaoBaoOrder order : list) {
-			tradesIds.add(order.getTradeId());
-		}
-
-		// 鏈夐噸澶嶇殑浜ゆ槗ID涓嶅鐞�
-		if (tradesIds.size() != list.size()) {
-			LogHelper.test("妫�娴嬪埌浜ゆ槗ID閲嶅闂:" + orderId);
-			return;
-		}
-
-		List<TaoBaoOrder> oldOrderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
-		if (oldOrderList == null || oldOrderList.size() == 0) {
-			for (TaoBaoOrder taoBaoOrder : list) {
-				taoBaoOrder.setLatestUpdateTime(new Date());
-				taoBaoOrderMapper.insertSelective(taoBaoOrder);
-				addTaoBaoOrderTradeMap(taoBaoOrder);
+			// 楠岃瘉tradeId闂
+			Set<String> tradesIds = new HashSet<>();
+			for (TaoBaoOrder order : list) {
+				tradesIds.add(order.getTradeId());
 			}
-		} else {
-			if (StringUtil.isNullOrEmpty(oldOrderList.get(0).getTradeId())) {
-				taoBaoOrderMapper.deleteByOrderId(orderId);
+
+			// 鏈夐噸澶嶇殑浜ゆ槗ID涓嶅鐞�
+			if (tradesIds.size() != list.size()) {
+				LogHelper.test("妫�娴嬪埌浜ゆ槗ID閲嶅闂:" + orderId);
+				throw new Exception();
+			}
+
+			List<TaoBaoOrder> oldOrderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
+			if (oldOrderList == null || oldOrderList.size() == 0) {
 				for (TaoBaoOrder taoBaoOrder : list) {
 					taoBaoOrder.setLatestUpdateTime(new Date());
 					taoBaoOrderMapper.insertSelective(taoBaoOrder);
 					addTaoBaoOrderTradeMap(taoBaoOrder);
 				}
 			} else {
-				// 鎸塼radeId鏇存柊
-				for (TaoBaoOrder taoBaoOrder : list) {
-					TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(taoBaoOrder.getTradeId());
-					if (order == null) {
+				if (StringUtil.isNullOrEmpty(oldOrderList.get(0).getTradeId())) {
+					taoBaoOrderMapper.deleteByOrderId(orderId);
+					for (TaoBaoOrder taoBaoOrder : list) {
 						taoBaoOrder.setLatestUpdateTime(new Date());
 						taoBaoOrderMapper.insertSelective(taoBaoOrder);
 						addTaoBaoOrderTradeMap(taoBaoOrder);
-					} else {
-						taoBaoOrder.setId(order.getId());
-						if (!StringUtil.isNullOrEmpty(order.getRelationId()))
-							taoBaoOrder.setRelationId(order.getRelationId());
-						if (!StringUtil.isNullOrEmpty(order.getSpecialId()))
-							taoBaoOrder.setSpecialId(order.getSpecialId());
-						taoBaoOrder.setLatestUpdateTime(new Date());
-						taoBaoOrderMapper.updateByPrimaryKeySelective(taoBaoOrder);
-						addTaoBaoOrderTradeMap(taoBaoOrder);
+					}
+				} else {
+					// 鎸塼radeId鏇存柊
+					for (TaoBaoOrder taoBaoOrder : list) {
+						TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(taoBaoOrder.getTradeId());
+						if (order == null) {
+							taoBaoOrder.setLatestUpdateTime(new Date());
+							taoBaoOrderMapper.insertSelective(taoBaoOrder);
+							addTaoBaoOrderTradeMap(taoBaoOrder);
+						} else {
+							taoBaoOrder.setId(order.getId());
+							if (!StringUtil.isNullOrEmpty(order.getRelationId()))
+								taoBaoOrder.setRelationId(order.getRelationId());
+							if (!StringUtil.isNullOrEmpty(order.getSpecialId()))
+								taoBaoOrder.setSpecialId(order.getSpecialId());
+							taoBaoOrder.setLatestUpdateTime(new Date());
+							taoBaoOrderMapper.updateByPrimaryKeySelective(taoBaoOrder);
+							addTaoBaoOrderTradeMap(taoBaoOrder);
+						}
 					}
 				}
 			}
+			// 鎻愪氦浜嬪姟
+			transactionManager.commit(transactionStatus);
+		} catch (Exception e) {
+			transactionManager.rollback(transactionStatus);
 		}
 	}
 

--
Gitblit v1.8.0