| | |
| | | package com.yeshi.fanli.controller.client.v2;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | 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.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;
|
| | |
|
| | | /**
|
| | | * 一级分类
|
| | | * |
| | | * @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 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();
|
| | |
|
| | | ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
|
| | | acceptData.getVersion(),acceptData.getSystem());
|
| | | |
| | | // 精选库数据
|
| | | 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 = "";
|
| | | // 查询是否有淘宝分类ID
|
| | | 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,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.searchWuLiao(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) {
|
| | | ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
|
| | | acceptData.getVersion(),acceptData.getSystem());
|
| | | 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(),acceptData.getSystem());
|
| | | 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 = ""; |
| | | // 查询是否有淘宝分类ID |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | } |