admin
2019-08-03 84c07b26025cb0790d089b0d397f80b941bcdf88
Merge remote-tracking branch 'origin/div' into div

Conflicts:
fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
10个文件已修改
183 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/common/PDDCommonContentTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/pdd/UpdatePDDOrderJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/PDDCommonTemplateContentServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/pdd/PDDGoodsService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoApiUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
@@ -261,7 +261,8 @@
            data.put("baichuan", false);// 不需要采用阿里百川的方式加载webview
        } else if (url != null && (url.contains("yangkeduo.com")) && !url.contains("yangkeduo.com/goods.html?")) {
        } else if (url != null && ((url.contains("yangkeduo.com") && !url.contains("yangkeduo.com/goods.html?"))
                || (url.startsWith("https://p.pinduoduo.com/")))) {
            data.put("baichuan", false);// 不需要采用阿里百川的方式加载webview
            data.put("goodsDetail", true);// 不需要拦截商品详情
        } else {
fanli/src/main/java/com/yeshi/fanli/dto/common/PDDCommonContentTypeEnum.java
@@ -2,7 +2,7 @@
public enum PDDCommonContentTypeEnum {
    _1k9("1.9包邮", "0"), todayTop("今日爆款", "1"), brandClear("品牌清仓", "2"), hotSaleGoods("热卖爆款", null);
    _1k9("1.9包邮", "0"), todayTop("今日爆款", "1"), brandClear("品牌清仓", "2"), hotSaleGoods("热卖好货", null), todaySaleGoods("热销榜单", null);
    private final String desc;
    private final String content;
    
fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
@@ -18,7 +18,7 @@
import com.yeshi.fanli.util.jd.JDApiUtil;
//从淘宝爬去订单更新
//@Component
@Component
public class UpdateJDOrderJob {
    @Resource
fanli/src/main/java/com/yeshi/fanli/job/order/pdd/UpdatePDDOrderJob.java
@@ -20,7 +20,7 @@
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
//从淘宝爬去订单更新
//@Component
@Component
public class UpdatePDDOrderJob {
    @Resource
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/PDDCommonTemplateContentServiceImpl.java
@@ -10,6 +10,7 @@
import com.yeshi.fanli.dto.common.CommonContentNav;
import com.yeshi.fanli.dto.common.PDDCommonContentTypeEnum;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
import com.yeshi.fanli.service.inter.goods.PDDCommonTemplateContentService;
import com.yeshi.fanli.service.inter.pdd.PDDGoodsService;
@@ -29,7 +30,25 @@
                || type == PDDCommonContentTypeEnum.brandClear) {
            return PinDuoDuoApiUtil.searchByChannelType(page - 1, pageSize, type.getContent());
        } else if (type == PDDCommonContentTypeEnum.hotSaleGoods) {
            return pddGoodsService.getTopGoodsList(page, 2);
            return pddGoodsService.getTopGoodsList(page, 2); // 热卖好货
        } else if (type == PDDCommonContentTypeEnum.todaySaleGoods) { // 热销榜单
            int count = 0;
            List<PDDGoodsDetail> list = new ArrayList<PDDGoodsDetail>();
            PDDGoodsResult pddGoodsResult = pddGoodsService.getTodaySaleGoodsList();
            if (pddGoodsResult != null) {
                List<PDDGoodsDetail> goodsList = pddGoodsResult.getGoodsList();
                if (goodsList != null) {
                    if (goodsList.size() >= (page * pageSize)) {
                        list.addAll(goodsList.subList((page-1)* pageSize, page * pageSize));
                    }
                    count = goodsList.size();
                }
            }
            PDDGoodsResult pddResult = new PDDGoodsResult();
            pddResult.setGoodsList(list);
            pddResult.setTotalCount(count);
            return pddResult;
        }
        return null;
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
@@ -174,5 +174,12 @@
    public PDDGoodsResult getTopGoodsList(int page, Integer sortType) {
        return PinDuoDuoApiUtil.getTopList(PinDuoDuoApiUtil.PID_FANLI, page, Constant.PAGE_SIZE, sortType);
    }
    @Override
    @Cacheable(value = "pddSpecialCache", key = "'getTodaySaleGoodsList-'")
    public PDDGoodsResult getTodaySaleGoodsList() {
        return PinDuoDuoUtil.getTodaySaleGoods();
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/pdd/PDDGoodsService.java
@@ -46,4 +46,10 @@
     */
    public PDDGoodsResult getTopGoodsList(int page, Integer sortType);
    /**
     * 今日热销
     * @return
     */
    public PDDGoodsResult getTodaySaleGoodsList();
}
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -134,6 +134,7 @@
            doJDOrderJob();// 京东订单处理
            doPDDOrderJob();// 拼多多订单处理
        }
    }
    /**
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoApiUtil.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.dto.pdd.PDDPromotionUrl;
import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
import com.yeshi.fanli.entity.pdd.PDDOrder;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
@@ -280,14 +281,14 @@
        }
        JSONArray resultArray = json.optJSONArray("goods_promotion_url_list");
        if (resultArray != null && resultArray.size() > 0) {
            Type type = new TypeToken<PDDPromotionUrl>() {}.getType();
            Type type = new TypeToken<PDDPromotionUrl>() {
            }.getType();
            Gson gson = new GsonBuilder().disableHtmlEscaping().create();
            return gson.fromJson(resultArray.optJSONObject(0).toString(), type);
        }
        return null;
    }
    /**
     * 商品转链
     * 
@@ -303,7 +304,7 @@
        }
        return null;
    }
    public static void createPid() {
        Map<String, String> map = new HashMap<>();
        map.put("type", "pdd.ddk.goods.pid.generate");
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@@ -144,6 +145,7 @@
        try {
            client.executeMethod(pm);
            String result = pm.getResponseBodyAsString();
            LogHelper.test("拼多多猜你喜欢:"+result);
            JSONObject json = JSONObject.fromObject(result);
            JSONArray array = json.optJSONArray("data");
            if (array != null) {
@@ -346,5 +348,133 @@
        }
        return null;
    }
    /**
     * 多多进宝爬取数据-品牌好货
     *
     * @param sf
     * @return
     */
    public static PDDGoodsResult getTodaySaleGoods() {
        JSONObject params = new JSONObject();
        params.put("type", 1);
        params.put("sortType",3);
        HttpClient client = new HttpClient();
        PostMethod pm = new PostMethod("https://jinbao.pinduoduo.com/network/api/common/queryTopGoodsList");
        pm.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
        pm.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        pm.setRequestHeader("Referer", "https://jinbao.pinduoduo.com/promotion/hot-promotion");
        pm.setRequestBody(params.toString());
        PDDGoodsResult goodsResult = null;
        try {
            client.executeMethod(pm);
            String result = pm.getResponseBodyAsString();
            JSONObject json = JSONObject.fromObject(result);
            Boolean code = json.optBoolean("success");
            if (code != null && code) {
                JSONObject root = json.optJSONObject("result");
                if (root == null) {
                    return null;
                }
                JSONArray array = root.optJSONArray("list");
                if (array == null) {
                    return null;
                }
                List<PDDGoodsDetail> goodsList = new ArrayList<PDDGoodsDetail>();
                for (int i = 0; i < array.size(); i++) {
                    PDDGoodsDetail parseGoods = parseTodaySaleGoods(array.getJSONObject(i));
                    if (parseGoods != null) {
                        goodsList.add(parseGoods);
                    }
                }
                int totalCount = root.optInt("total");
                goodsResult = new PDDGoodsResult();
                goodsResult.setGoodsList(goodsList);
                goodsResult.setTotalCount(totalCount);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return goodsResult;
    }
    private static PDDGoodsDetail parseTodaySaleGoods(JSONObject json) {
        PDDGoodsDetail goods = new PDDGoodsDetail();
        goods.setMallName(json.optString("mallName"));
        goods.setMerchantType(json.optInt("merchantType"));
        goods.setGoodsId(json.optLong("goodsId"));
        goods.setGoodsName(json.optString("goodsName"));
        goods.setGoodsDesc(json.optString("goodsDesc"));
        goods.setSalesTip(json.optString("salesTip"));
        if (json.optString("mallId") != null) {
            goods.setMallId(json.getLong("mallId"));
        }
        if (json.optString("goodsImageUrl") != null) {
            goods.setGoodsImageUrl(json.optString("goodsImageUrl"));
        }
        if (json.optString("goodsThumbnailUrl") != null) {
            goods.setGoodsThumbnailUrl(json.optString("goodsThumbnailUrl"));
        }
        if (json.optString("minGroupPrice") != null) {
            goods.setMinGroupPrice(json.getLong("minGroupPrice"));
        }
        if (json.optString("minNormalPrice") != null) {
            goods.setMinNormalPrice(json.getLong("minNormalPrice"));
        }
        if (json.optString("categoryId") != null) {
            goods.setCategoryId(json.getLong("categoryId"));
        }
        goods.setCategoryName(json.optString("categoryName"));
        goods.setHasCoupon(json.optBoolean("hasCoupon"));
        if (json.optString("couponMinOrderAmount") != null) {
            goods.setCouponMinOrderAmount(json.getLong("couponMinOrderAmount"));
        }
        if (json.optString("couponDiscount") != null) {
            goods.setCouponDiscount(json.getLong("couponDiscount"));
        }
        if (json.optString("couponTotalQuantity") != null) {
            goods.setCouponTotalQuantity(json.getLong("couponTotalQuantity"));
        }
        if (json.optString("couponRemainQuantity") != null) {
            goods.setCouponRemainQuantity(json.getLong("couponRemainQuantity"));
        }
        if (json.optString("couponStartTime") != null) {
            goods.setCouponStartTime(json.getLong("couponStartTime"));
        }
        if (json.optString("couponEndTime") != null) {
            goods.setCouponEndTime(json.getLong("couponEndTime"));
        }
        if (json.optString("promotionRate") != null) {
            goods.setPromotionRate(json.getLong("promotionRate"));
        }
        if (json.optString("optId") != null) {
            goods.setOptId(json.getLong("optId"));
        }
        return goods;
    }
}