From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java |  262 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 255 insertions(+), 7 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
index 12d9bdc..2bbc453 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
@@ -12,18 +12,40 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
+import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService;
 import com.yeshi.fanli.service.inter.goods.GoodsClassService;
+import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
+import com.yeshi.fanli.service.inter.lable.LabelClassService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.goods.GoodsSubClassLabelVO;
 
+import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("api/v2/class")
 public class GoodsClassControllerV2 {
-
 
 	@Resource
 	private GoodsClassService goodsClassService;
@@ -31,19 +53,40 @@
 	@Resource
 	private GoodsSubClassLabelService goodsSubClassLabelService;
 
+	@Resource
+	private GoodsSubClassService goodsSubClassService;
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
 
+	@Resource
+	private QualityGoodsService qualityGoodsService;
+
+	@Resource
+	private TaoKeGoodsService taoKeGoodsService;
+
+	@Resource
+	private TaoBaoClassService taoBaoClassService;
+
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+	@Resource
+	private LabelClassService labelClassService;
+
+	@Resource
+	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
 	/**
 	 * 涓�绾у垎绫�
+	 * 
 	 * @param acceptData
 	 * @param out
 	 */
 	@RequestMapping(value = "listClass", method = RequestMethod.POST)
 	public void listClass(AcceptData acceptData, PrintWriter out) {
-		List<GoodsClass> list =goodsClassService.getEffectiveClassCache();
-		if (list == null ) {
+		List<GoodsClass> list = goodsClassService.getEffectiveClassCache();
+		if (list == null) {
 			list = new ArrayList<GoodsClass>();
 		}
 
@@ -61,21 +104,226 @@
 	 */
 	@RequestMapping(value = "listSubMap", method = RequestMethod.POST)
 	public void listSubMap(AcceptData acceptData, Long cid, PrintWriter out) {
-		if(cid == null) {
+		if (cid == null) {
 			out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
 			return;
 		}
-		
+
 		List<GoodsSubClassLabelVO> list = goodsSubClassLabelService.listSubMapCache(cid);
 		if (list == null) {
 			list = new ArrayList<GoodsSubClassLabelVO>();
 		}
-		
+
 		JSONObject data = new JSONObject();
 		data.put("list", JsonUtil.getApiCommonGson().toJson(list));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
+	/**
+	 * 鍒嗙被涓嬬殑绮鹃�夊晢鍝�
+	 */
+	@RequestMapping("getClassGoods")
+	public void getClassGoods(AcceptData acceptData, long gcid, int page, PrintWriter out) {
+		GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
+		if (goodsClass == null) {
+			out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+			return;
+		}
 
-	
+		if (page < 1)
+			page = 1;
+
+		int pageSize = Constant.PAGE_SIZE;
+
+		List<QualityFactory> listQuery = qualityGoodsService.listQueryByClassId((page - 1) * pageSize, pageSize, gcid);
+		// 鎬绘潯鏁�
+		long counttotal = 5000;
+
+		List<TaoBaoGoodsBrief> updateGoodsList = new ArrayList<>();
+
+		// 绮鹃�夊簱鏁版嵁灏忎簬10鏃讹紝缃戠粶杩涜鏌ヨ
+		if (listQuery == null || listQuery.size() < 10) {
+			long count = qualityGoodsService.countQueryClassId(gcid);
+			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+			page = page - totalPage;
+			if (page < 1)
+				page = 1;
+
+			// 娣樺疂绫荤洰id
+			String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(gcid);
+
+			SearchFilter filter = null;
+
+			String searchParam = goodsClass.getSearchParam();
+			if (!StringUtil.isNullOrEmpty(searchParam)) {
+				Gson gs = new Gson();
+				filter = gs.fromJson(searchParam, SearchFilter.class);
+			} else {
+				filter = new SearchFilter();
+			}
+
+			filter.setMaterialId("6707");
+			filter.setPage(page);
+			filter.setPageSize(pageSize);
+			filter.setCateIds(taoBaoCatIds);
+
+			JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter,acceptData.getPlatform(),acceptData.getVersion());
+			out.print(JsonUtil.loadTrueResult(result));
+			return;
+		}
+
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+				acceptData.getVersion());
+		
+		// 绮鹃�夊簱鏁版嵁
+		JSONArray array = new JSONArray();
+		for (QualityFactory selectionGoods : listQuery) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+			updateGoodsList.add(taoBaoGoodsBrief);
+			GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
+			array.add(gson.toJson(goodsDetailVO));
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("nav", null);
+		data.put("count", counttotal);
+		data.put("result", array);
+		out.print(JsonUtil.loadTrueResult(data));
+		try {
+			taoBaoGoodsUpdateService.addUpdateQueueAsync(updateGoodsList);
+		} catch (Exception e) {
+		}
+	}
+
+	/**
+	 * 鑾峰彇浜岀骇鍒嗙被鍟嗗搧
+	 * 
+	 * @param acceptData
+	 * @param page
+	 * @param scid
+	 * @param filter
+	 * @param order
+	 *            鏉ユ簮锛氥�愭帹鑽愶細0 | 缁煎悎锛�4 銆佺患鍚堝彧鐪嬫湁鍒� 1 銆佺患鍚堝彧鐪嬪ぉ鐚� 1 | 浠锋牸锛氫綆鍒伴珮3 楂樺埌浣�2 | 閿�閲忥細1銆�
+	 *            鎺掑簭鍊硷細銆愰攢閲忕敱楂樺埌浣�: 1 锛� 閿�閲忕敱浣庡埌楂� 5锛� 浠锋牸浠庨珮鍒颁綆: 2 锛� 浠锋牸浠庝綆鍒伴珮:3 锛� 鎺ㄥ箍閲忛珮鍒颁綆:4 锛�
+	 *            鍏朵粬榛樿锛� 閿�閲忕敱楂樺埌浣庛��
+	 * 
+	 * @param startprice
+	 *            璧峰浠锋牸
+	 * @param endprice
+	 *            缁撴潫浠锋牸
+	 * @param fastFilter
+	 *            fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
+	 * @param totalSales
+	 *            閿�閲忎互涓�
+	 * @param out
+	 */
+	@RequestMapping(value = "getSubGoods", method = RequestMethod.POST)
+	public void getSecondClassGoods(AcceptData acceptData, int page, long scid, String filter, String order,
+			String startprice, String endprice, String fastFilter, Integer totalSales, PrintWriter out) {
+
+		try {
+			GoodsSubClass goodsSubClass = goodsSubClassService.getSubClassByPrimaryKeyCache(scid);
+			if (goodsSubClass == null) {
+				out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+				return;
+			}
+
+			// 缁熻鐐瑰嚮閲�
+			if (page == 1) {
+				goodsSubClassService.countClick(acceptData, goodsSubClass);
+			}
+
+			SearchFilter sf = new SearchFilter();
+			String catesId = "";
+			// 鏌ヨ鏄惁鏈夋窐瀹濆垎绫籌D
+			List<TaoBaoClass> tbClassList = taoBaoClassService.listBySystemSubCid(0, 10, goodsSubClass.getId());
+			if (tbClassList != null && tbClassList.size() > 0)
+				for (TaoBaoClass tbc : tbClassList) {
+					catesId += tbc.getCategoryId() + ",";
+				}
+			if (catesId.endsWith(","))
+				catesId = catesId.substring(0, catesId.length() - 1);
+			sf.setCateIds(catesId);
+
+			// 鎸夊垎绫诲悕绉版悳绱�
+			if (!StringUtil.isNullOrEmpty(catesId)) {
+				String searchParam = goodsSubClass.getSearchJson();
+				Gson gs = new Gson();
+				SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+				searchfilter.setCateIds(catesId);
+				searchfilter.setPage(page);
+				searchfilter.setPageSize(20);
+				if (Integer.parseInt(order) == 0)
+					searchfilter.setMaterialId("6707");
+				taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+						totalSales);
+				TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(searchfilter);
+				long count = searchResult.getPageEntity().getTotalCount();
+
+				List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
+				// 鏌ヨ鏄惁瓒呰繃浜嗘渶澶х殑鍟嗗搧鏁�
+				if ((resultGoodsList == null || resultGoodsList.size() < 20)
+						&& !StringUtil.isNullOrEmpty(goodsSubClass.getKey())) {
+					if (resultGoodsList == null)
+						resultGoodsList = new ArrayList<>();
+
+					// 闇�瑕佹牴鎹叧閿瓧鏌ヨ
+					searchfilter.setCateIds(null);
+					searchfilter.setPage((int) (count % 20 == 0 ? count / 20 - 1 : count / 20));
+					searchfilter.setPageSize(20);
+					searchfilter.setKey(goodsSubClass.getKey());
+					TaoBaoSearchResult searchResult2 = TaoKeApiUtil.searchWuLiao(searchfilter);
+					if (searchResult2 != null) {
+						List<TaoBaoGoodsBrief> resultListTemp = searchResult2.getTaoBaoGoodsBriefs();
+						if (resultListTemp != null)
+							resultGoodsList.addAll(resultListTemp);
+					}
+				}
+
+				Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+						.excludeFieldsWithoutExposeAnnotation().create();
+
+				JSONArray array = new JSONArray();
+				if (resultGoodsList != null) {
+					ConfigParamsDTO paramsDTO =  orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+							acceptData.getVersion());
+					for (TaoBaoGoodsBrief goods : resultGoodsList) {
+						GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
+						array.add(gson2.toJson(goodsDetailVO));
+					}
+				}
+				JSONObject result = new JSONObject();
+				result.put("result", array);
+				result.put("count", result.optLong("count") + count);
+				out.print(JsonUtil.loadTrueResult(result));
+				return;
+			} else {
+				String searchParam = goodsSubClass.getSearchJson();
+				Gson gs = new Gson();
+				SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+				searchfilter.setCateIds(catesId);
+				searchfilter.setPage(page);
+				searchfilter.setPageSize(20);
+				if (Integer.parseInt(order) == 0)
+					searchfilter.setMaterialId("6707");
+				searchfilter.setKey(goodsSubClass.getKey());
+				taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+						totalSales);
+
+				JSONObject result = taoKeGoodsService.searchWuLiaoV2(searchfilter,acceptData.getPlatform(),acceptData.getVersion());
+				out.print(JsonUtil.loadTrueResult(result));
+				return;
+			}
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult("鏁版嵁寮傚父"));
+			LogHelper.errorDetailInfo(e);
+		}
+	}
+
 }

--
Gitblit v1.8.0