From ee1d39f11b9483b64a88029f1755a6e7166fea15 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期日, 26 四月 2020 16:49:21 +0800
Subject: [PATCH] 等级显示问题
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 257 insertions(+), 6 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 c50bf8e..a476de9 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
@@ -1,29 +1,54 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
+import org.hibernate.id.enhanced.AccessCallback;
import org.springframework.core.task.TaskExecutor;
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 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.config.HongBaoManageService;
+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.VersionUtil;
+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 +56,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 HongBaoManageService hongBaoManageService;
+
+ @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 ) {
+ if (list == null) {
list = new ArrayList<GoodsClass>();
}
@@ -61,21 +107,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 = hongBaoManageService.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 = hongBaoManageService.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