admin
2019-08-05 35c25585cf6fea9e29574a75a03c57381cbe19e1
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
@@ -38,45 +39,7 @@
//淘宝客API接口
public class TaoKeApiUtil {
   /**
    * 按关键字和分类搜索券
    *
    * @param key
    * @param catList
    * @return
    */
   public static TaoBaoSearchResult searchCouple(String key, List<Long> catList, int page, int pageSize) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.dg.item.coupon.get");
      map.put("page_size", pageSize + "");
      map.put("page_no", page + "");
      String cate = "";
      if (catList != null && catList.size() > 10)
         catList = catList.subList(0, 10);
      if (catList != null && catList.size() > 0) {
         for (Long c : catList)
            cate += c + ",";
         if (cate.endsWith(","))
            cate = cate.substring(0, cate.length() - 1);
         map.put("cat", cate);
      }
      if (!StringUtil.isNullOrEmpty(key)) {
         map.put("q", key);
      }
      String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
      System.out.println(result);
      TaoBaoSearchResult finalResult = parseCoupleContent(result);
      if (finalResult == null)
         return null;
      PageEntity pageEntity = finalResult.getPageEntity();
      pageEntity.setPageIndex(page);
      pageEntity.setPageSize(pageSize);
      pageEntity.setTotalPage(pageEntity.getTotalCount() % pageSize == 0
            ? ((int) (pageEntity.getTotalCount() / pageSize)) : (int) (pageEntity.getTotalCount() / pageSize + 1));
      finalResult.setPageEntity(pageEntity);
      return finalResult;
   }
   // 解析券的内容
   private static TaoBaoSearchResult parseCoupleContent(String content) {
@@ -1297,41 +1260,6 @@
   }
   /**
    * TODO 按设备猜你喜欢
    *
    * @param userNickName
    * @param os
    * @param imei
    * @param idfa
    * @param ip
    * @param ua
    * @param net
    * @param pageNo
    * @param pageSize
    */
   public static void guessLikeByDevice(String userNickName, String os, String imei, String idfa, String ip, String ua,
         String net, int pageNo, int pageSize) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.item.guess.like");
      if (!StringUtil.isNullOrEmpty(userNickName))
         map.put("user_nick", userNickName);
      map.put("os", os + "");
      if (!StringUtil.isNullOrEmpty(idfa))
         map.put("idfa", idfa);
      if (!StringUtil.isNullOrEmpty(imei)) {
         map.put("imei", imei + "");
         map.put("imei_md5", StringUtil.Md5(imei));
      }
      map.put("ip", ip + "");
      map.put("ua", ua + "");
      map.put("net", net + "");
      map.put("page_no", pageNo + "");
      map.put("page_size", pageSize + "");
      String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
      System.out.println(resultStr);
   }
   /**
    * 品牌券获取
    * 
    * @param pageNo
@@ -1646,7 +1574,7 @@
      return null;
   }
   public static String getRelationId(String accessToken, String appKey, String appSecret) {
   public static String getRelationId(String accessToken, String appKey, String appSecret) throws TaoBaoAuthException {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.sc.publisher.info.save");
      map.put("session", accessToken);
@@ -1662,14 +1590,22 @@
         return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
               .optString("relation_id");
      } catch (TaoKeApiException e) {
         e.printStackTrace();
         LogHelper.error("渠道ID申请出错:" + e.getMsg());
         JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
         if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 未实名
         {
            throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
         } else {
            e.printStackTrace();
            LogHelper.error("渠道ID申请出错:" + e.getMsg());
            throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
         }
      } catch (Exception e) {
         LogHelper.error("渠道ID申请出错:" + (resultJSON != null ? resultJSON.toString() : "未知错误"));
      }
      return null;
   }
   public static String getSpecialId(String accessToken, String appKey, String appSecret) {
   public static String getSpecialId(String accessToken, String appKey, String appSecret) throws TaoBaoAuthException {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.sc.publisher.info.save");
      map.put("session", accessToken);
@@ -1685,8 +1621,17 @@
         return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
               .optString("special_id");
      } catch (TaoKeApiException e) {
         e.printStackTrace();
         LogHelper.error("会员运营ID申请出错:" + resultJSON);
         JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
         if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 未实名
         {
            throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
         } else {
            e.printStackTrace();
            LogHelper.error("会员运营ID申请出错:" + e.getMsg());
            throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
         }
      } catch (Exception e) {
         LogHelper.error("会员运营ID申请出错:" + (resultJSON != null ? resultJSON.toString() : "未知错误"));
      }
      return null;
@@ -2082,6 +2027,23 @@
      }
      return null;
   }
   public static void getCouponByAuctionId(Long auctionId) {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.itemid.coupon.get");
      map.put("platform", 2 + "");
      map.put("pid", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
      map.put("num_iids", auctionId + "");
      TaoKeAppInfo app = new TaoKeAppInfo();
      app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
      app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      try {
         JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
         System.out.print(json);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}
class QuanInfo {