yujian
2019-10-21 d085ca89e39b4cda025a9a53d3797fbe8b242ae7
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -141,77 +141,97 @@
            .optJSONArray("n_tbk_item");
      if (array != null && array.size() > 0) {
         JSONObject item = array.optJSONObject(0);
         TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
         goods.setAuctionId(item.optLong("num_iid"));
         goods.setAuctionUrl(item.optString("item_url"));
         goods.setBiz30day(item.optInt("volume"));
         if (item.optJSONObject("small_images") != null) {
            JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
            if (imgArray != null) {
               List<String> imgList = new ArrayList<>();
               for (int n = 0; n < imgArray.size(); n++) {
                  imgList.add(imgArray.optString(n));
               }
               goods.setImgList(imgList);
            }
         }
         goods.setTitle(item.optString("title"));
         goods.setUserType(item.optInt("user_type"));
         goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
         goods.setReservePrice(new BigDecimal(item.optString("zk_final_price")));
         goods.setAuctionUrl(item.optString("item_url"));
         goods.setProvcity(item.optString("provcity"));
         goods.setPictUrl(item.optString("pict_url"));
         goods.setShopTitle(item.optString("nick"));
         goods.setSellerId(item.optLong("seller_id"));
         String optString = item.optString("shop_dsr");
         if (!StringUtil.isNullOrEmpty(optString)) {
            goods.setShopDsr(new Integer(optString));
         }
         String ratesum = item.optString("ratesum");
         if (!StringUtil.isNullOrEmpty(ratesum)) {
            goods.setRatesum(new Integer(ratesum));
         }
         if (item.optBoolean("is_prepay"))
            goods.setIsPrepay(1);
         if (item.optBoolean("i_rfd_rate"))
            goods.setRfdRate(1);
         if (item.optBoolean("h_good_rate"))
            goods.setGoodRate(1);
         if (item.optBoolean("h_pay_rate30"))
            goods.setPayRate30(1);
         if (item.optBoolean("free_shipment"))
            goods.setFreeShipment(1);
         if (!StringUtil.isNullOrEmpty(item.optString("material_lib_type"))) {
            try {
               String materialLibType = item.optString("material_lib_type");
               goods.setMaterialLibType(Integer.parseInt(materialLibType.split(",")[0]));
            } catch (Exception e) {
               goods.setMaterialLibType(0);
            }
         } else
            goods.setMaterialLibType(0);
         return goods;
         return parseSimpleGoodsInfo(item);
      }
      return null;
   }
   public String convertSpecialGoodsLink(Long auctionId, TaoKeAppInfo app) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.coupon.convert");
      map.put("item_id", auctionId + "");
      String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
      return resultStr;
   private static TaoBaoGoodsBrief parseSimpleGoodsInfo(JSONObject item) {
      TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
      goods.setAuctionId(item.optLong("num_iid"));
      goods.setAuctionUrl(item.optString("item_url"));
      goods.setBiz30day(item.optInt("volume"));
      if (item.optJSONObject("small_images") != null) {
         JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
         if (imgArray != null) {
            List<String> imgList = new ArrayList<>();
            for (int n = 0; n < imgArray.size(); n++) {
               imgList.add(imgArray.optString(n));
            }
            goods.setImgList(imgList);
         }
      }
      goods.setTitle(item.optString("title"));
      goods.setUserType(item.optInt("user_type"));
      goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
      goods.setReservePrice(new BigDecimal(item.optString("zk_final_price")));
      goods.setAuctionUrl(item.optString("item_url"));
      goods.setProvcity(item.optString("provcity"));
      goods.setPictUrl(item.optString("pict_url"));
      goods.setShopTitle(item.optString("nick"));
      goods.setSellerId(item.optLong("seller_id"));
      String optString = item.optString("shop_dsr");
      if (!StringUtil.isNullOrEmpty(optString)) {
         goods.setShopDsr(new Integer(optString));
      }
      String ratesum = item.optString("ratesum");
      if (!StringUtil.isNullOrEmpty(ratesum)) {
         goods.setRatesum(new Integer(ratesum));
      }
      if (item.optBoolean("is_prepay"))
         goods.setIsPrepay(1);
      if (item.optBoolean("i_rfd_rate"))
         goods.setRfdRate(1);
      if (item.optBoolean("h_good_rate"))
         goods.setGoodRate(1);
      if (item.optBoolean("h_pay_rate30"))
         goods.setPayRate30(1);
      if (item.optBoolean("free_shipment"))
         goods.setFreeShipment(1);
      if (!StringUtil.isNullOrEmpty(item.optString("material_lib_type"))) {
         try {
            String materialLibType = item.optString("material_lib_type");
            goods.setMaterialLibType(Integer.parseInt(materialLibType.split(",")[0]));
         } catch (Exception e) {
            goods.setMaterialLibType(0);
         }
      } else
         goods.setMaterialLibType(0);
      goods = loadYuShouInfo(goods, item);
      return goods;
   }
   private static TaoBaoGoodsBrief loadYuShouInfo(TaoBaoGoodsBrief goods, JSONObject item) {
      if (goods != null && item != null) {
         // 预售相关解析
         goods.setYsylClickUrl(item.optString("ysyl_click_url"));
         if (!StringUtil.isNullOrEmpty(item.optString("ysyl_commission_rate")))
            goods.setYsylCommissionRate(new BigDecimal(item.optString("ysyl_commission_rate")));
         goods.setYsylTljFace(item.optString("ysyl_tlj_face"));
         goods.setYsylTljSendTime(item.optString("ysyl_tlj_send_time"));
         goods.setYsylTljUseEndTime(item.optString("ysyl_tlj_use_end_time"));
         goods.setYsylTljUseStartTime(item.optString("ysyl_tlj_use_start_time"));
         goods.setPresaleDeposit(item.optString("presale_deposit"));
         goods.setPresaleDiscountFeeText(item.optString("presale_discount_fee_text"));
         goods.setPresaleEndTime(item.optString("presale_end_time"));
         goods.setPresaleStartTime(item.optString("presale_start_time"));
         goods.setPresaleTailEndTime(item.optString("presale_tail_end_time"));
         goods.setPresaleTailStartTime(item.optString("presale_tail_start_time"));
         return goods;
      }
      return goods;
   }
   public static List<TaoBaoGoodsBrief> getBatchGoodsInfo(List<Long> listId)
