admin
2020-11-28 dc5be7d38446f70e6ff86df311119c32b41fe7f8
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -15,23 +14,25 @@
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.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.hongbao.HongBaoManageService;
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;
@@ -68,10 +69,13 @@
   private TaoBaoClassService taoBaoClassService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private LabelClassService labelClassService;
   @Resource
   private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
   /**
    * 一级分类
@@ -95,7 +99,6 @@
    * 二级分类、标签
    * 
    * @param acceptData
    * @param gcid
    * @param out
    */
   @RequestMapping(value = "listSubMap", method = RequestMethod.POST)
@@ -135,8 +138,10 @@
      // 总条数
      long counttotal = 5000;
      // 精选库数据为空时,网络进行查询
      if (listQuery == null || listQuery.size() == 0) {
      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;
@@ -161,7 +166,7 @@
         filter.setPageSize(pageSize);
         filter.setCateIds(taoBaoCatIds);
         JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter);
         JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter,acceptData.getPlatform(),acceptData.getVersion(), acceptData.getSystem());
         out.print(JsonUtil.loadTrueResult(result));
         return;
      }
@@ -169,9 +174,9 @@
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion(),acceptData.getSystem());
      // 精选库数据
      JSONArray array = new JSONArray();
      for (QualityFactory selectionGoods : listQuery) {
@@ -179,8 +184,8 @@
         if (taoBaoGoodsBrief == null) {
            continue;
         }
         GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate,
               shareRate);
         updateGoodsList.add(taoBaoGoodsBrief);
         GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
         array.add(gson.toJson(goodsDetailVO));
      }
@@ -189,6 +194,10 @@
      data.put("count", counttotal);
      data.put("result", array);
      out.print(JsonUtil.loadTrueResult(data));
      try {
         taoBaoGoodsUpdateService.addUpdateQueueAsync(updateGoodsList);
      } catch (Exception e) {
      }
   }
   /**
@@ -198,15 +207,19 @@
    * @param page
    * @param scid
    * @param filter
    * @param order      来源:【推荐:0 | 综合:4 、综合只看有券 1 、综合只看天猫 1 | 价格:低到高3 高到低2 | 销量:1】
    *                   排序值:【销量由高到低: 1 ; 销量由低到高 5; 价格从高到低: 2 ; 价格从低到高:3 ; 推广量高到低:4
    *                   ; 其他默认: 销量由高到低】
    * @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 startprice
    *            起始价格
    * @param endprice
    *            结束价格
    * @param fastFilter
    *            fastFilter 有券 [{"type":"quantype"}] 天猫商品 [{"type":"shoptype"}]
    * @param totalSales
    *            销量以上
    * @param out
    */
   @RequestMapping(value = "getSubGoods", method = RequestMethod.POST)
@@ -221,7 +234,7 @@
         }
         // 统计点击量
         if (page == 0) {
         if (page == 1) {
            goodsSubClassService.countClick(acceptData, goodsSubClass);
         }
@@ -236,9 +249,9 @@
         if (catesId.endsWith(","))
            catesId = catesId.substring(0, catesId.length() - 1);
         sf.setCateIds(catesId);
         // 按分类名称搜索
         if (!StringUtil.isNullOrEmpty(catesId))   {
         if (!StringUtil.isNullOrEmpty(catesId)) {
            String searchParam = goodsSubClass.getSearchJson();
            Gson gs = new Gson();
            SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
@@ -249,9 +262,8 @@
               searchfilter.setMaterialId("6707");
            taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
                  totalSales);
            TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(searchfilter);
            TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(searchfilter,null,null);
            long count = searchResult.getPageEntity().getTotalCount();
            List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
            // 查询是否超过了最大的商品数
@@ -265,26 +277,26 @@
               searchfilter.setPage((int) (count % 20 == 0 ? count / 20 - 1 : count / 20));
               searchfilter.setPageSize(20);
               searchfilter.setKey(goodsSubClass.getKey());
               TaoBaoSearchResult searchResult2 = TaoKeApiUtil.searchWuLiao(searchfilter);
               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();
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            if (resultGoodsList != null)
            if (resultGoodsList != null) {
               ConfigParamsDTO paramsDTO =  orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                     acceptData.getVersion(),acceptData.getSystem());
               for (TaoBaoGoodsBrief goods : resultGoodsList) {
                  GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate);
                  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);
@@ -302,8 +314,8 @@
            searchfilter.setKey(goodsSubClass.getKey());
            taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
                  totalSales);
            JSONObject result = taoKeGoodsService.searchWuLiaoV2(searchfilter);
            JSONObject result = taoKeGoodsService.searchWuLiaoV2(searchfilter,acceptData.getPlatform(),acceptData.getVersion(),acceptData.getSystem());
            out.print(JsonUtil.loadTrueResult(result));
            return;
         }