From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java |  518 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 283 insertions(+), 235 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 ce17e2b..81d525f 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
@@ -1,235 +1,283 @@
-package com.yeshi.fanli.service.impl.order.tb;
-
-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;
-
-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;
-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.order.tb.TaoBaoOrderService;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.RedisKeyEnum;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
-
-@Service
-public class TaoBaoOrderServiceImpl implements TaoBaoOrderService {
-
-	@Resource
-	private TaoBaoOrderMapper taoBaoOrderMapper;
-
-	@Resource
-	private RedisManager redisManager;
-
-	@Resource
-	private TaoBaoOrderTradeMapMapper taoBaoOrderTradeMapMapper;
-
-	@Resource(name = "transactionManager")
-	private DataSourceTransactionManager transactionManager;
-
-	/**
-	 * 鑾峰彇璁㈠崟鐨勫搱甯屽��
-	 * 
-	 * @param list
-	 * @return
-	 */
-
-	@Override
-	public void addTaoBaoOrderList(List<TaoBaoOrder> list) {
-		if (list == null || list.size() == 0)
-			return;
-		Map<String, List<TaoBaoOrder>> map = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(list);
-		Iterator<String> its = map.keySet().iterator();
-		while (its.hasNext()) {
-			String orderId = its.next();
-			String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrder, TaoBaoOrderUtil.getOrderDataHashCode(map.get(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) {
-		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();
-				}
-			}
-			// 楠岃瘉tradeId闂
-			Set<String> tradesIds = new HashSet<>();
-			for (TaoBaoOrder order : list) {
-				tradesIds.add(order.getTradeId());
-			}
-
-			// 鏈夐噸澶嶇殑浜ゆ槗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 {
-				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);
-						}
-					}
-				}
-			}
-			// 鎻愪氦浜嬪姟
-			transactionManager.commit(transactionStatus);
-		} catch (Exception e) {
-			transactionManager.rollback(transactionStatus);
-		}
-	}
-
-	@Override
-	public List<TaoBaoOrder> getTaoBaoOrderByOrderId(String orderId) {
-		return taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
-	}
-
-	@Override
-	public double countEstimate(String date) throws Exception {
-		return taoBaoOrderMapper.countEstimate(date);
-	}
-
-	@Override
-	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);
-	}
-
-	@Override
-	public List<TaoBaoOrder> listByStateAndCreateTime(String state, Date minCreateTime, Date maxCreateTime) {
-		return taoBaoOrderMapper.listByStateAndCreateTime(state, minCreateTime.getTime(), maxCreateTime.getTime());
-	}
-
-}
+package com.yeshi.fanli.service.impl.order.tb;
+
+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;
+
+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.TaoBaoOrderGoodsMapper;
+import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper;
+import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderTradeMapMapper;
+import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
+import com.yeshi.fanli.entity.taobao.TaoBaoOrderGoods;
+import com.yeshi.fanli.entity.taobao.TaoBaoOrderTradeMap;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
+import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
+
+@Service
+public class TaoBaoOrderServiceImpl implements TaoBaoOrderService {
+
+    @Resource
+    private TaoBaoOrderMapper taoBaoOrderMapper;
+
+    @Resource
+    private RedisManager redisManager;
+
+    @Resource
+    private TaoBaoOrderTradeMapMapper taoBaoOrderTradeMapMapper;
+
+    @Resource(name = "transactionManager")
+    private DataSourceTransactionManager transactionManager;
+
+    @Resource
+    private TaoBaoOrderGoodsMapper taoBaoOrderGoodsMapper;
+
+    /**
+     * 鑾峰彇璁㈠崟鐨勫搱甯屽��
+     *
+     * @param list
+     * @return
+     */
+
+    @Override
+    public void addTaoBaoOrderList(List<TaoBaoOrder> list) {
+        if (list == null || list.size() == 0)
+            return;
+        Map<String, List<TaoBaoOrder>> map = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(list);
+        Iterator<String> its = map.keySet().iterator();
+        while (its.hasNext()) {
+            String orderId = its.next();
+            String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrder,
+                    TaoBaoOrderUtil.getOrderDataHashCode(map.get(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);
+    }
+
+    // 娣诲姞娣樺疂璁㈠崟
+    private void insertTaoBaoOrder(TaoBaoOrder taoBaoOrder) {
+        //濡傛灉鍟嗗搧ID涓虹┖锛屽氨浠ヤ氦鏄揑D浣滀负鍟嗗搧ID
+        if(StringUtil.isNullOrEmpty(taoBaoOrder.getAuctionId())){
+            taoBaoOrder.setAuctionId(taoBaoOrder.getTradeId());
+        }
+
+        taoBaoOrderMapper.insertSelective(taoBaoOrder);
+        addTaoBaoOrderTradeMap(taoBaoOrder);
+        addTaoBaoOrderGoods(taoBaoOrder.getGoods());
+    }
+
+    @Transactional
+    @Override
+    public void addTaoBaoOrder(String orderId, List<TaoBaoOrder> list) {
+        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();
+                }
+            }
+            // 楠岃瘉tradeId闂
+            Set<String> tradesIds = new HashSet<>();
+            for (TaoBaoOrder order : list) {
+                tradesIds.add(order.getTradeId());
+            }
+
+            // 鏈夐噸澶嶇殑浜ゆ槗ID涓嶅鐞�
+            if (tradesIds.size() != list.size()) {
+                // 鍘婚櫎閲嶅浜ゆ槗ID
+                tradesIds = new HashSet<>();
+                for (int i = 0; i < list.size(); i++) {
+                    if (tradesIds.contains(list.get(i).getTradeId())) {
+                        list.remove(i--);
+                    } else
+                        tradesIds.add(list.get(i).getTradeId());
+                }
+
+                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());
+                    insertTaoBaoOrder(taoBaoOrder);
+                }
+            } else {
+                if (StringUtil.isNullOrEmpty(oldOrderList.get(0).getTradeId())) {
+                    taoBaoOrderMapper.deleteByOrderId(orderId);
+                    for (TaoBaoOrder taoBaoOrder : list) {
+                        taoBaoOrder.setLatestUpdateTime(new Date());
+                        insertTaoBaoOrder(taoBaoOrder);
+                    }
+                } else {
+                    // 鎸塼radeId鏇存柊
+                    for (TaoBaoOrder taoBaoOrder : list) {
+                        TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(taoBaoOrder.getTradeId());
+                        if (order == null) {
+                            taoBaoOrder.setLatestUpdateTime(new Date());
+                            insertTaoBaoOrder(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) {
+            e.printStackTrace();
+            transactionManager.rollback(transactionStatus);
+        }
+    }
+
+    @Override
+    public List<TaoBaoOrder> getTaoBaoOrderByOrderId(String orderId) {
+        return taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
+    }
+
+    @Override
+    public double countEstimate(String date) throws Exception {
+        return taoBaoOrderMapper.countEstimate(date);
+    }
+
+    @Override
+    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);
+    }
+
+    @Override
+    public List<TaoBaoOrder> listByStateAndCreateTime(String state, Date minCreateTime, Date maxCreateTime) {
+        return taoBaoOrderMapper.listByStateAndCreateTime(state, minCreateTime.getTime(), maxCreateTime.getTime());
+    }
+
+    @Override
+    public Long countOrderByDay(String preDay) {
+        return taoBaoOrderMapper.countOrderByDay(preDay);
+    }
+
+    @Override
+    public void addTaoBaoOrderGoods(TaoBaoOrderGoods goods) {
+        if (goods == null || StringUtil.isNullOrEmpty(goods.getTradeId()))
+            return;
+        TaoBaoOrderGoods oldGoods = taoBaoOrderGoodsMapper.selectByTradeId(goods.getTradeId());
+        if (oldGoods != null)
+            return;
+
+        if (goods.getCreateTime() == null)
+            goods.setCreateTime(new Date());
+        taoBaoOrderGoodsMapper.insertSelective(goods);
+    }
+
+    @Override
+    public void updateSelectiveByPrimaryKey(TaoBaoOrder order) {
+        taoBaoOrderMapper.updateByPrimaryKeySelective(order);
+    }
+
+}

--
Gitblit v1.8.0