Authored by unknown

新增店铺列表接口

package com.yoho.search.service.restapi.split;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yoho.search.service.split.ISortSearchService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
/**
* 店铺相关接口
* @author gufei.hu
*
*/
@Controller
public class ShopSearchController {
@Autowired
private ISortSearchService sortSearchService;
/**
* 店铺页列表
*
* @return
*/
@RequestMapping(method = RequestMethod.GET, value = "/shop/productList")
@ResponseBody
public SearchApiResult fuzzyList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortProductList(paramMap);
}
/**
* 店铺页筛选
*
* @return
*/
@RequestMapping(method = RequestMethod.GET, value = "/shop/aggregations")
@ResponseBody
public SearchApiResult fuzzyAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortAggregations(paramMap);
}
}
... ...
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public interface IShopSearchService {
/**
* 店铺页列表
*
* @param paramMap
* @return
*/
public SearchApiResult shopProductList(Map<String, String> paramMap);
/**
* 店铺页筛选项
*
* @param paramMap
* @return
*/
public SearchApiResult shopAggregations(Map<String, String> paramMap);
}
... ...
... ... @@ -95,10 +95,10 @@ public class SplitSelectionsService extends BaseService {
public JSONObject getCommonFilters(Map<String, String> paramMap) {
List<IAggregation> aggregations = this.getCommonAggregations(paramMap);
return this.getCommonFilters(paramMap, aggregations);
return this.getFiltersResults(paramMap, aggregations);
}
public JSONObject getCommonFilters(Map<String, String> paramMap, List<IAggregation> aggregations) {
public JSONObject getFiltersResults(Map<String, String> paramMap, List<IAggregation> aggregations) {
try {
// 1)构造搜索参数
SearchParam searchParam = searchParamHelper.buildDefault(paramMap);
... ... @@ -162,7 +162,12 @@ public class SplitSelectionsService extends BaseService {
aggregations.add(aggregationFactoryService.getStyleAggregation(paramMap));
return aggregations;
}
/**
* 优惠券页面时用的筛选项
* @param paramMap
* @return
*/
public List<IAggregation> getCouponAggregations(Map<String, String> paramMap) {
List<IAggregation> aggregations = new ArrayList<>();
// 1)性别
... ... @@ -185,6 +190,30 @@ public class SplitSelectionsService extends BaseService {
aggregations.add(aggregationFactoryService.getStyleAggregation(paramMap));
return aggregations;
}
/**
* 店铺、新频到着的筛选项列表
* @param paramMap
* @return
*/
public List<IAggregation> getRNAggregations(Map<String, String> paramMap) {
List<IAggregation> aggregations = new ArrayList<>();
// 1)性别
aggregations.add(aggregationFactoryService.getGenderNewAggregation());
// 2)品类
aggregations.add(aggregationFactoryService.getSortGroupAggregation(paramMap));
// 3)品牌
aggregations.add(aggregationFactoryService.getBrandAggregation(paramMap));
// 4)颜色
aggregations.add(aggregationFactoryService.getColorAggregation(paramMap));
// 5)尺码
aggregations.add(aggregationFactoryService.getSizeAggregation());
// 6)价格
aggregations.add(aggregationFactoryService.getPriceAggregation());
// 7)折扣
aggregations.add(aggregationFactoryService.getDiscountAggregation());
return aggregations;
}
public JSONArray getRecommendBrands(Map<String, String> paramMap) {
SearchApiResult searchApiResult = aggRecommendService.aggRecommendBrand(paramMap);
... ...
... ... @@ -40,9 +40,9 @@ public class CouponSearchServiceImpl implements ICouponSearchService{
public SearchApiResult couponAggregations(Map<String, String> paramMap) {
// 1、获取优惠券页面的筛选结果
List<IAggregation> couponAggregations = splitSelectionsService.getCouponAggregations(paramMap);
JSONObject couponFilters = splitSelectionsService.getCommonFilters(paramMap,couponAggregations);
JSONObject filterResults = splitSelectionsService.getFiltersResults(paramMap,couponAggregations);
Map<String, Object> result = new JSONObject();
result.put("filter", couponFilters);
result.put("filter", filterResults);
return new SearchApiResult().setData(result);
}
... ...
package com.yoho.search.service.split.impl;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.core.es.agg.IAggregation;
import com.yoho.search.service.split.IShopSearchService;
import com.yoho.search.service.split.common.SplitProductListService;
import com.yoho.search.service.split.common.SplitSelectionsService;
import com.yoho.search.service.utils.SearchApiResultUtils;
import com.yoho.search.service.vo.SearchApiResult;
@Service
public class ShopSearchServiceImpl implements IShopSearchService {
private static final Logger logger = LoggerFactory.getLogger(SortSearchServiceImpl.class);
@Autowired
private SplitProductListService splitProductListService;
@Autowired
private SplitSelectionsService splitSelectionsService;
@Override
public SearchApiResult shopProductList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
logger.error("[func=sortProductList][params=" + paramMap + "]", e);
return SearchApiResultUtils.errorSearchApiResult("sortProductList", paramMap, e);
}
}
@Override
public SearchApiResult shopAggregations(Map<String, String> paramMap) {
// 1、获取通用筛选项
List<IAggregation> aggregations = splitSelectionsService.getRNAggregations(paramMap);
JSONObject filters = splitSelectionsService.getFiltersResults(paramMap,aggregations);
Map<String, Object> result = new JSONObject();
result.put("filter", filters);
return new SearchApiResult().setData(result);
}
}
... ...