admin
2020-04-13 dd5b15229cb15459fa7c31ccea77dac28cbfafbd
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -169,6 +169,8 @@
      goods.setPictUrl(item.optString("pict_url"));
      goods.setShopTitle(item.optString("nick"));
      goods.setSellerId(item.optLong("seller_id"));
      goods.setRootCategoryName(item.optString("cat_name"));
      goods.setLeafName(item.optString("cat_leaf_name"));
      String optString = item.optString("shop_dsr");
      if (!StringUtil.isNullOrEmpty(optString)) {
@@ -318,29 +320,37 @@
            }
         }
      // 再从淘宝联盟网页搜索
      filter.setKey(goods.getAuctionUrl());
      TaoBaoSearchResult searchResult = TaoBaoUtil.searchFromAlimamaWeb(filter, null);
      if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null
            && searchResult.getTaoBaoGoodsBriefs().size() > 0) {
         for (TaoBaoGoodsBrief g : searchResult.getTaoBaoGoodsBriefs()) {
            if (g.getAuctionId().longValue() == goods.getAuctionId()) {
               g.setImgList(goods.getImgList());
               goods = g;
               if ("无".equalsIgnoreCase(goods.getCouponInfo()))
                  goods.setCouponInfo(null);
               return goods;
      // 从转链搜索
      TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
            new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
                  TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
      if (newGoods != null) {
         goods.setTkRate(newGoods.getTkRate());
         if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
            List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
            if (couponInfo != null && couponInfo.size() > 1) {
               goods.setCouponStartFee(couponInfo.get(0));
               goods.setCouponAmount(couponInfo.get(1));
               goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
               goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
               goods.setCouponLeftCount(newGoods.getCouponLeftCount());
               goods.setCouponTotalCount(newGoods.getCouponTotalCount());
               goods.setCouponInfo(newGoods.getCouponInfo());
            }
         }
         return goods;
      } else {
         goods.setCouponAmount(new BigDecimal("0"));
         goods.setTkMktStatus("1");
         goods.setTkRate(new BigDecimal("0"));
         goods.setReservePrice(new BigDecimal(0));
         goods.setTkCommFee(new BigDecimal(0));
         return goods;
      }
      TaoKeLogHelper.error(null, "没有搜索到详情:" + id);
      goods.setCouponAmount(new BigDecimal("0"));
      goods.setTkMktStatus("1");
      goods.setTkRate(new BigDecimal("0"));
      goods.setReservePrice(new BigDecimal(0));
      goods.setTkCommFee(new BigDecimal(0));
      return goods;
   }
   /**
@@ -387,29 +397,36 @@
            }
         }
      // 再从淘宝联盟网页搜索
      filter.setKey(goods.getAuctionUrl());
      TaoBaoSearchResult searchResult = TaoBaoUtil.searchFromAlimamaWeb(filter, null);
      if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null
            && searchResult.getTaoBaoGoodsBriefs().size() > 0) {
         for (TaoBaoGoodsBrief g : searchResult.getTaoBaoGoodsBriefs()) {
            if (g.getAuctionId().longValue() == goods.getAuctionId()) {
               g.setImgList(goods.getImgList());
               goods = g;
               if ("无".equalsIgnoreCase(goods.getCouponInfo()))
                  goods.setCouponInfo(null);
               return goods;
      // 从转链搜索
      TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
            new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
                  TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
      if (newGoods != null) {
         goods.setTkRate(newGoods.getTkRate());
         if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
            List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
            if (couponInfo != null && couponInfo.size() > 1) {
               goods.setCouponStartFee(couponInfo.get(0));
               goods.setCouponAmount(couponInfo.get(1));
               goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
               goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
               goods.setCouponLeftCount(newGoods.getCouponLeftCount());
               goods.setCouponTotalCount(newGoods.getCouponTotalCount());
               goods.setCouponInfo(newGoods.getCouponInfo());
            }
         }
      }
      TaoKeLogHelper.error(null, "没有搜索到详情:" + id);
      goods.setCouponAmount(new BigDecimal("0"));
      goods.setTkMktStatus("1");
      goods.setTkRate(new BigDecimal("0"));
      goods.setReservePrice(new BigDecimal(0));
      goods.setTkCommFee(new BigDecimal(0));
      return goods;
         return goods;
      } else {
         goods.setCouponAmount(new BigDecimal("0"));
         goods.setTkMktStatus("1");
         goods.setTkRate(new BigDecimal("0"));
         goods.setReservePrice(new BigDecimal(0));
         goods.setTkCommFee(new BigDecimal(0));
         return goods;
      }
   }
   /**
@@ -1624,6 +1641,7 @@
      map.put("adzone_id", sts[3]);
      try {
         String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
         System.out.println(result);
         JSONObject json = JSONObject.fromObject(result);
         JSONObject resultJSON = json.optJSONObject("tbk_coupon_convert_response").optJSONObject("result")
               .optJSONObject("results");
@@ -1634,6 +1652,17 @@
         if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_info"))) {
            goods.setCouponLink(couponLink);
            goods.setCouponInfo(resultJSON.optString("coupon_info"));
            if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_total_count"))) {
               goods.setCouponTotalCount(Integer.parseInt(resultJSON.optString("coupon_total_count")));
            }
            if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_remain_count"))) {
               goods.setCouponLeftCount(Integer.parseInt(resultJSON.optString("coupon_remain_count")));
            }
            goods.setCouponEffectiveStartTime(resultJSON.optString("coupon_start_time"));
            goods.setCouponEffectiveEndTime(resultJSON.optString("coupon_end_time"));
         }
         String tkRate = resultJSON.optString("max_commission_rate");
         if (!StringUtil.isNullOrEmpty(tkRate)) {
@@ -2104,6 +2133,73 @@
      return goodsList;
   }
   public static List<TaoBaoGoodsBrief> getCouponListByItemId(Long auctionId) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.itemid.coupon.get");
      map.put("platform", auctionId + "");
      map.put("num_iids", auctionId + "");
      map.put("pid", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      JSONObject resultJSON = null;
      try {
         resultJSON = TaoKeBaseUtil.baseRequest(map, new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
               TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
         JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
         if (response != null && response.optJSONObject("result_list") != null) {
            JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
            if (array != null) {
               for (int i = 0; i < array.size(); i++) {
                  JSONObject item = array.optJSONObject(i);
                  TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
                  if (goods != null)
                     goodsList.add(goods);
               }
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return goodsList;
   }
   /**
    * 淘宝客-推广者-官方活动信息获取
    * @Title: getActivityInfo
    * @Description:
    * @param activityMaterialId
    * @param pid
    * @param relationId
    * @return
    * String 返回类型
    * @throws
    */
   public static String getActivityInfo(String activityMaterialId, String pid, String relationId) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.activity.info.get");
      map.put("activity_material_id", activityMaterialId);
      map.put("adzone_id", pid.split("_")[3] + "");
      map.put("relation_id", relationId);
      JSONObject resultJSON = null;
      try {
         resultJSON = TaoKeBaseUtil.baseRequest(map,
               new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
         JSONObject response = resultJSON.optJSONObject("tbk_activity_info_get_response");
         if (response != null && response.optJSONObject("data") != null) {
            return response.optJSONObject("data").optString("click_url");
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
}
class QuanInfo {