admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java
@@ -15,9 +15,11 @@
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;
@@ -42,6 +44,9 @@
   @Resource(name = "transactionManager")
   private DataSourceTransactionManager transactionManager;
   @Resource
   private TaoBaoOrderGoodsMapper taoBaoOrderGoodsMapper;
   /**
    * 获取订单的哈希值
    * 
@@ -57,7 +62,8 @@
      Iterator<String> its = map.keySet().iterator();
      while (its.hasNext()) {
         String orderId = its.next();
         String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrder, TaoBaoOrderUtil.getOrderDataHashCode(map.get(orderId)));
         String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrder,
               TaoBaoOrderUtil.getOrderDataHashCode(map.get(orderId)));
         // redis做频率限制
         try {
            if (Constant.IS_OUTNET) {
@@ -94,6 +100,13 @@
         taoBaoOrderTradeMapMapper.insertSelective(map);
   }
   // 添加淘宝订单
   private void insertTaoBaoOrder(TaoBaoOrder taoBaoOrder) {
      taoBaoOrderMapper.insertSelective(taoBaoOrder);
      addTaoBaoOrderTradeMap(taoBaoOrder);
      addTaoBaoOrderGoods(taoBaoOrder.getGoods());
   }
   @Transactional
   @Override
   public void addTaoBaoOrder(String orderId, List<TaoBaoOrder> list) {
@@ -101,7 +114,7 @@
      try {
         LogHelper.test("订单号与订单数量:" + orderId + "-" + list.size());
         // 验证orderby是否正确
         if (list != null && list.size() > 0) {
            int maxOrderBy = list.get(0).getOrderBy();
@@ -132,16 +145,14 @@
         if (oldOrderList == null || oldOrderList.size() == 0) {
            for (TaoBaoOrder taoBaoOrder : list) {
               taoBaoOrder.setLatestUpdateTime(new Date());
               taoBaoOrderMapper.insertSelective(taoBaoOrder);
               addTaoBaoOrderTradeMap(taoBaoOrder);
               insertTaoBaoOrder(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);
                  insertTaoBaoOrder(taoBaoOrder);
               }
            } else {
               // 按tradeId更新
@@ -149,8 +160,7 @@
                  TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(taoBaoOrder.getTradeId());
                  if (order == null) {
                     taoBaoOrder.setLatestUpdateTime(new Date());
                     taoBaoOrderMapper.insertSelective(taoBaoOrder);
                     addTaoBaoOrderTradeMap(taoBaoOrder);
                     insertTaoBaoOrder(taoBaoOrder);
                  } else {
                     taoBaoOrder.setId(order.getId());
                     if (!StringUtil.isNullOrEmpty(order.getRelationId()))
@@ -167,6 +177,7 @@
         // 提交事务
         transactionManager.commit(transactionStatus);
      } catch (Exception e) {
         e.printStackTrace();
         transactionManager.rollback(transactionStatus);
      }
   }
@@ -236,6 +247,18 @@
   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);
   }
}