yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java
@@ -5,6 +5,7 @@
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
@@ -26,7 +27,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.TaoBaoOrderException;
import com.yeshi.fanli.exception.order.TaoBaoOrderException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -100,14 +101,14 @@
         String as = gm.getResponseBodyAsString();
         JSONObject root = JSONObject.fromObject(as);
         if (root.optInt("code") == 0) {// 上报成功
            LogHelper.cookieLog("上报成功!");
            LogHelper.error("上报成功!");
            return;
         }
         LogHelper.cookieLog("上报失败!");
         LogHelper.error("上报失败!");
      } catch (Exception e) {
         e.printStackTrace();
         LogHelper.cookieLog("上报失败!");
         LogHelper.error("上报失败!");
      }
   }
@@ -120,7 +121,7 @@
   public static List<TaoBaoOrder> getOrderList(int day, TaoBaoUnionConfig config) {
      String cookie1 = getTaoBaoCookie(config.getAccount());
      LogHelper.cookieLog("账号为:" + config.getAccount() + ",cookie为:" + cookie1);
      LogHelper.error("账号为:" + config.getAccount() + ",cookie为:" + cookie1);
      String[] cookies = new String[] { cookie1 };
      List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
@@ -194,7 +195,7 @@
   private static List<TaoBaoOrder> downLoadOrderFromTaoBao(String url, TaoBaoUnionConfig config)
         throws TaoBaoOrderException {
      String cookie1 = getTaoBaoCookie(config.getAccount());
      LogHelper.cookieLog("账号为:" + config.getAccount() + ",cookie为:" + cookie1);
      LogHelper.error("账号为:" + config.getAccount() + ",cookie为:" + cookie1);
      String[] cookies = new String[] { cookie1 };
      List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
      int i = 0;
@@ -306,16 +307,8 @@
      return getOrderList(30, config);
   }
   /**
    * 获取维权成功订单
    *
    * @param startTime
    * @param endTime
    * @return
    */
   public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(long startTime, long endTime, TaoBaoUnionConfig config) {
      String cookie = getTaoBaoCookie(config.getAccount());
      return getWeiQuanOrders(cookie, startTime, endTime);
   public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(InputStream input) {
      return parseWeiQuanOrder(input);
   }
   private static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(String cookies, long startTime, long endTime) {
@@ -574,38 +567,42 @@
            for (int c = 0; c < sheet.getColumns(); c++) {
               String content = sheet.getCell(c, r).getContents().trim();
               switch (c) {
               case 0://
                  orderRecord.setOrderId(content);
                  break;
               case 1://
                  orderRecord.setOrderItemId(content);
                  break;
               case 2://
                  orderRecord.setGoodsName(content);
                  break;
               case 3:
                  orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
                  break;
               case 4:
                  orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
                  break;
               case 5://
                  orderRecord.setState(content);
                  break;
               case 6://
                  if (!StringUtil.isNullOrEmpty(content))
                     orderRecord.setJieSuanTime(
                           new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
                  break;
               case 7://
               case 0:// 维权时间
                  if (!StringUtil.isNullOrEmpty(content))
                     orderRecord.setWeiQuanTime(
                           new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
                  break;
               case 8://
               case 1:// 维权完成时间
                  if (!StringUtil.isNullOrEmpty(content))
                     orderRecord.setWeiQuanFinishTime(
                           new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
                  break;
               case 2:// 结算时间
                  if (!StringUtil.isNullOrEmpty(content))
                     orderRecord.setJieSuanTime(
                           new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
                  break;
               case 3:// 商品名称
                  orderRecord.setGoodsName(content);
                  break;
               case 5:// 淘宝订单号
                  orderRecord.setOrderId(content);
                  break;
               case 6:// 淘宝子订单号
                  orderRecord.setOrderItemId(content);
                  break;
               case 7:// 维权状态
                  orderRecord.setState(content);
                  break;
               case 8:// 结算金额
                  break;
               case 9:// 退款金额
                  orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
                  break;
               case 10:// 返还商家金额
                  orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
                  break;
               }
            }
@@ -737,7 +734,7 @@
         String tradeId = taoBaoOrder.getTradeId();
         String orderByStr = tradeId.substring(startIndex, endIndex + 1);
         if (orderByStr.length() > 8) {
            LogHelper.error("订单的orderBy超过8位:" + taoBaoOrder.getOrderBy());
            LogHelper.error(taoBaoOrder.getOrderId() + "-订单的orderBy超过8位:" + taoBaoOrder.getOrderBy());
         }
         int orderBy = Integer.parseInt(orderByStr);
         // taoBaoOrder.setOrderBy(orderBy);
@@ -804,4 +801,28 @@
      return commonOrder;
   }
   /**
    * 获取一组订单的hash值
    *
    * @param list
    * @return
    */
   public static String getOrderDataHashCode(List<TaoBaoOrder> list) {
      List<TaoBaoOrder> orderList = new ArrayList<>();
      orderList.addAll(list);
      Comparator<TaoBaoOrder> orderCM = new Comparator<TaoBaoOrder>() {
         @Override
         public int compare(TaoBaoOrder o1, TaoBaoOrder o2) {
            return Long.parseLong(o1.getTradeId()) - Long.parseLong(o2.getTradeId()) > 0 ? 1 : -1;
         }
      };
      Collections.sort(orderList, orderCM);
      String sts = "";
      for (TaoBaoOrder order : orderList) {
         sts += (order.getTradeId() + "-" + order.getSpecialId() + "-" + order.getRelationId());
      }
      return StringUtil.Md5(sts);
   }
}