From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2

---
 fanli/src/main/java/com/yeshi/fanli/controller/web/WebSearchController.java |  371 ++++++++++++++++++-----------------------------------
 1 files changed, 126 insertions(+), 245 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/web/WebSearchController.java b/fanli/src/main/java/com/yeshi/fanli/controller/web/WebSearchController.java
index ada7163..d402333 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/web/WebSearchController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/web/WebSearchController.java
@@ -10,16 +10,16 @@
 
 import javax.annotation.Resource;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
 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;
 import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
 import com.yeshi.fanli.entity.bus.search.HotSearch;
 import com.yeshi.fanli.entity.bus.su.search.SuperHotSearch;
 import com.yeshi.fanli.entity.system.CustomerContent;
@@ -28,13 +28,17 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.service.inter.config.CustomerContentService;
 import com.yeshi.fanli.service.inter.config.SuperHotSearchService;
 import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.user.HistorySearchService;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import org.yeshi.utils.JsonUtil;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("api/web/v1/webSearch")
@@ -55,267 +59,144 @@
 	@Resource
 	private SuperHotSearchService superHotSearchSerivce;
 
-	// 浼樻儬鍒�
-	/*
-	 * public final static int quanType = 1;
-	 * 
-	 * public final static int baoyou = 2;
-	 * 
-	 * public final static int TMALL = 3;
-	 */
+	@Resource
+	private CustomerContentService customerContentService;
 
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鍏抽敭瀛楁彁绀哄缓璁悳绱�
-	 * 
-	 * @author mawurui createTime 2018骞�4鏈�25鏃� 涓嬪崍3:04:52
-	 * @param acceptData
-	 * @param kw
-	 * @param out
-	 */
-	@RequestMapping(value = "suggestsearch", method = RequestMethod.GET)
-	public void getSugguestSearch(String callback, AcceptData acceptData, String kw, PrintWriter out) {
-		List<String> list = TaoBaoUtil.getSuguestSearch(kw);
-		if (list != null && list.size() > 0) {
-			JSONArray array = new JSONArray();
-			int num = 0;
-			for (String st : list) {
-				array.add(st);
-				num = num + 1;
-				if (num >= 5) {
-					break;
-				}
-			}
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(array)));
-		} else {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("")));
-		}
-		return;
-	}
+	@Resource
+	private QualityGoodsService qualityGoodsService;
 
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鎼滅储
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�3鏃� 涓婂崍9:53:54
-	 * @param acceptData
-	 * @param kw
-	 * @param page
-	 * @param filter
-	 * @param order
-	 * @param startprice
-	 * @param endprice
-	 * @param fastFilter
-	 * @param out
-	 */
-	@RequestMapping(value = "search", method = RequestMethod.GET)
-	public void search(String callback, AcceptData acceptData, String kw, int page, String filter, String order,
-			String startprice, String endprice, String fastFilter, PrintWriter out) {
+	@RequestMapping(value = "searchGoods", method = RequestMethod.GET)
+	public void searchGoods(String callback, AcceptData acceptData, String kw, int page, int pagesize, String filters,
+			String rate, String order, String startprice, String endprice, PrintWriter out) {
 		/*
 		 * System system = webControllerUtil.getSystem(acceptData); if(system ==
 		 * null){
 		 * out.print(JsonUtil.loadFalseResult(WebControllerUtil.NOSYSTEM));
 		 * return; }
 		 */
-		if (!StringUtil.isNullOrEmpty(fastFilter)) {
-			if (!StringUtil.isNullOrEmpty(filter)) {
-				JSONArray filterArray = JSONArray.fromObject(filter);
-				JSONArray fastFilterArray = JSONArray.fromObject(fastFilter);
-				filterArray.addAll(fastFilterArray);
-				filter = filterArray.toString();
-			} else {
-				filter = fastFilter;
-			}
-		}
-		JSONObject data = search(kw, page, filter, order, startprice, endprice);
-		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
-	}
-
-	private JSONObject search(String kw, int page, String filter, String order, String startprice, String endprice) {
+		if (pagesize > 100)
+			return;
 
 		SearchFilter sf = new SearchFilter();
-		sf.setKey(kw);
 		sf.setPage(page);
-		sf.setSort(0);
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(startprice)) {
-			sf.setStartPrice(new BigDecimal(startprice));
-		}
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(endprice)) {
-			sf.setEndPrice(new BigDecimal(endprice));
-		}
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
-			if (Integer.parseInt(order) == 0) { // 閿�閲�
-				sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 3) {
-				sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 2) {
-				sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
-			} else if (Integer.parseInt(order) == 1) {
-
-			}
-		}
-		/*
-		 * else{ //榛樿閿�閲忎粠楂樺埌浣庢帓搴� sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); }
-		 */
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filter)) {
-			// 鏌ヨ娣樺疂澶╃尗
-
-			if (Integer.parseInt(filter) == 1) {
-				filter = "[{\"type\": \"quantype\"}]";
-			} else if (Integer.parseInt(filter) == 2) {
-				filter = "[{\"type\": \"baoyou\"}]";
-			} else if (Integer.parseInt(filter) == 3) {
-				filter = "[{\"type\": \"userType\"}]";
-			} else {
-				filter = "[]";
-			}
-			JSONArray array = JSONArray.fromObject(filter);
-			Set<String> params = new HashSet<String>();
+		sf.setPageSize(pagesize);
+		sf.setKey(StringUtil.isNullOrEmpty(kw) ? "" : kw);
+		boolean recommend = false;
+		if (!StringUtil.isNullOrEmpty(filters)) {
+			JSONArray array = JSONArray.fromObject(filters);
 			for (int i = 0; i < array.size(); i++) {
-				String ty = array.optJSONObject(i).optString("type");
-				if ("shoptype".equalsIgnoreCase(ty)) {
-					if (array.optJSONObject(i).optInt("id") == 21) {
-						sf.setTmFlagship(false); // 涓嶇瓫锟�?
-					} else {
-						sf.setTmFlagship(true);
-						sf.setTmall(true);
-						sf.setShopTag("b2c");
-					}
-				} else if ("category".equalsIgnoreCase(ty)) {
-					sf.setCateIds(array.optJSONObject(i).optString("id"));
-				} else if ("userType".equalsIgnoreCase(ty)) {
-					// if(array.optJSONObject(i).optInt("id") == 51)
-					sf.setTmall(true);
-					// else
-					// sf.setTmall(false);
-				} else if ("baoyou".equalsIgnoreCase(ty)) {
-					// if(array.optJSONObject(i).optInt("id") == 61)
-					sf.setBaoYou(true);
-					// else
-					// sf.setBaoYou(false);
-				} else if ("quantype".equalsIgnoreCase(ty)) {
-					// if (array.optJSONObject(i).optInt("id") == 31){
+				String type = array.optJSONObject(i).optString("type");
+				if ("quantype".equalsIgnoreCase(type)) {
 					sf.setQuan(1);
-					if (sf.isTmFlagship()) {
-						sf.setShopTag(sf.getShopTag() + ",dpyhq");
-					} else {
-						sf.setShopTag("dpyhq");
-					}
-					// }
-					// else
-					// sf.setQuan(2);
-				} else if ("hongbaotype".equalsIgnoreCase(ty)) {
-					if (array.optJSONObject(i).optInt("id") == 41)// 鏈夌孩锟�?
-						sf.setHongbao(1);
-					else// 鏃犵孩锟�?
-						sf.setHongbao(2);
-				} else if ("property".equalsIgnoreCase(ty)) {
-					String pid = (String) array.optJSONObject(i).opt("pid");
-					String id = (String) array.optJSONObject(i).opt("id");
-					boolean flag = false;
-					String str = null;
-					for (String string : params) {
-						flag = string.contains(pid + ":");
-						if (flag) {
-							str = string;
-							break;
-						}
-					}
-					if (flag) {
-						params.add(str + "," + id);
-						params.remove(str);
-					} else {
-						params.add(pid + ":" + id);
-					}
+				} else if ("baoyou".equalsIgnoreCase(type)) {
+					sf.setBaoYou(true);
+				} else if ("usertype".equalsIgnoreCase(type)) {
+					sf.setTmall(true);
+				} else if ("recommend".equalsIgnoreCase(type)) {
+					//
+					recommend = true;
 				}
 			}
-			sf.setParams(params);
 		}
-		TaoBaoSearchResult result = TaoBaoUtil.search(sf);
-		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
-		if (result.getNavList() != null)
-			navList.addAll(result.getNavList());
-		Gson gson = new GsonBuilder().create();
-		JSONObject data = new JSONObject();
-		data.put("nav", gson.toJson(navList));
-		List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-		int fq = sf.getQuan();
-		int fh = sf.getHongbao();
-		boolean ft = sf.isTmall();
-		Map<String, String> map = manageService.convertMap();
-		String proportion = map.get("hongbao_goods_proportion");
-		String fcRate = map.get("hongbao_fc_ratio");
-		if (fq == 0 && fh == 0 && !ft) {
-			for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
-				re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+
+		if (!StringUtil.isNullOrEmpty(startprice))
+			sf.setStartPrice(new BigDecimal(startprice));
+		if (!StringUtil.isNullOrEmpty(endprice))
+			sf.setEndPrice(new BigDecimal(endprice));
+
+		if (!StringUtil.isNullOrEmpty(rate))
+			try {
+				sf.setStartTkRate(Integer.parseInt(rate));
+			} catch (Exception e) {
 			}
+		if (!StringUtil.isNullOrEmpty(order))
+			if (Integer.parseInt(order) == 0)
+				sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+			else if (Integer.parseInt(order) == 2)
+				sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
+			else if (Integer.parseInt(order) == 3)
+				sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
+			else if (Integer.parseInt(order) == 4)
+				sf.setSort(TaoBaoUtil.SORT_TKRATE_HIGH_TO_LOW);
+		if (StringUtil.isNullOrEmpty(kw))
+			recommend = true;
+
+		List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
+
+		long count = 0;
+		if (recommend) {
+
+			List<QualityFactory> listQuery = qualityGoodsService.listRecommendBykey((page - 1) * pagesize, pagesize, kw,
+					sf.getQuan() == 1 ? 1 : 0, sf.isTmall() ? 1 : 0,
+					StringUtil.isNullOrEmpty(startprice) ? null : Double.parseDouble(startprice),
+					StringUtil.isNullOrEmpty(endprice) ? null : Double.parseDouble(endprice),
+					StringUtil.isNullOrEmpty(rate) ? null : Double.parseDouble(rate), null, 1);
+
+			BigDecimal proportion = manageService.getFanLiRate();
+			/* 閬嶅巻鍒楄〃鏁版嵁 */
+			if (listQuery != null && listQuery.size() > 0) {
+				for (QualityFactory selectionGoods : listQuery) {
+
+					TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+
+					if (taoBaoGoodsBrief == null) {
+						continue;
+					}
+
+					int biz30day = taoBaoGoodsBrief.getBiz30day();
+					if (biz30day >= 10000) {
+						double sales = biz30day;
+						String salesCountMidea = String.format("%.1f", sales / 10000);
+						taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+					} else {
+						taoBaoGoodsBrief.setSalesCount(biz30day + "");
+					}
+
+					// 鏀瑰彉鍥剧墖灏哄
+					String pictUrl = taoBaoGoodsBrief.getPictUrl();
+					if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
+						taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
+					}
+
+					listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
+				}
+			}
+			count = qualityGoodsService.countRecommendBykey(kw, sf.getQuan() == 1 ? 1 : 0, sf.isTmall() ? 1 : 0,
+					StringUtil.isNullOrEmpty(startprice) ? null : Double.parseDouble(startprice),
+					StringUtil.isNullOrEmpty(endprice) ? null : Double.parseDouble(endprice),
+					StringUtil.isNullOrEmpty(rate) ? null : Double.parseDouble(rate), null);
+
 		} else {
-			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
-			for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-				taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, "");
-				re.add(taoBaoGoodsBriefExtra);
+			TaoBaoSearchResult result = TaoBaoUtil.search(sf);
+			if (result != null) {
+				List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
+				int fq = sf.getQuan();
+				int fh = sf.getHongbao();
+				boolean ft = sf.isTmall();
+				BigDecimal proportion = manageService.getFanLiRate();
+				if (fq == 0 && fh == 0 && !ft) {
+					if (taoBaoGoodsBriefs != null)
+						for (TaoBaoGoodsBrief bf : taoBaoGoodsBriefs) {
+							listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
+						}
+				} else {
+					TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
+					if (taoBaoGoodsBriefs != null)
+						for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+							taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+									proportion.toString(), "");
+							listExtra.add(taoBaoGoodsBriefExtra);
+						}
+				}
+				count = result.getTaoBaoHead().getDocsfound();
 			}
