yujian
2019-07-16 c04327c1e6271e10c6d4f13ebb53438f6edca50e
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -94,7 +94,6 @@
   @Resource
   private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
   /**
    * 搜索-新版
    * 
@@ -102,9 +101,8 @@
    * @param kw
    * @param page
    * @param filter
    * @param order
    *            销量由高到低:1 、 价格从高到低:2 、 价格从低到高:3 、 推广量高到低:4(综合默认)、返利比高到低:5
    *            、返利比低到高:6 、推荐20
    * @param order      销量由高到低:1 、 价格从高到低:2 、 价格从低到高:3 、 推广量高到低:4(综合默认)、返利比高到低:5
    *                   、返利比低到高:6 、推荐20
    * @param startprice
    * @param endprice
    * @param fastFilter
@@ -112,10 +110,11 @@
    */
   @RequestMapping(value = "searchGoods")
   public void searchGoods(AcceptData acceptData, String kw, int page, String filter, String order, String startprice,
         String endprice, Double startTkRate, Double endTkRate, String fastFilter, Integer goodsType, PrintWriter out) {
         String endprice, Double startTkRate, Double endTkRate, String fastFilter, Integer goodsType,
         PrintWriter out) {
      String bid = getHistorySearchBid(acceptData);
      // 加入搜索历史记录
      historySearchService.addHistorySearch(kw, bid);
@@ -127,7 +126,7 @@
         out.print(JsonUtil.loadTrueResult(data));
         return;
      }
      if (!StringUtil.isNullOrEmpty(fastFilter)) {
         if (!StringUtil.isNullOrEmpty(filter)) {
            JSONArray filterArray = JSONArray.fromObject(filter);
@@ -143,20 +142,18 @@
      if (goodsType == null) {
         goodsType = Constant.SOURCE_TYPE_TAOBAO;
      }
      // 京东商品
      if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) {
         searchJDGoods(kw, page, filter, order, startprice, endprice, out);
         return;
      }
      if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) {
         // 拼多多商品 TODO
         searchPDDGoods(kw, page, filter, order, startprice, endprice, out);
         return;
      }
      // 是否是推荐
      boolean recommend = false;
@@ -190,7 +187,7 @@
            listRecommendWords = new ArrayList<String>();
         }
         List<TaoBaoShopVO> listShop =taoBaoShopService.getShopByKey(kw);
         List<TaoBaoShopVO> listShop = taoBaoShopService.getShopByKey(kw);
         if (listShop != null && listShop.size() > 0 && listShop.get(0).getListGoods() != null
               && listShop.get(0).getListGoods().size() > 2) {
            data.put("shop", JsonUtil.getApiCommonGson().toJson(listShop.get(0)));
@@ -204,7 +201,6 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   private String getHistorySearchBid(AcceptData acceptData) {
      StringBuffer sb = new StringBuffer();
      String link = "#$$$#";
@@ -215,7 +211,6 @@
      return StringUtil.Md5(sb.toString());
   }
   /**
    * 执行搜索-新版
    * 
@@ -410,7 +405,7 @@
      boolean ft = sf.isTmall();
      BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && taoBaoGoodsBriefs != null)
            for (TaoBaoGoodsBrief bf : taoBaoGoodsBriefs) {
@@ -422,18 +417,18 @@
               list.add(GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate));
            }
      }
      Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().create();
      data.put("result", gson2.toJson(list));
      data.put("count", result.getTaoBaoHead().getDocsfound());
      return data;
   }
   /**
    * 大淘客商品
    *
    * @param key
    * @param page
    * @param filter
@@ -510,9 +505,9 @@
         }
      }
   }
   /**
    *  京东
    * 京东
    * 
    * @param kw
    * @param page
@@ -522,8 +517,8 @@
    * @param endprice
    * @return
    */
   private void searchJDGoods(String kw, int page, String filter, String order, String startprice,
         String endprice, PrintWriter out) {
   private void searchJDGoods(String kw, int page, String filter, String order, String startprice, String endprice,
         PrintWriter out) {
      JDSearchFilter jdfilter = new JDSearchFilter();
      jdfilter.setKey(SearchFilterUtil.filterSearchContent(kw));
      jdfilter.setPageNo(page);
@@ -536,42 +531,43 @@
      if (!StringUtil.isNullOrEmpty(endprice)) {
         jdfilter.setToPrice(Integer.parseInt(endprice));
      }
      int sort = 1;
      if (!StringUtil.isNullOrEmpty(order)) {
         sort = Integer.parseInt(order);
      }
      switch (sort) {
         case 1: // 销量 desc
            jdfilter.setSort(JDSearchFilter.SORT_DESC);
            jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
            break;
         case 2: // 价格—desc
            jdfilter.setSort(JDSearchFilter.SORT_DESC);
            jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE);
            break;
         case 3: // 价格—asc
            jdfilter.setSort(JDSearchFilter.SORT_ASC);
            jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE);
            break;
         case 5: // 返利比—asc
            jdfilter.setSort(JDSearchFilter.SORT_DESC);
            jdfilter.setSortName(JDSearchFilter.SORTNAME_COMMISSION_SHARE);
            break;
         default: // 默认:销量 desc
            jdfilter.setSort(JDSearchFilter.SORT_DESC);
            jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
            break;
      case 1: // 销量 desc
         jdfilter.setSort(JDSearchFilter.SORT_DESC);
         jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
         break;
      case 2: // 价格—desc
         jdfilter.setSort(JDSearchFilter.SORT_DESC);
         jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE);
         break;
      case 3: // 价格—asc
         jdfilter.setSort(JDSearchFilter.SORT_ASC);
         jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE);
         break;
      case 5: // 返利比—DESC
         jdfilter.setSort(JDSearchFilter.SORT_DESC);
         jdfilter.setSortName(JDSearchFilter.SORTNAME_COMMISSION_SHARE);
         break;
      default: // 默认:销量 desc
         //jdfilter.setSort(JDSearchFilter.SORT_DESC);
         //jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS);
         break;
      }
      if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filter)) {
         JSONArray array = JSONArray.fromObject(filter);
         for (int i = 0; i < array.size(); i++) {
            String ty = array.optJSONObject(i).optString("type");
             if ("quantype".equalsIgnoreCase(ty)) {
                jdfilter.setHasCoupon(1); // 有券
            if ("quantype".equalsIgnoreCase(ty)) {
               jdfilter.setHasCoupon(1); // 有券
            } else if ("zy".equalsIgnoreCase(ty)) {
               jdfilter.setIsZY(1); // 是否自营
            }
         }
      }
@@ -585,28 +581,28 @@
         if (pageEntity != null) {
            count = pageEntity.getTotalCount();
         }
         List<JDGoods> goodsList = result.getGoodsList();
         if (goodsList != null && goodsList.size() > 0) {
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                  .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            for (JDGoods goods: goodsList) {
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, null, fanLiRate, shareRate);
            for (JDGoods goods : goodsList) {
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, null, fanLiRate,
                     shareRate);
               array.add(gson.toJson(goodsDetailVO));
            }
         }
      }
      data.put("result", array);
      data.put("count", count);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    *  京东
    * 京东
    * 
    * @param kw
    * @param page
