admin
2019-03-13 69bee82b81626b82b7f39f0e459e4f56b1699b51
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java
@@ -11,9 +11,11 @@
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.entity.taobao.TaoBaoOrder;
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 +23,9 @@
   @Resource
   private TaoBaoOrderMapper taoBaoOrderMapper;
   @Resource
   private RedisManager redisManager;
   @Override
   public void addTaoBaoOrderList(List<TaoBaoOrder> list) {
@@ -30,7 +35,28 @@
      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) {
         }
      }
   }
@@ -44,23 +70,30 @@
            taoBaoOrderMapper.insertSelective(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);
            }
         } else {
            // 按tradeId更新
            for (TaoBaoOrder taoBaoOrder : list) {
               TaoBaoOrder order = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(taoBaoOrder.getTradeId());
               if (order == null) {
                  taoBaoOrder.setLatestUpdateTime(new Date());
                  taoBaoOrderMapper.insertSelective(taoBaoOrder);
               } else {
                  taoBaoOrder.setId(order.getId());
                  taoBaoOrder.setRelationId(order.getRelationId());
                  taoBaoOrder.setSpecialId(order.getSpecialId());
                  taoBaoOrder.setLatestUpdateTime(new Date());
                  taoBaoOrderMapper.updateByPrimaryKeySelective(taoBaoOrder);
               }
            }
         }
      }
   }
   @Override
   public List<TaoBaoOrder> getTaoBaoOrderByOrderId(String orderId) {
@@ -68,24 +101,23 @@
   }
   @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);
      }
   }
}