From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java |  168 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 142 insertions(+), 26 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java
index 8756443..59cc845 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java
@@ -1,9 +1,11 @@
 package com.yeshi.fanli.service.impl.taobao;
 
 import java.util.Date;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.annotation.Resource;
 
@@ -11,9 +13,14 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper;
-import com.yeshi.fanli.entity.admin.ReslutOrder;
+import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderTradeMapMapper;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
+import com.yeshi.fanli.entity.taobao.TaoBaoOrderTradeMap;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
 
 @Service
@@ -21,6 +28,12 @@
 
 	@Resource
 	private TaoBaoOrderMapper taoBaoOrderMapper;
+
+	@Resource
+	private RedisManager redisManager;
+
+	@Resource
+	private TaoBaoOrderTradeMapMapper taoBaoOrderTradeMapMapper;
 
 	@Override
 	public void addTaoBaoOrderList(List<TaoBaoOrder> list) {
@@ -30,37 +43,110 @@
 		Iterator<String> its = map.keySet().iterator();
 		while (its.hasNext()) {
 			String orderId = its.next();
+			String key = "addorder-" + orderId;
+			// redis鍋氶鐜囬檺鍒�
+			try {
+				if (Constant.IS_OUTNET) {
+					if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+						continue;
+					}
+				}
+
+			} catch (Exception e) {
+
+			}
+
 			addTaoBaoOrder(orderId, map.get(orderId));
+			try {
+				// 6灏忔椂鍐呬笉鍐嶅鐞�
+				if (Constant.IS_OUTNET)
+					redisManager.cacheCommonString(key, "1", 60 * 60 * 6);
+			} catch (Exception e) {
+
+			}
 		}
+	}
+
+	@Transactional
+	private void addTaoBaoOrderTradeMap(TaoBaoOrder order) {
+		if (order == null || StringUtil.isNullOrEmpty(order.getTradeId()))
+			return;
+		TaoBaoOrderTradeMap map = new TaoBaoOrderTradeMap();
+		map.setCreateTime(new Date());
+		map.setTaoBaoOrder(order);
+		map.setTradeId(order.getTradeId());
+		TaoBaoOrderTradeMap oldMap = taoBaoOrderTradeMapMapper.selectByTradeId(order.getTradeId());
+		if (oldMap == null)
+			taoBaoOrderTradeMapMapper.insertSelective(map);
 	}
 
 	@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();
+				}
+
+			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);
 			}
 		} else {
-			boolean hasPayOrder = false;
-			for (TaoBaoOrder order : oldOrderList)
-				if (order.getOrderState().equalsIgnoreCase("璁㈠崟浠樻")) {
-					hasPayOrder = true;
-					break;
-				}
-			// 鍒犻櫎鍘熸潵鐨勮鍗曪紝鍔犲叆鏂拌鍗�
-			if (hasPayOrder) {
+			if (StringUtil.isNullOrEmpty(oldOrderList.get(0).getTradeId())) {
 				taoBaoOrderMapper.deleteByOrderId(orderId);
 				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) {
+						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);
+					}
 				}
 			}
 		}
 	}
-
 
 	@Override
 	public List<TaoBaoOrder> getTaoBaoOrderByOrderId(String orderId) {
@@ -68,24 +154,54 @@
 	}
 
 	@Override
-	public List<ReslutOrder> queryJoinHongBao (int start, int count, String key,
-			String startTime,String endTime,Integer type,Integer days) throws Exception{
-		return taoBaoOrderMapper.queryJoinHongBao(start, count, key, startTime, endTime, type, days);
-	}
-	
-	@Override
-	public int countQueryJoinHongBao(String key, String startTime,String endTime,Integer type,Integer days)throws Exception {
-		return taoBaoOrderMapper.countQueryJoinHongBao(key, startTime, endTime, type, days);
-	}
-	
-	@Override
-	public double countEstimate(String date)throws Exception {
+	public double countEstimate(String date) throws Exception {
 		return taoBaoOrderMapper.countEstimate(date);
 	}
-	
+
 	@Override
-	public List<TaoBaoOrder> getStateByOrderIdAndPayment(String orderId, String payment )throws Exception {
-		return taoBaoOrderMapper.getStateByOrderIdAndPayment(orderId, payment);
+	public void bindSpecialIdAndRealtionId(String tradeId, String specialId, String realtionId) {
+		if (StringUtil.isNullOrEmpty(specialId) && StringUtil.isNullOrEmpty(realtionId))
+			return;
+		TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(tradeId);
+		if (order != null) {
+			TaoBaoOrder update = new TaoBaoOrder();
+			update.setId(order.getId());
+			update.setSpecialId(specialId);
+			update.setRelationId(realtionId);
+			update.setLatestUpdateTime(new Date());
+			taoBaoOrderMapper.updateByPrimaryKeySelective(update);
+		}
 	}
-	
+
+	@Override
+	public TaoBaoOrder selectByTradeId(String tradeId) {
+		return taoBaoOrderMapper.selectTaoBaoOrderByTradeId(tradeId);
+	}
+
+	@Override
+	public List<TaoBaoOrder> listAllOrder(int page, int pageSize) {
+		return taoBaoOrderMapper.listAllOrder(null, (page - 1) * pageSize, pageSize);
+	}
+
+	@Override
+	public long countAllOrder() {
+		return taoBaoOrderMapper.countAllOrder(null);
+	}
+
+	@Override
+	public TaoBaoOrder selectByPrimaryKey(Long id) {
+		return taoBaoOrderMapper.selectByPrimaryKey(id);
+	}
+
+	@Override
+	public List<TaoBaoOrder> listBySettlementTime(Long minTime, Long maxTime, int page, int pageSize) {
+
+		return taoBaoOrderMapper.listBySettlementTime(minTime, maxTime, (page - 1) * pageSize, pageSize);
+	}
+
+	@Override
+	public Long countBySettlementTime(Long minTime, Long maxTime) {
+		return taoBaoOrderMapper.countBySettlementTime(minTime, maxTime);
+	}
+
 }

--
Gitblit v1.8.0