From 20d1a38a0f8049873f1fbbaef96c22e971ea9d77 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 17 七月 2019 15:50:09 +0800
Subject: [PATCH] 搜索词

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java |  189 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 184 insertions(+), 5 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
index 8a53dde..cc9bd05 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -6,13 +6,18 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -30,6 +35,7 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.BusinessSystemService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SuperHotSearchService;
@@ -44,11 +50,13 @@
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.ThreadUtil;
+import com.yeshi.fanli.util.Utils;
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
 import com.yeshi.fanli.util.taobao.SearchFilterUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
@@ -93,6 +101,178 @@
 
 	@Resource
 	private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
+
+	
+	
+	/**
+	 * 绮樿创鏉夸俊鎭帹鑽�
+	 * 
+	 * @param acceptData
+	 * @param url
+	 *            鍟嗗搧閾炬帴
+	 * @param out
+	 */
+	@RequestMapping(value = "getNewGoodsInfo", method = RequestMethod.POST)
+	public void getNewGoodsInfo(AcceptData acceptData, String text, PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(text)) {
+			out.print(JsonUtil.loadFalseResult("鍊间负绌�"));
+			return;
+		}
+
+		if (text.length() > 256) {
+			out.print(JsonUtil.loadFalseResult("鍊艰繃闀�"));
+			return;
+		}
+
+		TaoBaoGoodsBrief tb = null;
+		String URL_REGEX = "(((http|https)://)|(www\\.))[a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6}(:[0-9]{1,4})?(/[a-zA-Z0-9\\&%_\\./-~-]*)?";
+
+		Pattern p = Pattern.compile(URL_REGEX);
+		Matcher matcher = p.matcher(text);
+		if (!matcher.find()) {// 涓嶅寘鍚摼鎺�
+			// 鍟嗗搧璇︽儏
+			// 鍙戠幇
+			// 娌℃湁閾炬帴锛屾爣棰樿繃闀夸篃涓嶅鐞�
+			if (text.startsWith("銆�") && text.contains("銆�")) {
+				int end = text.indexOf("銆�");
+				if (end > 2)
+					text = text.substring(1, end);
+			}
+
+			LogHelper.test("鏍规嵁绮樿创鏉挎帹鑽�:" + text);
+
+			if (text.length() > 80) {
+				out.print(JsonUtil.loadFalseResult("鍊艰繃闀�"));
+				return;
+			}
+
+			SearchFilter sf = new SearchFilter();
+			sf.setKey(text);
+			JSONObject root = new JSONObject();
+
+			TaoBaoSearchResult result = TaoBaoUtil.search(sf);
+			if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 0)
+				for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
+					// 鏄睘浜庢窐瀹濊仈鐩熷晢鍝�
+					if (goods.getTitle().equalsIgnoreCase(text)) {
+						root.put("type", 2);
+						JSONObject data = new JSONObject();
+						data.put("title", goods.getTitle());
+						root.put("data", data);
+						out.print(JsonUtil.loadTrueResult(root));
+						return;
+					}
+				}
+
+			// 鏌ヨ澶ф窐瀹㈡爣棰�
+			List<DaTaoKeDetail> list = daTaoKeGoodsDetailService.listByDtitle(text);
+			if (list != null && list.size() > 0) {
+				root.put("type", 2);
+				JSONObject data = new JSONObject();
+				data.put("title", list.get(0).getdTitle());
+				root.put("data", data);
+				out.print(JsonUtil.loadTrueResult(root));
+				return;
+			}
+
+			out.print(JsonUtil.loadFalseResult("鏆備笉鏀寔璇ョ被鍨嬶紒"));
+			return;
+		}
+
+		text = matcher.group();
+		if (text.contains("ju.taobao.com") || text.contains(".juhuasuan.com")) {// 鑱氬垝绠�
+			int index = text.indexOf("item_id");
+			if (index < 0) {
+				out.println(JsonUtil.loadFalseResult("鏆傛湭鎵惧埌璇ュ晢鍝侊紝璇风◢鍚庡啀璇曪紒"));
+				return;
+			}
+			text = text.substring(index);
+			int last = text.indexOf("&");
+			String id = "";
+			if (last > 0)
+				id = text.substring(text.indexOf("=") + 1, text.indexOf("&"));
+			else {
+				id = text.substring(text.indexOf("=" + 1));
+			}
+			tb = TaoBaoUtil.isAlimama(id);
+			if (tb == null) {
+				tb = TaoBaoUtil.parsePhoneTmAndTb(id);
+			}
+		} else if (text.contains("http://zmnxbc.com")) { // 鎵嬫満绔ぉ鐚獳PP鍒嗕韩
+			tb = TaoBaoUtil.parsePhoneShareUrlByTM(text);
+		} else if (text.contains("h5.m.taobao") || text.contains("detail.m.tmall") || text.contains("item.taobao")
+				|| text.contains("detail.tmall")) { // 鎵嬫満椤甸潰鍜岀數鑴戦〉闈�
+			Map<String, String> map = Utils.parseURL(text);
+			String id = "";
+			id = map.get("id").replace("}", "");
+			tb = TaoBaoUtil.isAlimama(id);
+			if (tb == null) {
+				tb = TaoBaoUtil.parsePhoneTmAndTb(id);
+			}
+		} else {
+			tb = TaoBaoUtil.parsePhoneShareUrlByTB(text);
+		}
+
+		if (tb == null) {
+			out.println(JsonUtil.loadFalseResult("鏆傛湭鎵惧埌璇ュ晢鍝侊紝璇风◢鍚庡啀璇曪紒"));
+			return;
+		}
+		JSONObject data = new JSONObject();
+		JSONObject taoBaoGoodsJSON = new JSONObject();
+		taoBaoGoodsJSON.put("title", tb.getTitle());
+		taoBaoGoodsJSON.put("zkPrice", tb.getZkPrice());
+		taoBaoGoodsJSON.put("auctionId", tb.getAuctionId());
+		taoBaoGoodsJSON.put("url", "http://item.taobao.com/item.htm?id=" + tb.getAuctionId());
+		data.put("taoBaoGoodsBrief", taoBaoGoodsJSON);
+		if (!StringUtil.isNullOrEmpty(tb.getPictUrl())) {
+			if (tb.getImgList() == null)
+				tb.setImgList(new ArrayList<>());
+			tb.getImgList().add(0, TbImgUtil.getTBSize220Img(tb.getPictUrl()));
+		}
+		data.put("tbImgs", tb.getImgList());
+		JSONObject root = new JSONObject();
+		root.put("type", 1);
+		root.put("data", data);
+
+		out.print(JsonUtil.loadTrueResult(root));
+	}
+	
+	
+	
+	/**
+	 * 鎼滅储鍊欓�夎瘝
+	 * 
+	 * @param acceptData
+	 * @param kw
+	 * @param out
+	 */
+	@RequestMapping(value = "suggestSearch", method = RequestMethod.POST)
+	public void getSugguestSearch(AcceptData acceptData, String kw, Integer goodsType, PrintWriter out) {
+		if (goodsType == null) {
+			out.print(JsonUtil.loadFalseResult("骞冲彴绫诲瀷涓嶈兘涓虹┖"));
+			return;
+		}
+
+		List<String> list = null;
+		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+			list = TaoBaoUtil.getSuguestSearch(kw);
+		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
+			list = JDUtil.suggestSearch(kw);
+		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+			list = PinDuoDuoUtil.suggestSearch(kw);
+		}
+
+		if (list == null || list.size() == 0) {
+			out.print(JsonUtil.loadFalseResult("鏆傛棤寤鸿鍐呭"));
+			return;
+		}
+
+		JSONArray array = new JSONArray();
+		for (String words : list) {
+			array.add(words);
+		}
+		out.print(JsonUtil.loadTrueResult(array));
+	}
 
 	/**
 	 * 鎼滅储-鏂扮増
@@ -149,8 +329,8 @@
 			return;
 		}
 
+		// 鎷煎澶氬晢鍝� TODO
 		if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) {
-			// 鎷煎澶氬晢鍝� TODO
 			searchPDDGoods(kw, page, filter, order, startprice, endprice, out);
 			return;
 		}
@@ -181,7 +361,7 @@
 		// 鑾峰彇鎺ㄨ崘璇�
 		List<String> listRecommendWords = new ArrayList<String>();
 		// 缁煎悎 鏌ヨ绗竴椤垫椂鑾峰彇鍊欓�夎瘝
-		if (page == 0) {
+		if (page == 1) {
 			listRecommendWords = TaoBaoUtil.getSuguestSearch(kw);
 			if (listRecommendWords == null || listRecommendWords.size() == 0) {
 				listRecommendWords = new ArrayList<String>();
@@ -439,7 +619,6 @@
 	 */
 	private JSONObject searchDaTaoKeGoods(String key, int page, String filter, String order, String startprice,
 			String endprice) {
-		page = page + 1;
 		int sort = DaTaoKeApiUtil.SORT_DEFAULT;
 		if ("5".equalsIgnoreCase(order)) {
 			sort = DaTaoKeApiUtil.SORT_COMMISSION;
@@ -555,8 +734,8 @@
 			jdfilter.setSortName(JDSearchFilter.SORTNAME_COMMISSION_SHARE);
 			break;
 		default: // 榛樿锛氶攢閲� desc
-			//jdfilter.setSort(JDSearchFilter.SORT_DESC);
-			//jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
+			// jdfilter.setSort(JDSearchFilter.SORT_DESC);
+			// jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
 			break;
 		}
 

--
Gitblit v1.8.0