yujian
2019-10-21 d085ca89e39b4cda025a9a53d3797fbe8b242ae7
fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java
@@ -28,6 +28,7 @@
import com.yeshi.fanli.dto.jd.JDShopInfo;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.jd.JDOrder;
import com.yeshi.fanli.entity.jd.JDOrderItem;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@@ -50,8 +51,6 @@
   public static int ORDER_TYPE_CREATETIME = 1;// 下单时间
   public static int ORDER_TYPE_FINISHTIME = 2;// 完成时间
   public static int ORDER_TYPE_UPDATETIME = 3;// 更新时间
   private static String post2(String url, Map<String, String> params) {
      String baseUrl = url;
@@ -133,6 +132,7 @@
      JSONObject resultJson = JSONObject.fromObject(result);
      result = resultJson.optJSONObject("jd_union_open_promotion_common_get_response").optString("result");
      System.out.println(result);
      if (result == null) {
         return null;
      }
@@ -172,6 +172,19 @@
            return list.get(0);
      }
      return null;
   }
   /**
    * 通过商品搜索接口批量获取详情
    *
    * @param skuIds
    * @return
    */
   public static List<JDGoods> listGoodsDetail(List<Long> skuIds) {
      JDFilter filter = new JDFilter();
      filter.setListId(skuIds);
      JDSearchResult result = queryByKey(filter);
      return result.getGoodsList();
   }
   /**
@@ -386,8 +399,8 @@
               if (discount_temp == null) {
                  add = true;
                  discount_temp = discount;
               } else if (discount_temp.compareTo(discount) > 0) { // 券面额大
                  add = true;
               } else if (discount_temp.compareTo(discount) < 0 && discount.compareTo(price) <= 0) {
                  add = true; // 券面额大,且券能够使用
               }
               if (add) {
@@ -472,14 +485,17 @@
      if (!StringUtil.isNullOrEmpty(isFreeShipping)) {
         goods.setIsFreeShipping(Integer.parseInt(isFreeShipping));
      }
      String inOrderCount = json.optString("inOrderCount");
      if (!StringUtil.isNullOrEmpty(isFreeShipping)) {
         goods.setInOrderCount30Days(Long.parseLong(inOrderCount));
      }
      goods.setCouponInfo(null);
      goods.setGoodCommentsShare(null);
      List<String> imageList = new ArrayList<>();
      imageList.add(json.optString("imgUrl"));
      goods.setPicUrl(json.optString("imgUrl"));
      goods.setImageList(imageList);
      goods.setInOrderCount30Days(0L);
      goods.setIsHot(null);
      goods.setMaterialUrl(json.optString("materialUrl"));
      goods.setOwner(null);
@@ -606,24 +622,46 @@
      json.put("orderReq", orderReq);
      String result = baseRequest2("jd.union.open.order.query", null, json);
      System.out.println(result);
      JSONObject root = JSONObject.fromObject(result).optJSONObject("jd_union_open_order_query_response");
      if (root.optInt("code") == 0) {
         boolean hasMore = root.optBoolean("hasMore");
         root = JSONObject.fromObject(root.optString("result"));
         if (root.optInt("code") == 200&&root.optJSONArray("data")!=null) {
         if (root.optInt("code") == 200 && root.optJSONArray("data") != null) {
            String date = root.optJSONArray("data").toString();
            Type typeToken = new TypeToken<List<JDOrder>>() {
            }.getType();
            List<JDOrder> orderList = new Gson().fromJson(date, typeToken);
            if (orderList != null)
               for (JDOrder order : orderList) {
                  Map<Long, List<JDOrderItem>> map = new HashMap<>();
                  for (int i = 0; i < order.getOrderItemList().size(); i++) {
                     JDOrderItem orderItem = order.getOrderItemList().get(i);
                     if (map.get(orderItem.getSkuId()) == null)
                        map.put(orderItem.getSkuId(), new ArrayList<>());
                     map.get(orderItem.getSkuId()).add(orderItem);
                     order.getOrderItemList().get(i)
                           .setTradeId(order.getOrderId() + "-" + order.getOrderItemList().get(i).getSkuId());
                     order.getOrderItemList().get(i).setOrderId(order.getOrderId());
                     order.getOrderItemList().get(i).setOrderBy(i + 1);
                  }
                  // 查询商品ID相同的子订单
                  for (Iterator<Long> its = map.keySet().iterator(); its.hasNext();) {
                     Long skuId = its.next();
                     if (map.get(skuId).size() > 1) {
                        int skuOrderBy = 1;
                        for (int i = 0; i < order.getOrderItemList().size(); i++) {
                           JDOrderItem orderItem = order.getOrderItemList().get(i);
                           if (orderItem.getSkuId().longValue() == skuId) {
                              order.getOrderItemList().get(i).setTradeId(order.getOrderId() + "-"
                                    + order.getOrderItemList().get(i).getSkuId() + "-" + skuOrderBy++);
                           }
                        }
                     }
                  }
               }
            return new JDOrderResult(hasMore, orderList);
         }