yujian
2019-06-26 900c0ff1cf220b47921264748ac1f1e1aa28c6f5
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.clazz.GoodsSecondClass;
import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.system.BusinessSystem;
@@ -420,6 +421,84 @@
            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);
            long count = searchResult.getPageEntity().getTotalCount();
            JSONObject result = new JSONObject();
            BigDecimal rate = hongBaoManageService.getFanLiRate();
            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);
               }
            }
            JSONArray array = new JSONArray();
            Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                  .excludeFieldsWithoutExposeAnnotation().create();
            if (resultGoodsList != null)
               for (TaoBaoGoodsBrief goods : resultGoodsList) {
                  array.add(gson2.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, rate + "", null)));
               }
            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.searchWuLiao(searchfilter);
            if (1 > 0) {
               out.print(JsonUtil.loadTrueResult(result));
               return;
            }
         }
         /* 搜索关键词 */
         String searchKey = goodsSubClass.getName();
         String key = goodsSubClass.getKey();