admin
2024-12-06 3b6c47aa75711761a4994c737d7432bdf8743613
京东商品ID格式转换
35个文件已修改
1个文件已删除
415 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/GoodsEvaluateAdminController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConsumerControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/ConsumerController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/SearchController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDFilter.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/goods/jd/NYouHuiGoods.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/jd/JDGoods.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/JDGoodsUpdateJob.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/TaoBaoOrderUpdateJob.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/JDCommonTemplateContentServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/cache/JDGoodsCacheUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/CommonGoodsFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/CommonOrderGoodsFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOLijinFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/goods/jd/NYouHuiUtil.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/GoodsEvaluateAdminController.java
@@ -758,7 +758,7 @@
                    return;
                }
            } else if (commonGoods.getGoodsType() == Constant.SOURCE_TYPE_JD) {
                JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong( commonGoods.getGoodsId()));
                JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(commonGoods.getGoodsId());
                goodsDetail = GoodsDetailVOFactory.convertJDGoods(goodsInfo, params);
            } else if (commonGoods.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
                PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(commonGoods.getGoodsId());
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java
@@ -94,7 +94,7 @@
            List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId);
            if (list != null && list.size() > 0) {
                List<String> listIdTB = new ArrayList<>();
                List<Long> listIdJD = new ArrayList<Long>();
                List<String> listIdJD = new ArrayList<>();
                List<Long> listIdPDD = new ArrayList<Long>();
                for (int i = 0; i < list.size(); i++) {
@@ -111,7 +111,7 @@
                    if (Constant.SOURCE_TYPE_TAOBAO == goodsType) {
                        listIdTB.add(commonGoods.getGoodsId());
                    } else if (Constant.SOURCE_TYPE_JD == goodsType) {
                        listIdJD.add(Long.parseLong(commonGoods.getGoodsId()));
                        listIdJD.add(commonGoods.getGoodsId());
                    } else if (Constant.SOURCE_TYPE_PDD == goodsType) {
                        listIdPDD.add(Long.parseLong(commonGoods.getGoodsId()));
                    }
@@ -132,7 +132,7 @@
                if (listIdJD.size() > 0) {
                    try {
                        JDFilter filter = new JDFilter();
                        filter.setListId(listIdJD);
                        filter.setListItemId(listIdJD);
                        filter.setPageIndex(1);
                        filter.setPageSize(100);
                        JDSearchResult result = JDApiUtil.queryByKey(filter);
fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java
@@ -192,7 +192,7 @@
            case Constant
                    .SOURCE_TYPE_JD:
                JDGoods jdGoods = getJDGoods(Long.parseLong(goodsId));
                JDGoods jdGoods = getJDGoods(goodsId);
                goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertJDGoods(jdGoods, paramsDTO));
                extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/" + goodsId + ".html");
                ThreadUtil.run(new Runnable() {
@@ -438,10 +438,10 @@
        return null;
    }
    private JDGoods getJDGoods(Long id) {
    private JDGoods getJDGoods(String id) {
        JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id); // 高级接口
        if (jdGoods == null) {
            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
//            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
            // jdGoods = JDApiUtil.getGoodsDetail(id); // 普通接口
        }
        return jdGoods;
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java
@@ -463,16 +463,4 @@
    }
    private boolean checkCanUsedJD(Long goodsId, BigDecimal priceLimit) {
        JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (goods == null)
            return false;
        BigDecimal quanPrice = JDUtil.getCouponPrice(goods);
        if (quanPrice.compareTo(priceLimit) <= 0)
            return true;
        return false;
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConsumerControllerV2.java
@@ -134,9 +134,9 @@
            }
            if (goodsType == Constant.SOURCE_TYPE_JD) {
                JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
                JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
                if (jdGoods == null) {
                    jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong(goodsId));
                    jdGoods = JDApiUtil.getGoodsDetail(goodsId);
                }
                if (jdGoods == null) {
                    out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -1157,7 +1157,7 @@
                    configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), system), taoBaoLink.getGoods(),
                    TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
        } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsVO.getGoodsId()));
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
            if (jdGoods == null) {
                return null;
            }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -742,7 +742,7 @@
     * @param out
     */
    @RequestMapping(value = "getDetailJD")
    public void getDetialJD(AcceptData acceptData, Long id, Long uid, String from, PrintWriter out) {
    public void getDetialJD(AcceptData acceptData, String id, Long uid, String from, PrintWriter out) {
        // uid=2255993L;
        // 系统验证
        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
@@ -754,7 +754,7 @@
        JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id); // 高级接口
        if (jdGoods == null) {
            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
//            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
            // jdGoods = JDApiUtil.getGoodsDetail(id); // 普通接口
        }
@@ -908,7 +908,7 @@
        }
        // 图文详情
        extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/" + id + ".html");
        extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/" + jdGoods.getSpuid() + ".html");
        // 测试
        SystemClientParams params = systemClientParamsService.getSystemClientParamsBySystemAndKey(system,
@@ -1869,7 +1869,7 @@
     * @param source
     * @param out
     */
    private void getJDLinkWithoutFanLi(AcceptData acceptData, Long id, String couponUrl, String source, PrintWriter out) {
    private void getJDLinkWithoutFanLi(AcceptData acceptData, String id, String couponUrl, String source, PrintWriter out) {
        JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(id);
        if (goods == null) {
            out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
@@ -1941,10 +1941,10 @@
     * @param out
     */
    @RequestMapping(value = "getJDLink")
    public void getJDLink(AcceptData acceptData, Long uid, Long id, String couponUrl, String source, PrintWriter out) {
    public void getJDLink(AcceptData acceptData, Long uid, String id, String couponUrl, String source, PrintWriter out) {
        if (id == null || id <= 0) {
        if (StringUtil.isNullOrEmpty(id)) {
            out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空"));
            return;
        }
@@ -1983,8 +1983,7 @@
        }
        String jumpLink = null;
        String materialId = "https://item.jd.com/" + id + ".html";
        String materialId = JDUtil.getMaterialId(id);
        String pid = pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.fanli);
        if (StringUtil.isNullOrEmpty(couponUrl)) {
@@ -2355,7 +2354,7 @@
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(goodsId));
            JDGoods goods = JDApiUtil.getGoodsDetail(goodsId);
            if (goods == null) {
                data.put("extend", false);
                data.put("url", String.format("https://item.m.jd.com/product/%s.html", goodsId));
@@ -2416,7 +2415,7 @@
        // 分离各个平台的商品信息
        List<String> tbGoodsList = new ArrayList<>();
        List<Long> jdGoodsList = new ArrayList<>();
        List<String> jdGoodsList = new ArrayList<>();
        List<Long> pddGoodsList = new ArrayList<>();
        List<String> keyList = new ArrayList<>();
@@ -2426,7 +2425,7 @@
            if (cg.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
                tbGoodsList.add(cg.getGoodsId());
            } else if (cg.getGoodsType() == Constant.SOURCE_TYPE_JD) {
                jdGoodsList.add(Long.parseLong(cg.getGoodsId()));
                jdGoodsList.add(cg.getGoodsId());
            } else if (cg.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
                pddGoodsList.add(Long.parseLong(cg.getGoodsId()));
            }
@@ -2457,7 +2456,7 @@
        if (jdGoodsList.size() > 0) {
            List<JDGoods> goodsList = JDApiUtil.getGoodsDetail(jdGoodsList);
            for (JDGoods goods : goodsList) {
                tempGoodsList.put(goods.getSkuId() + "-" + Constant.SOURCE_TYPE_JD,
                tempGoodsList.put(goods.getItemId() + "-" + Constant.SOURCE_TYPE_JD,
                        GoodsDetailVOFactory.convertJDGoods(goods, params));
            }
        }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -1031,7 +1031,7 @@
        boolean hasCoupon = false;
        if (goodsId != null) {
            JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(goodsId));
            JDGoods goods = JDApiUtil.getGoodsDetail(goodsId);
            if (goods != null) {
                count = 1;
                goodsList.add(goods);
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -243,7 +243,7 @@
        // 京东
        if (goodsType == Constant.SOURCE_TYPE_JD) {
            createJDShare(acceptData, uid, Long.parseLong(goodsId), source, needGoods, out);
            createJDShare(acceptData, uid, goodsId, source, needGoods, out);
            return;
        }
@@ -773,7 +773,7 @@
     * @param source
     * @param out
     */
    public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
    public void createJDShare(AcceptData acceptData, Long uid, String goodsId, String source, boolean needGoods,
                              PrintWriter out) {
        JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (jdGoods == null) {
@@ -1629,7 +1629,7 @@
        }
        if (goodsType == Constant.SOURCE_TYPE_JD) {
            createJDViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
            createJDViewText(acceptData.getSystem(), goodsType, uid, template, goodsId, hasCoupon, out);
            return;
        }
@@ -1728,7 +1728,7 @@
     * @param hasCoupon
     * @param out
     */
    private void createJDViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
    private void createJDViewText(SystemEnum system, Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon,
                                  PrintWriter out) {
        JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (goods == null) {
@@ -2234,7 +2234,7 @@
                goodsDetail = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (goods != null) {
                goodsDetail = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO);
            }
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -426,7 +426,7 @@
     * @param out
     */
    @RequestMapping(value = "getJDGoodsDetail")
    public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
    public void getJDGoodsDetail(final AcceptData acceptData, final String id, String uid, String callback,
                                 PrintWriter out) {
        if (id == null) {
            out.print(JsonUtil.loadFalseResult(1, "请上传id"));
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/ConsumerController.java
@@ -119,9 +119,9 @@
            }
            if (goodsType == Constant.SOURCE_TYPE_JD) {
                JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
                JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
                if (jdGoods == null) {
                    jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong(goodsId));
                    jdGoods = JDApiUtil.getGoodsDetail(goodsId);
                }
                if (jdGoods == null) {
                    out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java
@@ -268,7 +268,7 @@
     * @param out
     */
    @RequestMapping(value = "getGoodsDetial")
    public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Long uid,
    public void getGoodsDetial(WXMPAcceptData acceptData, String goodsId, Integer goodsType, String from, Long uid,
                               PrintWriter out) {
        if (goodsType == null || goodsType < 2 || goodsType > 3) {
            out.print(JsonUtil.loadFalseResult(1, "请传递正确平台参数"));
@@ -283,7 +283,7 @@
        /*-------- 拼多多商品  -------*/
        if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) {
            getDetialPDD(acceptData, goodsId, uid, from, out);
            getDetialPDD(acceptData, Long.parseLong(goodsId), uid, from, out);
            return;
        }
    }
@@ -297,10 +297,10 @@
     * @param from
     * @param out
     */
    private void getDetialJD(WXMPAcceptData acceptData, Long id, Long uid, String from, PrintWriter out) {
    private void getDetialJD(WXMPAcceptData acceptData, String id, Long uid, String from, PrintWriter out) {
        JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id); // 高级接口
        if (jdGoods == null) {
            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
//            jdGoods = JDUtil.getGoodsDetail(id); // 爬取网页
            // jdGoods = JDApiUtil.getGoodsDetail(id); // 普通接口
        }
@@ -764,7 +764,7 @@
        String jumpLink = null;
        if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { // 京东
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (goods == null) {
                out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
                return;
@@ -863,7 +863,7 @@
        }
        if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { // 京东
            createPosterJD(acceptData, Long.parseLong(goodsId), goodsType, from, type, user, inviteCode, out);
            createPosterJD(acceptData, goodsId, goodsType, from, type, user, inviteCode, out);
        } else if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) { // 拼多多
            createPosterPDD(acceptData, goodsId, goodsType, from, type, user, inviteCode, out);
        } else {
@@ -874,7 +874,7 @@
    /**
     * 创建京东分享海报
     */
    private void createPosterJD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
    private void createPosterJD(WXMPAcceptData acceptData, String goodsId, Integer goodsType, String from, Integer type,
                                UserInfo user, String inviteCode, PrintWriter out) {
        JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (jdGoods == null) {
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/SearchController.java
@@ -141,10 +141,10 @@
            }
        }
        if (!StringUtil.isNullOrEmpty(jdId)) {
            JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(jdId));
            JDGoods goods = JDApiUtil.getGoodsDetail(jdId);
            if (goods != null) {
                // 高级接口 -- 信息更完整
                JDGoods jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(jdId));
                JDGoods jdGoods = JDApiUtil.queryGoodsDetail(jdId);
                if (jdGoods != null) {
                    commonGoods = CommonGoodsFactory.create(jdGoods);
                } else {
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDFilter.java
@@ -34,7 +34,7 @@
    private String keyword; // 关键字
    private String owner; // 商品类型:自营[g],POP[p]
    private Integer isCoupon; // 是否是优惠券商品,1:有优惠券,0:无优惠券
    private List<Long> listId; // skuid集合(一次最多支持查询100个sku),数组类型开发时记得加[]
    private List<String> listItemId; // skuid集合(一次最多支持查询100个sku),数组类型开发时记得加[]
    private Double pricefrom; // 商品价格下限
    private Double priceto; // 商品价格上限
    private Integer commissionShareStart; // 佣金比例区间开始
@@ -112,12 +112,12 @@
        this.isCoupon = isCoupon;
    }
    public List<Long> getListId() {
        return listId;
    public List<String> getListItemId() {
        return listItemId;
    }
    public void setListId(List<Long> listId) {
        this.listId = listId;
    public void setListItemId(List<String> listItemId) {
        this.listItemId = listItemId;
    }
    public Double getPricefrom() {
fanli/src/main/java/com/yeshi/fanli/entity/goods/jd/NYouHuiGoods.java
@@ -29,13 +29,13 @@
    @Field
    private String className;
    @Field
    private List<Long> skuList;// 商品列表
    private List<String> skuList;// 商品列表
    public List<Long> getSkuList() {
    public List<String> getSkuList() {
        return skuList;
    }
    public void setSkuList(List<Long> skuList) {
    public void setSkuList(List<String> skuList) {
        this.skuList = skuList;
    }
fanli/src/main/java/com/yeshi/fanli/entity/jd/JDGoods.java
@@ -37,6 +37,7 @@
    private String picUrl;// 商品图片
    private Integer isHot;// 是否爆款,1:是,0:否
    private Long spuid;// spuid,其值为同款商品的主skuid
    private String itemId;
    private String brandCode;// 品牌code
    private String brandName;// 品牌名
    private String owner;// g=自营,p=pop
@@ -221,4 +222,12 @@
    public void setCommissionPlus(BigDecimal commissionPlus) {
        this.commissionPlus = commissionPlus;
    }
    public String getItemId() {
        return itemId;
    }
    public void setItemId(String itemId) {
        this.itemId = itemId;
    }
}
fanli/src/main/java/com/yeshi/fanli/job/JDGoodsUpdateJob.java
@@ -1,21 +1,9 @@
package com.yeshi.fanli.job;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import com.yeshi.fanli.service.inter.goods.jd.NYouHuiService;
import org.springframework.stereotype.Component;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.fanli.entity.goods.jd.NYouHuiGoods;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.jd.NYouHuiService;
import com.yeshi.fanli.util.StringUtil;
import org.yeshi.utils.TimeUtil;
import com.yeshi.fanli.util.goods.jd.NYouHuiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import javax.annotation.Resource;
/**
 * 京东商品更新
@@ -28,53 +16,5 @@
    @Resource
    private NYouHuiService nyouHuiService;
    /**
     * 更新内优惠最近几天的商品
     *
     * @param param
     * @return
     * @throws Exception
     */
    @XxlJob("nyhLatest2DayGoodsUpdateHandler")
    public ReturnT<String> updateNYHLatest2DayGoods(String param) throws Exception {
        long startTime = TimeUtil.convertToTimeTemp(
                TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24L, "yyyy-MM-dd"), "yyyy-MM-dd");
        List<String> list = NYouHuiUtil.getClasses();
        for (String name : list) {
            if (name.trim().equalsIgnoreCase("未分类"))
                continue;
            try {
                List<NYouHuiGoods> goodsList = NYouHuiUtil.listByClassName(name,
                        StringUtil.isNullOrEmpty(param) ? 1 : Integer.parseInt(param));
                for (NYouHuiGoods goods : goodsList) {
                    try {
                        if (TimeUtil.convertToTimeTemp(goods.getPublishTime(), "yyyy-MM-dd") >= startTime) {
                            NYouHuiGoods old = nyouHuiService.selectByName(goods.getName());
                            if (old == null
                                    || TimeUtil.convertToTimeTemp(old.getPublishTime(), "yyyy-MM-dd") < startTime) {
                                NYouHuiGoods goodsDetail = NYouHuiUtil.getGoodsDetail(goods.getSourceUrl());
                                List<Long> skuList = new ArrayList<>();
                                for (String link : goodsDetail.getLinkList()) {
                                    String skuId = JDUtil.getJDGoodsIdByUJD(link);
                                    skuList.add(Long.parseLong(skuId));
                                }
                                goodsDetail.setSkuId(skuList.get(0));
                                goodsDetail.setSkuList(skuList);
                                goodsDetail.setClassName(name);
                                nyouHuiService.addGoods(goodsDetail);
                                Thread.sleep(2000 + (int) (Math.random() * 5) * 1000);
                            }
                        }
                    } catch (Exception e) {
                        LogHelper.errorDetailInfo(e, "京东-内优惠出错", goods.getSourceUrl());
                    }
                }
            } catch (Exception e) {
                LogHelper.errorDetailInfo(e, "京东-内优惠出错", name);
            }
        }
        return ReturnT.SUCCESS;
    }
}
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/TaoBaoOrderUpdateJob.java
@@ -89,6 +89,9 @@
            for (TaoBaoOrder order : list) {
                tradeIds.add(order.getTradeId());
            }
            if(tradeIds.isEmpty()){
                return;
            }
            List<TaoBaoOrderBackUp> orderBackUps = taoBaoOrderBackUpDao.listByIds(tradeIds);
            List<TaoBaoOrder> orderList = new ArrayList<>();
            for (TaoBaoOrderBackUp backUp : orderBackUps) {
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -445,7 +445,7 @@
                throw new GoodsEvaluateException(1, "商品已下架");
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
            jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
@@ -631,7 +631,7 @@
        } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
            String couponUrl = null;
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsDetailVO.getGoodsId()));
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
            if (couponInfo != null) {
                couponUrl = couponInfo.getLink();
@@ -681,7 +681,7 @@
                throw new GoodsEvaluateException(1, "商品已下架");
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            goodsDetail = GoodsDetailVOFactory.convertJDGoods(goodsInfo, params);
        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
@@ -1976,7 +1976,7 @@
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (goodsInfo != null) {
                vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO);
            }
@@ -2343,7 +2343,7 @@
                    }
                    break;
                case "京东": {
                    JDGoods jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(id));
                    JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id);
                    if (jdGoods != null && jdGoods.getImageList() != null) {
                        GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
                        goods = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
@@ -2728,7 +2728,7 @@
            return;
        }
        for (SystemEnum system : SystemEnum.values()) {
            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId() + "", system);
            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getItemId() + "", system);
            if (queryExist == null || queryExist.size() == 0) {
                continue;
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/JDCommonTemplateContentServiceImpl.java
@@ -46,10 +46,10 @@
    }
    private JDSearchResult filterGoods(JDSearchResult result) {
        List<Long> skuIds = new ArrayList<>();
        List<String> skuIds = new ArrayList<>();
        if (result != null && result.getGoodsList() != null && result.getGoodsList().size() > 0) {
            for (JDGoods goods : result.getGoodsList()) {
                skuIds.add(goods.getSkuId());
                skuIds.add(goods.getItemId());
            }
            List<JDGoods> goodsList = JDApiUtil.listGoodsDetail(skuIds);
            result.setGoodsList(goodsList);
fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java
@@ -176,9 +176,9 @@
     * @return
     */
    private List<JDGoods> filterJDGoods(List<JDGoods> goodsList) {
        List<Long> skuIds = new ArrayList<>();
        List<String> skuIds = new ArrayList<>();
        for (JDGoods goods : goodsList) {
            skuIds.add(goods.getSkuId());
            skuIds.add(goods.getItemId());
        }
        List<JDGoods> newGoodsList = JDApiUtil.listGoodsDetail(skuIds);
        if (newGoodsList != null && newGoodsList.size() > 0)
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -1181,7 +1181,7 @@
                    cog.getGoodsType());
            if (commonGoodsList.size() <= 0)// 不存在就插入商品
            {
                JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId());
                JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId()+"");
                if (goods == null) {
                    goods = JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
                }
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java
@@ -164,9 +164,9 @@
            if (goodsType == Constant.SOURCE_TYPE_JD) {
                // 京东
                JDGoods jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(auctionId));
                JDGoods jdGoods = JDApiUtil.queryGoodsDetail(auctionId);
                if (jdGoods == null) {
                    jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong( auctionId));
                    jdGoods = JDApiUtil.getGoodsDetail( auctionId);
                }
                if (jdGoods == null) {
                    throw new UserGoodsStorageException(1, auctionId + "商品已下架");
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java
@@ -254,7 +254,7 @@
        CommonGoods convertGoods = null;
        if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = redisManager.getJDGoods(Long.parseLong( goodsId));
            JDGoods jdGoods = redisManager.getJDGoods(goodsId);
            if (jdGoods == null) {
                throw new UserShareGoodsRecordException(1, "商品已下架");
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java
@@ -122,7 +122,7 @@
                throw new UserCloudGoodsException(1, goodsId + "商品已下架");
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) { // 京东
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong( goodsId));
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (goods == null)
                throw new UserCloudGoodsException(1, goodsId + "未找到商品信息");
            commonGoods = CommonGoodsFactory.create(goods);
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java
@@ -826,7 +826,7 @@
            if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
                sendTaoBaoGoods(user, robotId, wxId, goodsId, relationId, listOpen, result.getId());
            } else if (goodsType == Constant.SOURCE_TYPE_JD) {
                sendJDGoods(user, robotId, wxId, Long.parseLong(goodsId), relationId, listOpen, result.getId());
                sendJDGoods(user, robotId, wxId, goodsId, relationId, listOpen, result.getId());
            } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
                sendPDDGoods(user, robotId, wxId,  goodsId, relationId, listOpen, result.getId());
            } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
@@ -928,7 +928,7 @@
     * @param listOpen
     * @throws UserCloudException
     */
    private void sendJDGoods(UserInfo user, int robotId, String wxId, Long goodsId, String relationId,
    private void sendJDGoods(UserInfo user, int robotId, String wxId, String goodsId, String relationId,
                             List<UserCloudGroup> listOpen, String pid) throws UserCloudException {
        JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (jdGoods == null)
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -470,11 +470,11 @@
            JDGoods jdGoods = null;
            try {
                // 防止高级接口被收回
                jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
                jdGoods = JDApiUtil.queryGoodsDetail(simpleGoods.getGoodsId());
            } catch (Exception e) {
            }
            if (jdGoods == null) {
                jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
                jdGoods = JDApiUtil.getGoodsDetail(simpleGoods.getGoodsId());
            }
            if (jdGoods != null) {
                commonGoods = CommonGoodsFactory.create(jdGoods);
fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java
@@ -626,7 +626,7 @@
        return JsonUtil.jsonToList(value, clazz);
    }
    public JDGoods getJDGoods(long goodsId) {
    public JDGoods getJDGoods(String goodsId) {
        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.jingDongGoods, goodsId + "");
        String value = getCommonString(key);
        if (StringUtil.isNullOrEmpty(value)) {
fanli/src/main/java/com/yeshi/fanli/util/cache/JDGoodsCacheUtil.java
@@ -24,7 +24,7 @@
     * @param goods
     */
    public void saveGoodsInfo(JDGoods goods) {
        if (goods == null || goods.getSkuId() == null) {
        if (goods == null || goods.getItemId() == null) {
            return;
        }
        // 保存20分钟
@@ -38,7 +38,7 @@
     * @param goodsId
     * @return
     */
    public JDGoods getGoodsInfo(long goodsId){
    public JDGoods getGoodsInfo(String goodsId){
        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDGoods, goodsId + "");
        String value = redisManager.getCommonString(key);
        if (!StringUtil.isNullOrEmpty(value)) {
@@ -47,7 +47,7 @@
        
        JDGoods goods = JDApiUtil.queryGoodsDetail(goodsId); // 高级接口
        if (goods == null) {
            goods = JDUtil.getGoodsDetail(goodsId); // 爬取网页
//            goods = JDUtil.getGoodsDetail(goodsId); // 爬取网页
            //jdGoods = JDApiUtil.getGoodsDetail(goodsId); // 普通接口
        }
        
fanli/src/main/java/com/yeshi/fanli/util/factory/CommonGoodsFactory.java
@@ -140,7 +140,7 @@
            cg.setSellerName(shopInfo.getShopName() == null ? "" : shopInfo.getShopName());
        }
        cg.setGoodsId(goods.getSkuId()+"");
        cg.setGoodsId(goods.getItemId()+"");
        cg.setTitle(goods.getSkuName());
        cg.setGoodsType(CommonGoods.GOODS_TYPE_JD);
        cg.setPicture(goods.getPicUrl());
fanli/src/main/java/com/yeshi/fanli/util/factory/CommonOrderGoodsFactory.java
@@ -53,7 +53,7 @@
    public static CommonOrderGoods create(JDGoods jdGoods) {
        CommonOrderGoods goods = new CommonOrderGoods();
        goods.setGoodsId(jdGoods.getSkuId() + "");
        goods.setGoodsId(jdGoods.getItemId() + "");
        goods.setCreateTime(new Date());
        goods.setGoodsType(Constant.SOURCE_TYPE_JD);
        if (jdGoods.getImageList() != null && jdGoods.getImageList().size() > 0)
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java
@@ -612,7 +612,7 @@
    public static GoodsDetailVO convertJDGoods(JDGoods goods, GoodsMoneyConfigParamsDTO params) {
        GoodsDetailVO goodsInfo = new GoodsDetailVO();
        goodsInfo.setGoodsType(Constant.SOURCE_TYPE_JD);
        goodsInfo.setGoodsId(goods.getSkuId() + "");
        goodsInfo.setGoodsId(goods.getItemId() + "");
        goodsInfo.setTitle(goods.getSkuName());
        goodsInfo.setSalesType(1); // 默认月销量
        goodsInfo.setPicUrl(goods.getPicUrl());
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOLijinFactory.java
@@ -222,7 +222,7 @@
    public static GoodsInfoVO convertJDGoods(JDGoods goods, GoodsMoneyConfigParamsDTO params) {
        GoodsInfoVO goodsInfo = new GoodsInfoVO();
        goodsInfo.setGoodsType(Constant.SOURCE_TYPE_JD);
        goodsInfo.setGoodsId(goods.getSkuId() + "");
        goodsInfo.setGoodsId(goods.getItemId() + "");
        goodsInfo.setTitle(goods.getSkuName());
        goodsInfo.setSalesType(1); // 默认月销量
        goodsInfo.setImgList(goods.getImageList());
fanli/src/main/java/com/yeshi/fanli/util/goods/jd/NYouHuiUtil.java
File was deleted
fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java
@@ -173,13 +173,13 @@
        return resultJson.optJSONObject("data").optString("shortURL");
    }
    public static JDGoods queryGoodsDetail(Long skuId) {
        List<Long> skuIdList = new ArrayList<>();
        skuIdList.add(skuId);
    public static JDGoods queryGoodsDetail(String itemId) {
        List<String> itemIdList = new ArrayList<>();
        itemIdList.add(itemId);
        JDFilter filter = new JDFilter();
        filter.setPageIndex(1);
        filter.setPageSize(20);
        filter.setListId(skuIdList);
        filter.setListItemId(itemIdList);
        JDSearchResult searchResult = queryByKey(filter);
        if (searchResult != null) {
            List<JDGoods> list = searchResult.getGoodsList();
@@ -189,11 +189,11 @@
        return null;
    }
    public static List<JDGoods> queryGoodsDetail(List<Long> skuIdList) {
    public static List<JDGoods> queryGoodsDetail(List<String> itemIdList) {
        JDFilter filter = new JDFilter();
        filter.setPageIndex(1);
        filter.setPageSize(20);
        filter.setListId(skuIdList);
        filter.setListItemId(itemIdList);
        JDSearchResult searchResult = queryByKey(filter);
        if (searchResult != null) {
            List<JDGoods> list = searchResult.getGoodsList();
@@ -206,12 +206,12 @@
    /**
     * 通过商品搜索接口批量获取详情
     *
     * @param skuIds
     * @param itemIds
     * @return
     */
    public static List<JDGoods> listGoodsDetail(List<Long> skuIds) {
    public static List<JDGoods> listGoodsDetail(List<String> itemIds) {
        JDFilter filter = new JDFilter();
        filter.setListId(skuIds);
        filter.setListItemId(itemIds);
        JDSearchResult result = queryByKey(filter);
        return result.getGoodsList();
    }
@@ -223,7 +223,7 @@
     * @return
     */
    public static JDSearchResult queryByKey(JDFilter filter) {
        logger.info(String.format("queryByKey:%s  %s", filter.getKeyword(), StringUtil.concat(filter.getListId(), ",")));
        logger.info(String.format("queryByKey:%s  %s", filter.getKeyword(), StringUtil.concat(filter.getListItemId(), ",")));
        JDSearchResult searchResult = new JDSearchResult();
@@ -231,6 +231,8 @@
        JSONObject json = new JSONObject();
        json.put("pageIndex", filter.getPageIndex());
        json.put("pageSize", filter.getPageSize());
//        json.put("sceneId", 1);
        if (filter.getCid1() != null)
            json.put("cid1", filter.getCid1());
@@ -265,8 +267,8 @@
        if (filter.getIsCoupon() != null)
            json.put("isCoupon", filter.getIsCoupon());
        if (filter.getListId() != null)
            json.put("skuIds", "[" + StringUtil.concat(filter.getListId(), ",") + "]");
        if (filter.getListItemId() != null)
            json.put("itemIds", new Gson().toJson(filter.getListItemId()));
        if (filter.getIsPG() != null)
            json.put("isPG", filter.getIsPG());
@@ -305,6 +307,7 @@
            String message = resultJson.optString("message");
            if ("SUCCESS".equalsIgnoreCase(message)) {
                JSONArray array = resultJson.optJSONArray("data");
                System.out.println(array.toString());
                if (array != null) {
                    for (int i = 0; i < array.size(); i++) {
                        JDGoods goods = parseJDGoods(array.optJSONObject(i));
@@ -377,7 +380,7 @@
        } else {
            return null;
        }
        goods.setItemId(json.optString("itemId"));
        goods.setComments(json.optLong("comments"));
        goods.setBrandCode(json.optString("brandCode"));
        goods.setBrandName(json.optString("brandName"));
@@ -386,6 +389,7 @@
        goods.setOwner(json.optString("owner"));
        goods.setMaterialUrl(json.optString("materialUrl"));
        goods.setSkuId(json.optLong("skuId"));
        goods.setSpuid(json.optLong("spuid"));
        goods.setSkuName(json.optString("skuName"));
        goods.setIsHot(json.optInt("isHot"));
@@ -610,13 +614,13 @@
    /**
     * 获取推广商品信息接口
     *
     * @param skuIdList
     * @param itemIdList
     * @return
     */
    public static List<JDGoods> getGoodsDetail(List<Long> skuIdList) {
    public static List<JDGoods> getGoodsDetail(List<String> itemIdList) {
        List<JDGoods> list = new ArrayList<>();
        JSONObject json = new JSONObject();
        json.put("skuIds", StringUtil.concat(skuIdList, ","));
        json.put("itemIds", StringUtil.concat(itemIdList, ","));
        String result = baseRequest2("jd.union.open.goods.promotiongoodsinfo.query", null, json);
        System.out.println(result);
        JSONObject resultJson = JSONObject.fromObject(result);
@@ -774,9 +778,9 @@
        return list;
    }
    public static JDGoods getGoodsDetail(Long skuId) {
        List<Long> skuIdList = new ArrayList<>();
        skuIdList.add(skuId);
    public static JDGoods getGoodsDetail(String itemId) {
        List<String> skuIdList = new ArrayList<>();
        skuIdList.add(itemId);
        List<JDGoods> list = getGoodsDetail(skuIdList);
        if (list != null && list.size() > 0)
            return list.get(0);
@@ -960,12 +964,9 @@
    }
    public static void main(String[] args) {
        JDFilter filter=new JDFilter();
        filter.setKeyword("花卉");
        filter.setPageIndex(1);
        filter.setPageSize(20);
        queryByKey(filter);
        getGoodsDetail(100007520546L);
        JDGoods goods =     queryGoodsDetail("KXexrdv7wvWFvE1JNpVMEjdo_3KLpG8mAYwxxKXwFw0");
        System.out.println(goods.toString());
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -970,6 +970,16 @@
        return urlList;
    }
    public static String getMaterialId(String id){
        if(NumberUtil.isNumeric(id)){
            return String.format("https://item.jd.com/%s.html", id);
        }else{
            return String.format("https://jingfen.jd.com/detail/%s.html", id);
        }
    }
    public static void main(String[] args) throws IOException {
        System.out.printf(getJDGoodsIdByUJD("https://3.cn/1-U6tjhC"));
    }