@@ -616,8 +612,8 @@
    * @param endprice
    * @return
    */
   private void searchPDDGoods(String kw, int page, String filter, String order, String startprice,
         String endprice, PrintWriter out) {
   private void searchPDDGoods(String kw, int page, String filter, String order, String startprice, String endprice,
         PrintWriter out) {
      PDDSearchFilter pddfilter = new PDDSearchFilter();
      pddfilter.setKw(SearchFilterUtil.filterSearchContent(kw));
      pddfilter.setPage(page);
@@ -627,38 +623,39 @@
      if (!StringUtil.isNullOrEmpty(order)) {
         sort = Integer.parseInt(order);
      }
      switch (sort) {
         case 1: // 销量 desc
            pddfilter.setSortType(6);
            break;
         case 2: // 价格—desc
            pddfilter.setSortType(4);
            break;
         case 3: // 价格—asc
            pddfilter.setSortType(3);
            break;
         case 5: // 返利比—asc
            pddfilter.setSortType(2);
            break;
         case 6: // 返利比—asc
            pddfilter.setSortType(1);
            break;
         case 20: // 综合排序
            pddfilter.setSortType(0);
            break;
         default: // 默认:销量 desc
            pddfilter.setSortType(6);
            break;
      case 1: // 销量 desc
         pddfilter.setSortType(6);
         break;
      case 2: // 价格—desc
         pddfilter.setSortType(4);
         break;
      case 3: // 价格—asc
         pddfilter.setSortType(3);
         break;
      case 5: // 返利比—asc
         pddfilter.setSortType(2);
         break;
      case 6: // 返利比—asc
         pddfilter.setSortType(1);
         break;
      case 20: // 综合排序
         pddfilter.setSortType(0);
         break;
      default: // 默认:销量 desc
         // pddfilter.setSortType(6);
         break;
      }
      if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filter)) {
         JSONArray array = JSONArray.fromObject(filter);
         for (int i = 0; i < array.size(); i++) {
            String ty = array.optJSONObject(i).optString("type");
             if ("quantype".equalsIgnoreCase(ty)) {
                pddfilter.setHasCoupon(true); // 有券
            if ("quantype".equalsIgnoreCase(ty)) {
               pddfilter.setHasCoupon(true); // 有券
            } else if ("brand".equalsIgnoreCase(ty)) {
               pddfilter.setIsBrand(true); // 是否是品牌
            }
         }
      }
@@ -666,7 +663,7 @@
      int count = 0;
      JSONObject data = new JSONObject();
      JSONArray array = new JSONArray();
      PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
      if (result != null) {
         count = result.getTotalCount();
@@ -676,13 +673,14 @@
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                  .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            for (PDDGoodsDetail goods: goodsList) {
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, null, fanLiRate, shareRate);
            for (PDDGoodsDetail goods : goodsList) {
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, null, fanLiRate,
                     shareRate);
               array.add(gson.toJson(goodsDetailVO));
            }
         }
      }
      data.put("result", array);
      data.put("count", count);
      out.print(JsonUtil.loadTrueResult(data));