From 1e28ac69827ff7578a418a79bd95aff2c6637f5c Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期日, 28 六月 2020 16:47:00 +0800 Subject: [PATCH] 2.1.3 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java index 5455308..ab4371c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java @@ -266,10 +266,10 @@ */ public static List<TaoBaoGoodsBrief> getBatchGoodsInfos(String ids) throws TaobaoGoodsDownException { List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); - Map<String, String> map = new HashMap<>(); map.put("method", "taobao.tbk.item.info.get"); map.put("num_iids", ids + ""); + String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); JSONObject data = JSONObject.fromObject(resultStr); // 鍟嗗搧涓嬫灦 @@ -292,6 +292,63 @@ } return goodsList; } + + + public static List<TaoBaoGoodsBrief> getBatchGoodsInfo(List<Long> listId, String ip ) + throws TaoKeApiException, TaobaoGoodsDownException { + if (listId == null || listId.size() == 0) { + throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘涓虹┖"); + } + + if (listId.size() > 40) { + throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘瓒呰繃40涓�"); + } + + StringBuffer ids = new StringBuffer(); + for (Long id : listId) { + ids.append(id + ","); + } + + return getBatchGoodsInfos(ids.substring(0, ids.length() - 1), ip); + } + + /** + * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗� + * + * @param id + * @return + */ + public static List<TaoBaoGoodsBrief> getBatchGoodsInfos(String ids, String ip) throws TaobaoGoodsDownException { + Map<String, String> map = new HashMap<>(); + map.put("method", "taobao.tbk.item.info.get"); + map.put("num_iids", ids + ""); + if (!StringUtil.isNullOrEmpty(ip)) { + map.put("ip", ip); + } + + String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); + JSONObject data = JSONObject.fromObject(resultStr); + // 鍟嗗搧涓嬫灦 + if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 15 + && data.optJSONObject("error_response").optInt("sub_code") == 50001) { + throw new TaobaoGoodsDownException(data.optJSONObject("error_response").optInt("code"), "鍟嗗搧涓嬫灦"); + } + + if (data.optJSONObject("tbk_item_info_get_response") == null) + return null; + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + + JSONArray array = data.optJSONObject("tbk_item_info_get_response").optJSONObject("results") + .optJSONArray("n_tbk_item"); + if (array != null && array.size() > 0) { + + for (int i = 0; i < array.size(); i++) { + JSONObject item = array.optJSONObject(i); + goodsList.add(parseSimpleGoodsInfo(item)); + } + } + return goodsList; + } /** * 鎼滅储鍟嗗搧璇︽儏-璇︾粏 -- Gitblit v1.8.0