From 0f704a4650edd60cea2e57778b6703509376a42c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 08 三月 2024 17:48:09 +0800 Subject: [PATCH] 京东API(大淘客补充)优化/日志优化 --- fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 158 insertions(+), 13 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java index c3ced2e..c10db1d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java @@ -4,17 +4,13 @@ import java.lang.reflect.Type; import java.math.BigDecimal; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import com.yeshi.fanli.dto.jd.*; import com.yeshi.fanli.entity.jd.JDBackUpOrder; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.taobao.SearchFilterUtil; +import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; @@ -36,6 +32,9 @@ import net.sf.json.JSONObject; public class JDApiUtil { + + final static Logger logger = LoggerFactory.getLogger("jdApiLogger"); + public static String APP_ID = "1864778416"; public static String APP_KEY = "388f5133d13a5ea290aa5c44f3ebcc00"; public static String SECRET_KEY = "e22367fc866746d98b50d47b4c521781"; @@ -228,6 +227,8 @@ * @return */ public static JDSearchResult queryByKey(JDFilter filter) { + logger.info(String.format("queryByKey:%s %s", filter.getKeyword(), StringUtil.concat(filter.getListId(), ","))); + JDSearchResult searchResult = new JDSearchResult(); List<JDGoods> list = new ArrayList<>(); @@ -293,15 +294,16 @@ json.put("owner", filter.getOwner()); System.out.println(json.toString()); + String result = ""; + JSONObject jsonDTO = new JSONObject(); jsonDTO.put("goodsReqDTO", json); - - String result = baseRequest2("jd.union.open.goods.query", null, jsonDTO); + result = baseRequest2("jd.union.open.goods.query", null, jsonDTO); System.out.println(result); JSONObject resultJson = JSONObject.fromObject(result); resultJson = resultJson.optJSONObject("jd_union_open_goods_query_response"); - if (resultJson.optInt("code") == 0) { + if (resultJson != null && resultJson.optInt("code") == 0) { result = resultJson.optString("result"); resultJson = JSONObject.fromObject(result); String message = resultJson.optString("message"); @@ -315,13 +317,33 @@ } } } - long totalCount = resultJson.optLong("totalCount"); PageEntity pageEntity = new PageEntity(); pageEntity.setTotalCount(totalCount); - searchResult.setPageEntity(pageEntity); + } else { + result = DaTaoKeApiUtil.searchJDGoods(json); + resultJson = JSONObject.fromObject(result); + if (resultJson.optInt("code") == 0) { + JSONObject data = resultJson.optJSONObject("data"); + JSONArray array = data.optJSONArray("list"); + for (int i = 0; i < array.size(); i++) { + JSONObject item = array.optJSONObject(i); + JDGoods goods = parseDaTaoKeJDGoods(item); + if (goods != null) + list.add(goods); + } + + long totalCount = data.optLong("totalNum"); + PageEntity pageEntity = new PageEntity(); + pageEntity.setTotalCount(totalCount); + searchResult.setPageEntity(pageEntity); + } + System.out.printf(result); + } + + searchResult.setGoodsList(list); return searchResult; } @@ -470,6 +492,124 @@ return goods; } + + + private static JDGoods parseDaTaoKeJDGoods(JSONObject json) { + JDGoods goods = new JDGoods(); + + // 浣i噾淇℃伅 + BigDecimal commissionShare = new BigDecimal(json.optString("commissionShare")); + if (commissionShare.compareTo(new BigDecimal(0)) > 0) { + JDCommissionInfo commissionInfo = new JDCommissionInfo(); + commissionInfo.setCommission(new BigDecimal(json.optString("commission"))); + commissionInfo.setCommissionShare(commissionShare); + goods.setCommissionInfo(commissionInfo); + } else { + return null; + } + + goods.setComments(json.optLong("comments")); + goods.setBrandCode(json.optString("brandCode")); + goods.setBrandName(json.optString("brandName")); + goods.setGoodCommentsShare(new BigDecimal(json.optString("goodCommentsShare"))); + goods.setInOrderCount30Days(json.optLong("inOrderCount30Days")); + goods.setOwner(json.optString("owner")); + goods.setMaterialUrl(json.optString("materialUrl")); + goods.setSkuId(json.optLong("skuId")); + goods.setSkuName(json.optString("skuName")); + goods.setIsHot(json.optInt("isHot")); + + // 浠锋牸淇℃伅 + goods.setPrice(new BigDecimal(json.optString("price"))); + + // 搴楅摵淇℃伅 + JDShopInfo jdshopInfo = new JDShopInfo(); + jdshopInfo.setShopId(json.optInt("shopId")); + jdshopInfo.setShopName(json.optString("shopName")); + goods.setShopInfo(jdshopInfo); + + // 鍒嗙被淇℃伅 + JDCategoryInfo categoryInfo = new JDCategoryInfo(); + categoryInfo.setCid1(json.optLong("cid1")); + categoryInfo.setCid1Name(json.optString("cid1Name")); + categoryInfo.setCid2(json.optLong("cid2")); + categoryInfo.setCid2Name(json.optString("cid2Name")); + categoryInfo.setCid3(json.optLong("cid3")); + categoryInfo.setCid3Name(json.optString("cid3Name")); + goods.setCategoryInfo(categoryInfo); + + // 鍥剧墖淇℃伅 + List<String> imageList = new ArrayList<>(); + JSONArray imagesArray = json.optJSONArray("imageUrlList"); + for (int i = 0; i < imagesArray.size(); i++) { + imageList.add(imagesArray.optString(i)); + } + goods.setImageList(imageList); + + if (imageList.size() > 0) { + goods.setPicUrl(imageList.get(0)); + } + + BigDecimal price = new BigDecimal(json.optString("price")); + // 鎷艰喘淇℃伅 + Object pinGouInfo = json.get("pinGouInfo"); + if (pinGouInfo != null) { + JSONObject pinGouInfoJson = JSONObject.fromObject(pinGouInfo); + if (!pinGouInfoJson.isEmpty()) { + JDPingouInfo jdPinGouInfo = new JDPingouInfo(); + price = new BigDecimal(pinGouInfoJson.optString("pingouPrice")); + jdPinGouInfo.setPingouPrice(price); + jdPinGouInfo.setPingouTmCount(pinGouInfoJson.optLong("pingouTmCount")); + jdPinGouInfo.setPingouUrl(pinGouInfoJson.optString("pingouUrl")); + jdPinGouInfo.setTotalCount(pinGouInfoJson.optLong("totalCount")); + jdPinGouInfo.setPingouEndTime(pinGouInfoJson.optLong("pingouEndTime")); + jdPinGouInfo.setPingouStartTime(pinGouInfoJson.optLong("pingouStartTime")); + goods.setPinGouInfo(jdPinGouInfo); + } + } + + // 鍒镐俊鎭� + Object coupon = json.get("couponInfo"); + if (coupon != null) { + JSONArray couponArray = json.optJSONArray("couponList"); + if (couponArray != null) { + List<JDCouponInfo> couponInfoList = new ArrayList<>(); + for (int i = 0; i < couponArray.size(); i++) { + JDCouponInfo couponInfo = parseJDCouponInfo(couponArray.optJSONObject(i)); + if (couponInfo != null) + couponInfoList.add(couponInfo); + } + + // 鏍规嵁娑堣垂鏉′欢鎺掑簭 + Comparator<JDCouponInfo> cm = new Comparator<JDCouponInfo>() { + @Override + public int compare(JDCouponInfo o1, JDCouponInfo o2) { + return o1.getQuota().compareTo(o2.getQuota()); + } + }; + Collections.sort(couponInfoList, cm); + // if (couponInfoList.size() > 0) { + // // 璁剧疆鍒镐俊鎭负鏈�鎺ヨ繎鐨勪竴涓� + // for (int i = couponInfoList.size() - 1; i >= 0; i--) { + // if + // (couponInfoList.get(i).getQuota().compareTo(goods.getPrice()) + // <= 0) { + // goods.setCouponInfo(couponInfoList.get(i)); + // break; + // } + // } + // if (goods.getCouponInfo() == null) + // goods.setCouponInfo(couponInfoList.get(0)); + // } + // + goods.setCouponInfoList(couponInfoList); + + } + } + + return goods; + } + /** * 鑾峰彇鎺ㄥ箍鍟嗗搧淇℃伅鎺ュ彛 @@ -823,4 +963,9 @@ System.out.println(result); } + public static void main(String[] args) { + List<Long> ids=new ArrayList<>(); + ids.add(100067115976L); + } + } -- Gitblit v1.8.0