@@ -260,67 +280,10 @@
      if (array != null && array.size() > 0) {
         for (int i = 0; i < array.size(); i++) {
            TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
            JSONObject item = array.optJSONObject(i);
            goods.setAuctionId(item.optLong("num_iid"));
            goods.setAuctionUrl(item.optString("item_url"));
            goods.setBiz30day(item.optInt("volume"));
            if (item.optJSONObject("small_images") != null) {
               JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
               if (imgArray != null) {
                  List<String> imgList = new ArrayList<>();
                  for (int n = 0; n < imgArray.size(); n++) {
                     imgList.add(imgArray.optString(n));
                  }
                  goods.setImgList(imgList);
               }
            }
            goods.setTitle(item.optString("title"));
            goods.setUserType(item.optInt("user_type"));
            goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
            goods.setReservePrice(new BigDecimal(item.optString("zk_final_price")));
            goods.setAuctionUrl(item.optString("item_url"));
            goods.setProvcity(item.optString("provcity"));
            goods.setPictUrl(item.optString("pict_url"));
            goods.setShopTitle(item.optString("nick"));
            String optString = item.optString("shop_dsr");
            if (!StringUtil.isNullOrEmpty(optString)) {
               goods.setShopDsr(new Integer(optString));
            }
            String ratesum = item.optString("ratesum");
            if (!StringUtil.isNullOrEmpty(ratesum)) {
               goods.setRatesum(new Integer(ratesum));
            }
            if (item.optBoolean("is_prepay"))
               goods.setIsPrepay(1);
            if (item.optBoolean("i_rfd_rate"))
               goods.setRfdRate(1);
            if (item.optBoolean("h_good_rate"))
               goods.setGoodRate(1);
            if (item.optBoolean("h_pay_rate30"))
               goods.setPayRate30(1);
            if (item.optBoolean("free_shipment"))
               goods.setFreeShipment(1);
            if ("1".equalsIgnoreCase(item.optString("material_lib_type")))
               goods.setMaterialLibType(1);
            else
               goods.setMaterialLibType(0);
            goodsList.add(goods);
            goodsList.add(parseSimpleGoodsInfo(item));
         }
      }
      return goodsList;
   }
