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