From 645c16466ce9dbe563c03943b0ab5fd46c8eed00 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 29 六月 2020 16:40:33 +0800
Subject: [PATCH] 免单券类型获得
---
fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 161 insertions(+), 0 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
index 3ab90d2..d5e29b5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/pdd/PDDGoodsServiceImpl.java
@@ -1,15 +1,55 @@
package com.yeshi.fanli.service.impl.pdd;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+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;
+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.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.exception.pdd.PDDOrderException;
import com.yeshi.fanli.service.inter.pdd.PDDGoodsService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
@Service
public class PDDGoodsServiceImpl implements PDDGoodsService {
+
+ private static final Map<Long, String> cidMap = new HashMap<Long, String>();
+
+ static {
+ cidMap.put(1L, "0");// 绮鹃��
+ cidMap.put(2L, "-11");// 娓呬粨
+ cidMap.put(3L, "15");// 鐧捐揣
+ cidMap.put(4L, "4");// 姣嶅┐
+ cidMap.put(5L, "1");// 椋熷搧
+ cidMap.put(6L, "14");// 濂宠
+ cidMap.put(7L, "18");// 鐢靛櫒
+ cidMap.put(8L, "1281");// 闉嬪寘
+ cidMap.put(9L, "1282");// 鍐呰。
+ cidMap.put(10L, "16");// 缇庡
+ cidMap.put(11L, "743");// 鐢疯
+ cidMap.put(12L, "2048");// 姹借溅
+ cidMap.put(13L, "13");// 姘存灉
+ cidMap.put(14L, "818,1917,2974");// 瀹跺眳锛氬绾恒�佸瑁� 瀹跺叿
+ cidMap.put(15L, "2478");// 鏂囧叿
+ cidMap.put(16L, "1451");// 杩愬姩
+ cidMap.put(17L, "590");// 铏氭嫙
+ cidMap.put(18L, "3279");// 鍖昏嵂
+ }
@Cacheable(value = "pddCache", key = "'getDetailImageList'+#id")
@Override
@@ -21,7 +61,128 @@
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>();
+ list.add(new GoodsClass(1L, "绮鹃��"));
+ list.add(new GoodsClass(2L, "娓呬粨"));
+ list.add(new GoodsClass(3L, "鐧捐揣"));
+ list.add(new GoodsClass(4L, "姣嶅┐"));
+ list.add(new GoodsClass(5L, "椋熷搧"));
+ list.add(new GoodsClass(6L, "濂宠"));
+ list.add(new GoodsClass(7L, "鐢靛櫒"));
+ list.add(new GoodsClass(8L, "闉嬪寘"));
+ list.add(new GoodsClass(9L, "鍐呰。"));
+ list.add(new GoodsClass(10L, "缇庡"));
+ list.add(new GoodsClass(11L, "鐢疯"));
+ list.add(new GoodsClass(12L, "姹借溅"));
+ list.add(new GoodsClass(13L, "姘存灉"));
+ list.add(new GoodsClass(14L, "瀹跺眳"));
+ list.add(new GoodsClass(15L, "鏂囧叿"));
+ list.add(new GoodsClass(16L, "杩愬姩"));
+ list.add(new GoodsClass(17L, "铏氭嫙"));
+ list.add(new GoodsClass(18L, "鍖昏嵂"));
+ return list;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ @Cacheable(value = "pddSpecialCache", key = "'specialSearch-'+#page+'-'+#cid")
+ 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);
+ pddfilter.setPageSize(Constant.PAGE_SIZE);
+ PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
+ if (result == null) {
+ return null;
+ } else {
+ return result.getGoodsList();
+ }
+ }
+
+ // 鍗曚釜鍒嗙被
+ if (!pddcid.contains(",")) {
+ pddfilter.setPage(page);
+ pddfilter.setPageSize(Constant.PAGE_SIZE);
+ pddfilter.setOptId(Long.parseLong(pddcid));
+ PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
+ if (result == null) {
+ return null;
+ } else {
+ return result.getGoodsList();
+ }
+ }
+
+ // 澶氫釜鍒嗙被id澶勭悊
+ List<PDDGoodsDetail> list = new ArrayList<PDDGoodsDetail>();
+ String[] arrayId = pddcid.split(",");
+ for (int i = 0; i < arrayId.length; i++) {
+ if (i >= 3) {
+ break;
+ }
+ pddfilter.setPage(page);
+ pddfilter.setPageSize(10);
+ pddfilter.setOptId(Long.parseLong(arrayId[i]));
+ PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
+ if (result != null) {
+ List<PDDGoodsDetail> listGoods = result.getGoodsList();
+ if (listGoods != null && listGoods.size() > 0) {
+ list.addAll(listGoods);
+ }
+ }
+ }
+ return list;
+ }
+
+ @Override
+ @Cacheable(value = "pddSpecialCache", key = "'getTopGoodsList-' + #page + '-' + #sortType")
+ public PDDGoodsResult getTopGoodsList(int page, Integer sortType) {
+ PDDGoodsResult pddResult = PinDuoDuoApiUtil.getTopList(PinDuoDuoApiUtil.PID_FANLI, page, Constant.PAGE_SIZE,
+ sortType);
+ if (pddResult != null && pddResult.getGoodsList() != null)
+ Collections.shuffle(pddResult.getGoodsList());
+ return pddResult;
+ }
+
+ @Override
+ @Cacheable(value = "pddSpecialCache", key = "'getTodaySaleGoodsList-'")
+ public PDDGoodsResult getTodaySaleGoodsList() {
+ return PinDuoDuoUtil.getTodaySaleGoods();
+ }
}
--
Gitblit v1.8.0