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