@@ -348,6 +311,7 @@
               g.setId(goods.getAuctionId());
               g.setCreatetime(new Date());
               g.setMaterialLibType(goods.getMaterialLibType());
               g.setProvcity(goods.getProvcity());
               return g;
            }
         }
@@ -416,6 +380,7 @@
               }
               g.setCreatetime(new Date());
               g.setMaterialLibType(goods.getMaterialLibType());
               g.setProvcity(goods.getProvcity());
               return g;
            }
         }
@@ -917,6 +882,7 @@
      goods.setSellerId(item.optLong("seller_id"));
      goods.setShopTitle(item.optString("shop_title"));
      goods.setTitle(item.optString("title"));
      goods.setProvcity(item.optString("provcity"));
      if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
         goods.setRootCatId(item.optInt("level_one_category_id"));
@@ -950,6 +916,7 @@
      if (!StringUtil.isNullOrEmpty(item.optString("reserve_price")))
         goods.setReservePrice(new BigDecimal(item.optString("reserve_price")));
      goods.setTotalFee(new BigDecimal("0"));
      goods = loadYuShouInfo(goods, item);
      return goods;
   }
@@ -1502,9 +1469,13 @@
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.item.click.extract");
      map.put("click_url", link + "");
      TaoKeAppInfo app = new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
            TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
      JSONObject resultJSON = null;
      try {
         resultJSON = TaoKeBaseUtil.baseRequest(map, true);
         resultJSON = TaoKeBaseUtil.baseRequest(map, app);
         System.out.println(resultJSON);
      } catch (TaoKeApiException e) {
         e.printStackTrace();
      }
@@ -1700,7 +1671,8 @@
      map.put("item_id", auctionId + "");
      map.put("adzone_id", sts[3]);
      try {
         JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
         String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
         JSONObject json = JSONObject.fromObject(result);
         JSONObject resultJSON = json.optJSONObject("tbk_coupon_convert_response").optJSONObject("result")
               .optJSONObject("results");
         String couponLink = resultJSON.optString("coupon_click_url");
@@ -1715,8 +1687,9 @@
         if (!StringUtil.isNullOrEmpty(tkRate)) {
            goods.setTkRate(new BigDecimal(tkRate));
         }
         goods = loadYuShouInfo(goods, resultJSON);
         return goods;
      } catch (TaoKeApiException e) {
      } catch (Exception e) {
         e.printStackTrace();
      }
@@ -1834,6 +1807,7 @@
      goods.setSellerId(item.optLong("seller_id"));
      goods.setShopTitle(item.optString("shop_title"));
      goods.setTitle(item.optString("title"));
      goods.setProvcity(item.optString("provcity"));
      if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
         goods.setRootCatId(item.optInt("level_one_category_id"));
@@ -1873,6 +1847,7 @@
      goods.setReservePrice(new BigDecimal(0));
      goods.setTotalFee(new BigDecimal("0"));
      goods.setPictUrlWhite(item.optString("white_image"));
      goods = loadYuShouInfo(goods, item);
      return goods;
   }
@@ -2099,6 +2074,42 @@
      }
      return null;
   }
   /**
    * 官方活动推广
    *
    * @param adZoneId
    *            -广告位
    * @param promotionSceneId-活动ID
    * @param relationId
    *            -渠道ID
    * @return
    */
   public static String officialActivityConvert(String adZoneId, String promotionSceneId, String relationId) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.activitylink.get");
      map.put("adzone_id", adZoneId);
      map.put("promotion_scene_id", promotionSceneId);
      if (relationId != null)
         map.put("relation_id", relationId);
      TaoKeAppInfo app = new TaoKeAppInfo();
      app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
      app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      try {
         String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
         JSONObject json = JSONObject.fromObject(result);
         if (json != null) {
            json = json.optJSONObject("tbk_activitylink_get_response");
            if (json.optInt("result_code") == 200) {
               return json.optString("data");
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
}
class QuanInfo {