Authored by unknown

各场景接口优化

Showing 18 changed files with 208 additions and 178 deletions
... ... @@ -10,7 +10,7 @@ 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.ICouponSearchService;
import com.yoho.search.service.split.impl.CouponSearchService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
... ... @@ -24,7 +24,7 @@ import com.yoho.search.service.vo.SearchApiResult;
public class CouponSearchController {
@Autowired
private ICouponSearchService couponSearchService;
private CouponSearchService couponSearchService;
/**
* 优惠券商品列表
... ... @@ -35,7 +35,7 @@ public class CouponSearchController {
@ResponseBody
public SearchApiResult couponProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return couponSearchService.couponProductList(paramMap);
return couponSearchService.productList(paramMap);
}
/**
... ... @@ -47,6 +47,6 @@ public class CouponSearchController {
@ResponseBody
public SearchApiResult couponAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return couponSearchService.couponAggregations(paramMap);
return couponSearchService.aggregations(paramMap);
}
}
... ...
... ... @@ -10,7 +10,7 @@ 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.IFuzzySearchService;
import com.yoho.search.service.split.impl.FuzzySearchService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
... ... @@ -23,7 +23,7 @@ import com.yoho.search.service.vo.SearchApiResult;
public class FuzzySearchController {
@Autowired
private IFuzzySearchService fuzzySearchService;
private FuzzySearchService fuzzySearchService;
/**
* 模糊搜索列表
... ... @@ -32,9 +32,9 @@ public class FuzzySearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/fuzzy/productList")
@ResponseBody
public SearchApiResult fuzzyList(HttpServletRequest request) {
public SearchApiResult fuzzyProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return fuzzySearchService.fuzzyProductList(paramMap);
return fuzzySearchService.productList(paramMap);
}
/**
... ... @@ -46,7 +46,7 @@ public class FuzzySearchController {
@ResponseBody
public SearchApiResult fuzzyAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return fuzzySearchService.fuzzyAggregations(paramMap);
return fuzzySearchService.aggregations(paramMap);
}
}
... ...
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.impl.NewArrivalService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
/**
* 新频到着相关接口
* @author gufei.hu
*
*/
@Controller
public class NewArrivalSearchController {
@Autowired
private NewArrivalService newArrivalService;
/**
* 店铺页列表
*
* @return
*/
@RequestMapping(method = RequestMethod.GET, value = "/newArrival/productList")
@ResponseBody
public SearchApiResult newArrivalProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return newArrivalService.productList(paramMap);
}
/**
* 店铺页筛选
*
* @return
*/
@RequestMapping(method = RequestMethod.GET, value = "/newArrival/aggregations")
@ResponseBody
public SearchApiResult newArrivalAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return newArrivalService.aggregations(paramMap);
}
}
... ...
... ... @@ -10,20 +10,21 @@ 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.split.impl.ShopSearchService;
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;
private ShopSearchService shopSearchService;
/**
* 店铺页列表
... ... @@ -32,9 +33,9 @@ public class ShopSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/shop/productList")
@ResponseBody
public SearchApiResult fuzzyList(HttpServletRequest request) {
public SearchApiResult shopProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortProductList(paramMap);
return shopSearchService.productList(paramMap);
}
/**
... ... @@ -44,8 +45,8 @@ public class ShopSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/shop/aggregations")
@ResponseBody
public SearchApiResult fuzzyAggregations(HttpServletRequest request) {
public SearchApiResult shopAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortAggregations(paramMap);
return shopSearchService.aggregations(paramMap);
}
}
... ...
... ... @@ -10,7 +10,7 @@ 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.split.impl.SortSearchService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
... ... @@ -23,7 +23,7 @@ import com.yoho.search.service.vo.SearchApiResult;
public class SortSearchController {
@Autowired
private ISortSearchService sortSearchService;
private SortSearchService sortSearchService;
/**
* 品类页列表
... ... @@ -32,9 +32,9 @@ public class SortSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/sort/productList")
@ResponseBody
public SearchApiResult fuzzyList(HttpServletRequest request) {
public SearchApiResult sortProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortProductList(paramMap);
return sortSearchService.productList(paramMap);
}
/**
... ... @@ -44,8 +44,8 @@ public class SortSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/sort/aggregations")
@ResponseBody
public SearchApiResult fuzzyAggregations(HttpServletRequest request) {
public SearchApiResult sortAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return sortSearchService.sortAggregations(paramMap);
return sortSearchService.aggregations(paramMap);
}
}
... ...
... ... @@ -10,7 +10,7 @@ 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.IZqSearchService;
import com.yoho.search.service.split.impl.ZqSearchService;
import com.yoho.search.service.utils.HttpServletRequestUtils;
import com.yoho.search.service.vo.SearchApiResult;
... ... @@ -23,7 +23,7 @@ import com.yoho.search.service.vo.SearchApiResult;
public class ZqSearchController {
@Autowired
private IZqSearchService zqSearchService;
private ZqSearchService zqSearchService;
/**
* 专区搜索列表
... ... @@ -32,9 +32,9 @@ public class ZqSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/zq/productList")
@ResponseBody
public SearchApiResult fuzzyList(HttpServletRequest request) {
public SearchApiResult zqProductList(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return zqSearchService.zqProductList(paramMap);
return zqSearchService.productList(paramMap);
}
/**
... ... @@ -44,9 +44,9 @@ public class ZqSearchController {
*/
@RequestMapping(method = RequestMethod.GET, value = "/zq/aggregations")
@ResponseBody
public SearchApiResult fuzzyAggregations(HttpServletRequest request) {
public SearchApiResult zqAggregations(HttpServletRequest request) {
Map<String, String> paramMap = HttpServletRequestUtils.transParamType(request);
return zqSearchService.zqAggregations(paramMap);
return zqSearchService.aggregations(paramMap);
}
}
... ...
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public abstract class AbstractSplitService {
public abstract String pageId();
public abstract SearchApiResult productList(Map<String, String> paramMap);
public abstract SearchApiResult aggregations(Map<String, String> paramMap);
}
... ...
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public interface ICouponSearchService {
/**
* 优惠券商品列表
*
* @param paramMap
* @return
*/
public SearchApiResult couponProductList(Map<String, String> paramMap);
/**
* 优惠券筛选项
*
* @param paramMap
* @return
*/
public SearchApiResult couponAggregations(Map<String, String> paramMap);
}
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public interface IFuzzySearchService {
/**
* 模糊搜索页列表
*
* @param paramMap
* @return
*/
public SearchApiResult fuzzyProductList(Map<String, String> paramMap);
/**
* 模糊搜索页筛选项
*
* @param paramMap
* @return
*/
public SearchApiResult fuzzyAggregations(Map<String, String> 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);
}
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public interface ISortSearchService {
/**
* 品类页列表
*
* @param paramMap
* @return
*/
public SearchApiResult sortProductList(Map<String, String> paramMap);
/**
* 品类页页筛选项
*
* @param paramMap
* @return
*/
public SearchApiResult sortAggregations(Map<String, String> paramMap);
}
package com.yoho.search.service.split;
import java.util.Map;
import com.yoho.search.service.vo.SearchApiResult;
public interface IZqSearchService {
/**
* 专区商品列表
* @param paramMap
* @return
*/
public SearchApiResult zqProductList(Map<String, String> paramMap);
/**
* 专区聚合接口
* @param paramMap
* @return
*/
public SearchApiResult zqAggregations(Map<String, String> paramMap);
}
... ... @@ -9,25 +9,31 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.SearchPageIdDefine;
import com.yoho.search.core.es.agg.IAggregation;
import com.yoho.search.service.split.ICouponSearchService;
import com.yoho.search.service.split.AbstractSplitService;
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 CouponSearchServiceImpl implements ICouponSearchService{
public class CouponSearchService extends AbstractSplitService{
private static final Logger logger = LoggerFactory.getLogger(CouponSearchServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(CouponSearchService.class);
@Autowired
private SplitProductListService splitProductListService;
@Autowired
private SplitSelectionsService splitSelectionsService;
@Override
public String pageId() {
return SearchPageIdDefine.PAGE_ID_COUPON;
}
@Override
public SearchApiResult couponProductList(Map<String, String> paramMap) {
public SearchApiResult productList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
... ... @@ -37,7 +43,7 @@ public class CouponSearchServiceImpl implements ICouponSearchService{
}
@Override
public SearchApiResult couponAggregations(Map<String, String> paramMap) {
public SearchApiResult aggregations(Map<String, String> paramMap) {
// 1、获取优惠券页面的筛选结果
List<IAggregation> couponAggregations = splitSelectionsService.getCouponAggregations(paramMap);
JSONObject filterResults = splitSelectionsService.getFiltersResults(paramMap,couponAggregations);
... ...
... ... @@ -9,10 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.SearchPageIdDefine;
import com.yoho.search.service.service.SearchDynamicConfigService;
import com.yoho.search.service.service.helper.SearchCommonHelper;
import com.yoho.search.service.servicenew.ISearchRecommendService;
import com.yoho.search.service.split.IFuzzySearchService;
import com.yoho.search.service.split.AbstractSplitService;
import com.yoho.search.service.split.common.SplitProductListService;
import com.yoho.search.service.split.common.SplitSelectionsService;
import com.yoho.search.service.utils.SearchApiResultUtils;
... ... @@ -20,9 +21,9 @@ import com.yoho.search.service.utils.SearchRequestParams;
import com.yoho.search.service.vo.SearchApiResult;
@Service
public class FuzzySearchServiceImpl implements IFuzzySearchService {
public class FuzzySearchService extends AbstractSplitService{
private static final Logger logger = LoggerFactory.getLogger(FuzzySearchServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(FuzzySearchService.class);
@Autowired
private SplitProductListService splitProductListService;
... ... @@ -37,13 +38,19 @@ public class FuzzySearchServiceImpl implements IFuzzySearchService {
// 当少于20个商品时 返回智能搜索词提示
private static final int SMART_SUGGESTION_PRODUCT_LIMIT = 20;
@Override
public String pageId() {
return SearchPageIdDefine.PAGE_ID_SEARCH;
}
/**
* @1、返回商品列表
* @2、数量太多则返回建议词
*/
@Override
public SearchApiResult fuzzyProductList(Map<String, String> paramMap) {
public SearchApiResult productList(Map<String, String> paramMap) {
try {
// 1、获取商品列表
SearchApiResult searchApiResult = splitProductListService.productList(paramMap);
... ... @@ -94,7 +101,7 @@ public class FuzzySearchServiceImpl implements IFuzzySearchService {
}
@Override
public SearchApiResult fuzzyAggregations(Map<String, String> paramMap) {
public SearchApiResult aggregations(Map<String, String> paramMap) {
// 1、获取通用筛选项
JSONObject commonFilters = splitSelectionsService.getCommonFilters(paramMap);
// 2、获取推荐的品牌
... ... @@ -106,5 +113,4 @@ public class FuzzySearchServiceImpl implements IFuzzySearchService {
result.put("filter", commonFilters);
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.base.utils.SearchPageIdDefine;
import com.yoho.search.core.es.agg.IAggregation;
import com.yoho.search.service.split.AbstractSplitService;
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 NewArrivalService extends AbstractSplitService{
private static final Logger logger = LoggerFactory.getLogger(NewArrivalService.class);
@Autowired
private SplitProductListService splitProductListService;
@Autowired
private SplitSelectionsService splitSelectionsService;
@Override
public String pageId() {
return SearchPageIdDefine.PAGE_ID_NEW;
}
@Override
public SearchApiResult productList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
logger.error("[func=newArrivalProductList][params=" + paramMap + "]", e);
return SearchApiResultUtils.errorSearchApiResult("newArrivalProductList", paramMap, e);
}
}
@Override
public SearchApiResult aggregations(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);
}
}
... ...
... ... @@ -9,17 +9,18 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.SearchPageIdDefine;
import com.yoho.search.core.es.agg.IAggregation;
import com.yoho.search.service.split.IShopSearchService;
import com.yoho.search.service.split.AbstractSplitService;
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 {
public class ShopSearchService extends AbstractSplitService {
private static final Logger logger = LoggerFactory.getLogger(SortSearchServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(SortSearchService.class);
@Autowired
private SplitProductListService splitProductListService;
... ... @@ -27,7 +28,12 @@ public class ShopSearchServiceImpl implements IShopSearchService {
private SplitSelectionsService splitSelectionsService;
@Override
public SearchApiResult shopProductList(Map<String, String> paramMap) {
public String pageId() {
return SearchPageIdDefine.PAGE_ID_SHOP;
}
@Override
public SearchApiResult productList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
... ... @@ -37,10 +43,10 @@ public class ShopSearchServiceImpl implements IShopSearchService {
}
@Override
public SearchApiResult shopAggregations(Map<String, String> paramMap) {
public SearchApiResult aggregations(Map<String, String> paramMap) {
// 1、获取通用筛选项
List<IAggregation> aggregations = splitSelectionsService.getRNAggregations(paramMap);
JSONObject filters = splitSelectionsService.getFiltersResults(paramMap,aggregations);
JSONObject filters = splitSelectionsService.getFiltersResults(paramMap, aggregations);
Map<String, Object> result = new JSONObject();
result.put("filter", filters);
return new SearchApiResult().setData(result);
... ...
... ... @@ -8,16 +8,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.service.split.ISortSearchService;
import com.yoho.search.base.utils.SearchPageIdDefine;
import com.yoho.search.service.split.AbstractSplitService;
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 SortSearchServiceImpl implements ISortSearchService {
public class SortSearchService extends AbstractSplitService {
private static final Logger logger = LoggerFactory.getLogger(SortSearchServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(SortSearchService.class);
@Autowired
private SplitProductListService splitProductListService;
... ... @@ -25,7 +26,12 @@ public class SortSearchServiceImpl implements ISortSearchService {
private SplitSelectionsService splitSelectionsService;
@Override
public SearchApiResult sortProductList(Map<String, String> paramMap) {
public String pageId() {
return SearchPageIdDefine.PAGE_ID_SORT;
}
@Override
public SearchApiResult productList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
... ... @@ -35,7 +41,7 @@ public class SortSearchServiceImpl implements ISortSearchService {
}
@Override
public SearchApiResult sortAggregations(Map<String, String> paramMap) {
public SearchApiResult aggregations(Map<String, String> paramMap) {
// 1、获取通用筛选项
JSONObject commonFilters = splitSelectionsService.getCommonFilters(paramMap);
// 2、获取推荐的品牌
... ...
... ... @@ -8,16 +8,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.service.split.IZqSearchService;
import com.yoho.search.base.utils.SearchPageIdDefine;
import com.yoho.search.service.split.AbstractSplitService;
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 ZqSearchServiceImpl implements IZqSearchService {
public class ZqSearchService extends AbstractSplitService{
private static final Logger logger = LoggerFactory.getLogger(ZqSearchServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(ZqSearchService.class);
@Autowired
private SplitProductListService splitProductListService;
... ... @@ -25,7 +26,12 @@ public class ZqSearchServiceImpl implements IZqSearchService {
private SplitSelectionsService splitSelectionsService;
@Override
public SearchApiResult zqProductList(Map<String, String> paramMap) {
public String pageId() {
return SearchPageIdDefine.PAGE_ID_PROMOTION;
}
@Override
public SearchApiResult productList(Map<String, String> paramMap) {
try {
return splitProductListService.productList(paramMap);
} catch (Exception e) {
... ... @@ -35,7 +41,7 @@ public class ZqSearchServiceImpl implements IZqSearchService {
}
@Override
public SearchApiResult zqAggregations(Map<String, String> paramMap) {
public SearchApiResult aggregations(Map<String, String> paramMap) {
// 1、获取通用筛选项
JSONObject commonFilters = splitSelectionsService.getCommonFilters(paramMap);
// 2、获取推荐的品牌
... ... @@ -47,5 +53,4 @@ public class ZqSearchServiceImpl implements IZqSearchService {
result.put("filter", commonFilters);
return new SearchApiResult().setData(result);
}
}
... ...