+
 		}
+		JSONObject data = new JSONObject();
 		Gson gson2 = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
-		data.put("result", gson2.toJson(re));
-		data.put("count", result.getTaoBaoHead().getDocsfound());
-		return data;
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鑱旂郴瀹㈡湇鎺ュ彛
-	 * 
-	 * @author mawurui createTime 2018骞�4鏈�10鏃� 涓婂崍9:02:41
-	 */
-	@RequestMapping(value = "contactCustomer", method = RequestMethod.GET)
-	public void contactCustomerService(PrintWriter out) {
-		String title = "鑱旂郴瀹㈡湇";
-		List<CustomerContent> contentList = systemClientParamsService.contactCustomerService(title);
-		JSONObject data = new JSONObject();
-		data.put("contentList", JsonUtil.getSimpleGsonWithDate().toJson(contentList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鐑棬鎼滅储
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�11鏃� 涓嬪崍4:32:46
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "getHotSearch", method = RequestMethod.GET)
-	public void getHotSearch(AcceptData acceptData, String callback, PrintWriter out) {
-		/*
-		 * System system = xcxMiniControllerUtil.getSystem(acceptData); if
-		 * (system == null) {
-		 * out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NOSYSTEM));
-		 * return; }
-		 */
-		List<SuperHotSearch> superHotSearchList = superHotSearchSerivce.getSuperHotSearchBySystemId(4); // 杩斿埄鍒竌pp
-		if (superHotSearchList == null || superHotSearchList.size() == 0) {
-			out.print(JsonUtil.loadFalseResult(WebControllerUtil.NODATA));
-			return;
-		}
-		List<HotSearch> hotSearchList = new ArrayList<HotSearch>();
-		for (SuperHotSearch superHotSearch : superHotSearchList) {
-			HotSearch hotSearch = superHotSearch.getHotSearch();
-			hotSearchList.add(hotSearch);
-		}
-
-		JSONObject data = new JSONObject();
-		data.put("count", hotSearchList.size());
-		data.put("hotSearchList", hotSearchList);
-
-		String result = JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data));
-		out.print(result);
-		return;
+		data.put("result", gson2.toJson(listExtra));
+		data.put("count", count);
+		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
 	}
 
 }

--
Gitblit v1.8.0