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/job/order/jd/UpdateJDOrderJob.java
@@ -13,12 +13,13 @@ import com.yeshi.fanli.entity.jd.JDOrder; import com.yeshi.fanli.exception.jd.JDOrderException; import com.yeshi.fanli.service.inter.jd.JDOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.cmq.JDOrderCMQManager; import com.yeshi.fanli.util.jd.JDApiUtil; //从淘宝爬去订单更新 //@Component @Component public class UpdateJDOrderJob { @Resource @@ -57,8 +58,8 @@ */ @Scheduled(cron = "0 0/1 * * * ? ") public void updateSoonOrder() { // if (!Constant.IS_TASK) // return; if (!Constant.IS_TASK) return; long now = System.currentTimeMillis(); JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME); @@ -75,8 +76,8 @@ */ @Scheduled(cron = "0 0/10 * * * ? ") public void updateUpdateOrder() { // if (!Constant.IS_TASK) // return; if (!Constant.IS_TASK) return; List<JDOrder> jdOrderList = new ArrayList<>(); int pageSize = 200; int page = 1; fanli/src/main/java/com/yeshi/fanli/job/order/pdd/UpdatePDDOrderJob.java
@@ -13,14 +13,13 @@ import com.yeshi.fanli.entity.pdd.PDDOrder; import com.yeshi.fanli.exception.pdd.PDDOrderException; import com.yeshi.fanli.service.inter.pdd.PDDOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.cmq.JDOrderCMQManager; import com.yeshi.fanli.util.cmq.PDDOrderCMQManager; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; //从淘宝爬去订单更新 //@Component @Component public class UpdatePDDOrderJob { @Resource @@ -43,8 +42,8 @@ */ String key = "pdd-order-" + order.getOrderSn(); String result = redisManager.getCommonString(key); // if (!StringUtil.isNullOrEmpty(result)) // continue; // if (!StringUtil.isNullOrEmpty(result)) // continue; PDDOrderCMQManager.getInstance().addPDDOrder(order.getOrderSn() + ""); redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2小时内不再更新 } catch (PDDOrderException e) { @@ -57,8 +56,8 @@ */ @Scheduled(cron = "0 0/1 * * * ? ") public void updateSoonOrder() { // if (!Constant.IS_TASK) // return; if (!Constant.IS_TASK) return; Date now = null; now = PinDuoDuoApiUtil.getSystemTime(); if (now == null) @@ -75,8 +74,8 @@ */ @Scheduled(cron = "0 0/30 * * * ? ") public void updateUpdateOrder() { // if (!Constant.IS_TASK) // return; if (!Constant.IS_TASK) return; long endTime = System.currentTimeMillis() - 1000 * 60 * 60L; long startTime = System.currentTimeMillis() - 1000 * 60 * 60 * 24L; int page = 1; fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java
@@ -372,7 +372,9 @@ JSONObject arcMap = new JSONObject(); String indexArc = "index_arc"; if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) indexArc = "index_arc_1.6.0"; else if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) indexArc = "index_arc_1.5.7"; else if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) indexArc = "index_arc_1.5.6"; fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
@@ -1,10 +1,14 @@ package com.yeshi.fanli.service.impl.pdd; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,8 +49,7 @@ cidMap.put(17L, "590");// 虚拟 cidMap.put(18L, "3279");// 医药 } @Cacheable(value = "pddCache", key = "'getDetailImageList'+#id") @Override public List<String> getDetailImageList(Long id) { @@ -57,10 +60,30 @@ list = PinDuoDuoUtil.getDetailImages(id); count++; } if (list == null || list.size() == 0) { try { Document doc = Jsoup .connect("https://dk.gaoyong666.com/gylm/h5details/v1/details?classtype=1&goodsId=" + id) .userAgent( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36") .get(); Elements els = doc.getElementsByTag("img"); for (int i = 0; i < els.size(); i++) { String src = els.get(i).attr("src"); if (src.contains("yangkeduo")) { list.add(src); } } } catch (IOException e) { e.printStackTrace(); } } return list; } @Override public List<GoodsClass> getSpecialClass() { List<GoodsClass> list = new ArrayList<GoodsClass>(); @@ -82,25 +105,24 @@ list.add(new GoodsClass(16L, "运动")); list.add(new GoodsClass(17L, "虚拟")); list.add(new GoodsClass(18L, "医药")); return list; return list; } @Override @Transactional @Cacheable(value = "pddSpecialCache", key = "'specialSearch-'+#page+'-'+#cid") public List<PDDGoodsDetail> specialSearch(Integer page, Long cid) throws PDDOrderException{ public List<PDDGoodsDetail> specialSearch(Integer page, Long cid) throws PDDOrderException { if (cid == null) { throw new PDDOrderException(1, "分类id为空"); } String pddcid = cidMap.get(cid); if (StringUtil.isNullOrEmpty(pddcid)) { throw new PDDOrderException(1, "分类id不存在"); } PDDSearchFilter pddfilter = new PDDSearchFilter(); // 精选 if (cid == 1) { pddfilter.setPage(page); @@ -111,8 +133,8 @@ } else { return result.getGoodsList(); } } } // 单个分类 if (!pddcid.contains(",")) { pddfilter.setPage(page); @@ -124,8 +146,8 @@ } else { return result.getGoodsList(); } } } // 多个分类id处理 List<PDDGoodsDetail> list = new ArrayList<PDDGoodsDetail>(); String[] arrayId = pddcid.split(","); @@ -146,18 +168,18 @@ } return list; } @Override @Cacheable(value = "pddSpecialCache", key = "'getTopGoodsList-' + #page + '-' + #sortType") 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/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) {