From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java | 663 +++++++++++++++++++++++++++--------------------------- 1 files changed, 331 insertions(+), 332 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 0000442..04ba950 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,332 +1,331 @@ -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.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.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; - - @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) { - list = new ArrayList<GoodsClass>(); - } - - JSONObject data = new JSONObject(); - data.put("list", JsonUtil.getApiCommonGson().toJson(list)); - out.print(JsonUtil.loadTrueResult(data)); - } - - /** - * 浜岀骇鍒嗙被銆佹爣绛� - * - * @param acceptData - * @param gcid - * @param out - */ - @RequestMapping(value = "listSubMap", method = RequestMethod.POST) - public void listSubMap(AcceptData acceptData, Long cid, PrintWriter out) { - 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); - out.print(JsonUtil.loadTrueResult(result)); - return; - } - - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE); - - // 绮鹃�夊簱鏁版嵁 - 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) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE); - 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); - out.print(JsonUtil.loadTrueResult(result)); - return; - } - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鏁版嵁寮傚父")); - LogHelper.errorDetailInfo(e); - } - } - -} +package com.yeshi.fanli.controller.client.v2; + +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import com.yeshi.fanli.lijin.manager.GoodsLijinMnager; +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.GoodsMoneyConfigParamsDTO; +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.goods.facade.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; + + @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; + + @Resource + private GoodsLijinMnager goodsLijinMnager; + + /** + * 涓�绾у垎绫� + * + * @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 = new ArrayList<GoodsClass>(); + } + + JSONObject data = new JSONObject(); + data.put("list", JsonUtil.getApiCommonGson().toJson(list)); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 浜岀骇鍒嗙被銆佹爣绛� + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "listSubMap", method = RequestMethod.POST) + public void listSubMap(AcceptData acceptData, Long cid, PrintWriter out) { + 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 uid, 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(), acceptData.getSystem()); + out.print(JsonUtil.loadTrueResult(result)); + return; + } + + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); + + // 绮鹃�夊簱鏁版嵁 + JSONArray array = new JSONArray(); + List<TaoBaoGoodsBrief> goodsBriefs = new ArrayList<>(); + for (QualityFactory selectionGoods : listQuery) { + TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + if (taoBaoGoodsBrief == null) { + continue; + } + updateGoodsList.add(taoBaoGoodsBrief); + goodsBriefs.add(taoBaoGoodsBrief); + } + + List<GoodsDetailVO> voList = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBriefs, paramsDTO,false); + for (GoodsDetailVO vo : voList) { + vo.setCreatetime(null); + array.add(gson.toJson(vo)); + } + 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, Long uid, 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.searchWuLiaoNew(searchfilter, null, null); + 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.searchWuLiaoNew(searchfilter, null, null); + 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) { + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); + List<GoodsDetailVO> voList = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, resultGoodsList, paramsDTO,false); + for (GoodsDetailVO vo : voList) { + array.add(gson2.toJson(vo)); + } + } + 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(), acceptData.getSystem()); + out.print(JsonUtil.loadTrueResult(result)); + return; + } + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鏁版嵁寮傚父")); + LogHelper.errorDetailInfo(e); + } + } + +} -- Gitblit v1.8.0