yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
@@ -7,6 +7,7 @@
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;
@@ -15,6 +16,7 @@
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;
@@ -28,12 +30,14 @@
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.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;
@@ -72,6 +76,9 @@
   @Resource
   private LabelClassService labelClassService;
   @Resource
   private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
   /**
    * 一级分类
@@ -135,8 +142,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 +170,7 @@
         filter.setPageSize(pageSize);
         filter.setCateIds(taoBaoCatIds);
         JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter);
         JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter,acceptData.getPlatform(),acceptData.getVersion());
         out.print(JsonUtil.loadTrueResult(result));
         return;
      }
@@ -169,9 +178,9 @@
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
      // 精选库数据
      JSONArray array = new JSONArray();
      for (QualityFactory selectionGoods : listQuery) {
@@ -179,8 +188,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 +198,10 @@
      data.put("count", counttotal);
      data.put("result", array);
      out.print(JsonUtil.loadTrueResult(data));
      try {
         taoBaoGoodsUpdateService.addUpdateQueueAsync(updateGoodsList);
      } catch (Exception e) {
      }
   }
   /**
@@ -198,15 +211,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 +238,7 @@
         }
         // 统计点击量
         if (page == 0) {
         if (page == 1) {
            goodsSubClassService.countClick(acceptData, goodsSubClass);
         }
@@ -236,9 +253,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);
@@ -251,7 +268,6 @@
                  totalSales);
            TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(searchfilter);
            long count = searchResult.getPageEntity().getTotalCount();
            List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
            // 查询是否超过了最大的商品数
@@ -272,19 +288,19 @@
                     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 =  hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
                     acceptData.getVersion());
               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 +318,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());
            out.print(JsonUtil.loadTrueResult(result));
            return;
         }