@ResponseBody
 @RequestMapping(value = "/results", method = RequestMethod.GET)
 public SearchResultsData<ProductData> jsonSearchResults(
     @RequestParam("q") final String searchQuery,
     @RequestParam(value = "page", defaultValue = "0") final int page,
     @RequestParam(value = "show", defaultValue = "Page") final ShowMode showMode,
     @RequestParam(value = "sort", required = false) final String sortCode)
     throws CMSItemNotFoundException {
   final ProductSearchPageData<SearchStateData, ProductData> searchPageData =
       performSearch(searchQuery, page, showMode, sortCode, getSearchPageSize());
   final SearchResultsData<ProductData> searchResultsData = new SearchResultsData<>();
   searchResultsData.setResults(searchPageData.getResults());
   searchResultsData.setPagination(searchPageData.getPagination());
   return searchResultsData;
 }
Exemplo n.º 2
0
  @RequestMapping(value = "/results", method = RequestMethod.GET)
  public String productListerSearchResults(
      @RequestParam("q") final String searchQuery,
      @RequestParam(value = "page", defaultValue = "0") final int page,
      @RequestParam(value = "show", defaultValue = "Page") final ShowMode showMode,
      @RequestParam(value = "sort", required = false) final String sortCode,
      @RequestParam(value = "searchResultType", required = false) final String searchResultType,
      @RequestParam(value = "skuIndex", required = false, defaultValue = "0") final int skuIndex,
      @RequestParam(value = "isOrderForm", required = false, defaultValue = "false")
          final boolean isOrderForm,
      @RequestParam(value = "isOnlyProductIds", required = false, defaultValue = "false")
          final boolean isOnlyProductIds,
      @RequestParam(value = "isCreateOrderForm", required = false, defaultValue = "false")
          final boolean isCreateOrderForm,
      final Model model)
      throws CMSItemNotFoundException {

    // check if it is order form (either order form was selected or "Create Order Form"
    final PageableData pageableData =
        createPageableData(page, getSearchPageSize(), sortCode, showMode);
    final SearchStateData searchState =
        createSearchStateData(searchQuery, isPopulateVariants(searchResultType, isCreateOrderForm));

    final SearchPageData<ProductData> searchPageData =
        performSearch(
            searchState, pageableData, isUseFlexibleSearch(isOnlyProductIds, isCreateOrderForm));
    populateModel(model, searchPageData, showMode);

    final SearchResultsData<ProductData> searchResultsData = new SearchResultsData<ProductData>();

    searchResultsData.setResults(searchPageData.getResults());
    searchResultsData.setPagination(searchPageData.getPagination());

    model.addAttribute("searchResultsData", searchResultsData);
    model.addAttribute("skuIndex", Integer.valueOf(skuIndex));
    model.addAttribute("isOrderForm", Boolean.valueOf(isOrderForm));
    model.addAttribute("isCreateOrderForm", Boolean.valueOf(isCreateOrderForm));

    if (isCreateOrderForm) {
      model.addAttribute("searchResultType", ADVANCED_SEARCH_RESULT_TYPE_ORDER_FORM);
      model.addAttribute("filterSkus", splitSkusAsList(searchQuery));
    } else {
      model.addAttribute("searchResultType", searchResultType);
    }

    return ControllerConstants.Views.Fragments.Product.ProductLister;
  }