admin
2019-11-16 a6f34b99ee20e528b766c8ed5a61bd9c5aa0e7ae
淘宝相似商品推荐接口优化,根据商品ID搜索商品基本信息优化
3个文件已修改
66 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -223,7 +223,7 @@
            tb = TaoBaoUtil.isAlimama(id);
            if (tb == null) {
                type = 4;
                tb = TaoBaoUtil.getTmallGoodsInfo(id);
                tb = getTaoBaoGoodsBriefFromGoodsId(id);
            }
        } else if (text.contains("http://zmnxbc.com")) { // 手机端天猫APP分享
            tb = TaoBaoUtil.parsePhoneShareUrlByTM(text);
@@ -235,7 +235,7 @@
            tb = TaoBaoUtil.isAlimama(id);
            if (tb == null) {
                type = 4;
                tb = TaoBaoUtil.getTmallGoodsInfo(id);
                tb = getTaoBaoGoodsBriefFromGoodsId(id);
            }
        } else if (text.contains("v.douyin.com")) { // 抖音
            analysisDouYin(acceptData, text, out);
@@ -246,7 +246,7 @@
            if (tb == null) {
                String goodsId = TaoBaoUtil.getGoodsIdByPhoneShareUrl(text);
                if (!StringUtil.isNullOrEmpty(goodsId)) {
                    tb = TaoBaoUtil.getTmallGoodsInfo(goodsId);
                    tb = getTaoBaoGoodsBriefFromGoodsId(goodsId);
                    if (tb != null)
                        type = 4;
                }
@@ -350,8 +350,8 @@
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            data.put("type", type);
            data.put("goods",
                    gson.toJson(GoodsDetailVOFactory.convertCommonGoods(commonGoods, new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE))));
            data.put("goods", gson.toJson(GoodsDetailVOFactory.convertCommonGoods(commonGoods,
                    new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE))));
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
@@ -385,6 +385,17 @@
        root.put("type", 1);
        root.put("data", data);
        out.print(JsonUtil.loadTrueResult(root));
    }
    private TaoBaoGoodsBrief getTaoBaoGoodsBriefFromGoodsId(String goodsId) {
        TaoBaoGoodsBrief tb = TaoBaoUtil.getTmallGoodsInfo(goodsId);
        if (tb == null && NumberUtil.isNumeric(goodsId)) {// 是数字
            tb = TaoBaoUtil.getSimpleGoodsBrief(Long.parseLong(goodsId));
            if (tb != null) {
                tb.setPictUrl(TbImgUtil.getTBSize220Img(tb.getPictUrl()));
            }
        }
        return tb;
    }
    /**
@@ -463,8 +474,8 @@
                        JSONObject data = new JSONObject();
                        data.put("type", 3);
                        data.put("goods", gson
                                .toJson(GoodsDetailVOFactory.convertTaoBao(goodsBrief, new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE))));
                        data.put("goods", gson.toJson(GoodsDetailVOFactory.convertTaoBao(goodsBrief,
                                new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE))));
                        out.print(JsonUtil.loadTrueResult(data));
                        return true;
                    }
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.util.taobao;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
import java.math.BigDecimal;
@@ -22,6 +23,7 @@
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
@@ -1853,14 +1855,34 @@
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        HttpClient client = new HttpClient();
        GetMethod gm = new GetMethod(url);
        String result = null;
        try {
            gm.setRequestHeader("user-agent",
                    "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Mobile Safari/537.36");
            gm.setRequestHeader("cache-control", "max-age=0");
            gm.setRequestHeader("sec-fetch-mode", "navigate");
            gm.setRequestHeader("sec-fetch-site", "none");
            gm.setRequestHeader("sec-fetch-user", "?1");
            gm.setRequestHeader("upgrade-insecure-requests", "1");
            gm.setRequestHeader("cookie",
                    "t=2ef08e4a12314c12dcd98d2ec480dd69; thw=cn; hng=CN%7Czh-CN%7CCNY%7C156; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0%26__ll%3D-1%26_ato%3D0; ali_ab=113.251.19.3.1554796147005.0; UM_distinctid=16b9d8257dd388-0a96f36f947888-e343166-1fa400-16b9d8257df114; WAPFDFDTGFG=%2B4cMKKP%2B8PI%2BuhLvELc2mB6zAz5Z54E%3D; _w_app_lg=0; enc=00wU0%2BKYu9Yf1tHSawG%2Bc4aMZojqg8eB6baoMr9Z8Ir4qJ6hRhMhdWQxbM71vvxv6OCsxN50T0xA1gJGIdFm7w%3D%3D; cna=Q9eYFEM1rm8CAXH7EKUDSamu; miid=769739881160810491; lgc=%5Cu6930%5Cu89C6%5Cu79D1%5Cu6280; tracknick=%5Cu6930%5Cu89C6%5Cu79D1%5Cu6280; tg=0; mt=ci=7_1; cookie2=13ad477d84d5e6659aa7855de3617163; _tb_token_=ee895586817b0; dnk=%5Cu6930%5Cu89C6%5Cu79D1%5Cu6280; v=0; _m_h5_tk=286f649add5207dfe82e770832daf1cc_1573547306314; _m_h5_tk_enc=137c39dafc279e40edc796770d3eda8f; tk_trace=oTRxOWSBNwn9dPyorMJE%2FoPdY8zZPEr%2FCrvCMS%2BG3sTRRWrQ%2BVVTl09ME1KrXdbd3QNiuPM1YZeXJrHpvLuG%2FSvA2umbWq5jqrcw%2FDpk1Lj6yQFVptx6jw71DzuBbw%2BuZLEozdKGb%2BZr85uzSnUSWfVAqZprzoB%2Bfde2IHnHJp651xghkKpmsSBgY5muhOI7FvNfc8zH1BIvygVQSEIa1bCCgy2VJl%2FkyuTXaGHb%2FAKxL566%2FLult1lRlo8RZx9s76BhXe7PTot5MPGrayPkRiqWfVdg3C7gFWRjrjjKriN47mbQazOoIM7knBX%2B3mnnmwWbCQjKiuA6I8W9ng%3D%3D; _cc_=VFC%2FuZ9ajQ%3D%3D; unb=3327215652; uc1=lng=zh_CN&tag=8&cookie16=W5iHLLyFPlMGbLDwA%2BdvAGZqLg%3D%3D&cookie15=VT5L2FSpMGV7TQ%3D%3D&cookie14=UoTbnrCeRJd%2F2g%3D%3D&pas=0&existShop=false&cookie21=VFC%2FuZ9aj38X; uc3=vt3=F8dByuWjrX8oBIwXl2Q%3D&nk2=sbdfkkkB37A%3D&id2=UNN%2F6whEupDGWQ%3D%3D&lg2=WqG3DMC9VAQiUQ%3D%3D; csg=30373d82; cookie17=UNN%2F6whEupDGWQ%3D%3D; skt=6a0617b2d0843ef4; existShop=MTU3MzgxNDAxNw%3D%3D; uc4=id4=0%40UgQ3BPth2rlXv3PxjwesD5MgnRD3&nk4=0%40s9JQzQv3gdCkG6YVO6ulkEbNug%3D%3D; _l_g_=Ug%3D%3D; sg=%E6%8A%8021; _nk_=%5Cu6930%5Cu89C6%5Cu79D1%5Cu6280; cookie1=AnRaCZfOZrWoY8u%2BoXxB8y%2FnnwnZszWqI6Bbr5BrFtM%3D; isg=BOnpxPqJkNY3p6zvIy1AdcEC-JVDtt3of1m6aoveZVAPUglk0wbtuNdAFL5BUXUg; l=dBgUvWMcqlf1dR9EBOCanurza77OSIRYYuPzaNbMi_5IT6T6q1QOkBPUkF96VfWfTVLB47_ypV99-etkZ2ejm8IpXUJsAMc.");
            client.executeMethod(gm);
            result = gm.getResponseBodyAsString();
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        String result = HttpUtil.get(url);
        JSONObject resultOBJ = JSONObject.fromObject(result);
        if (resultOBJ.optJSONObject("data") != null) {
            data = resultOBJ.optJSONObject("data");
            JSONObject item = data.optJSONObject("item");
            JSONObject seller = data.optJSONObject("seller");
            TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
            goods.setTitle(item.optString("title"));
            goods.setAuctionId(item.optLong("itemId"));
            goods.setTitle(item.optString("title"));
            if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) {
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -2110,6 +2110,23 @@
        return null;
    }
    public static void guessLikeByAuctionId(Long auctionId) {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.dg.optimus.material");
        map.put("item_id", auctionId + "");
        map.put("page_size", 20 + "");
        map.put("page_no", 1 + "");
        map.put("material_id", 13256 + "");
        JSONObject resultJSON = null;
        try {
            resultJSON = TaoKeBaseUtil.baseRequest(map, true);
            System.out.println(resultJSON);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
class QuanInfo {