Authored by hugufei

fix /productindex/productListWithSupply

... ... @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.ISearchConstants;
import com.yoho.search.base.utils.ProductIndexEsField;
import com.yoho.search.common.cache.aop.SearchCacheAble;
import com.yoho.search.common.utils.SearchApiResultUtils;
import com.yoho.search.core.es.model.SearchParam;
import com.yoho.search.core.es.model.SearchResult;
... ... @@ -24,9 +25,6 @@ import com.yoho.search.models.SearchApiResult;
import com.yoho.search.service.base.SearchCommonService;
import com.yoho.search.service.base.SearchRequestParams;
import com.yoho.search.service.base.index.ProductIndexBaseService;
import com.yoho.search.service.helper.SearchCommonHelper;
import com.yoho.search.service.helper.SearchParamHelper;
import com.yoho.search.service.helper.SearchSortHelper;
import com.yoho.search.service.service.IProductListWithSupplyService;
import com.yoho.search.service.service.ISimilarProductService;
... ... @@ -39,23 +37,17 @@ public class ProductListWithSupplyServiceImpl implements IProductListWithSupplyS
private static final Logger logger = LoggerFactory.getLogger(ProductListWithSupplyServiceImpl.class);
@Autowired
private SearchCommonHelper searchCommonHelper;
@Autowired
private SearchSortHelper searchSortHelper;
@Autowired
private SearchCommonService searchCommonService;
@Autowired
private ProductIndexBaseService productIndexBaseService;
@Autowired
private ISimilarProductService similarProductService;
@Autowired
private SearchParamHelper searchParamHelper;
/**
* 不支持分页,最多返回100
* 不支持分页,返回最多size个
*/
@Override
//@SearchCacheAble(cacheInMinute = 30, cacheName = "PRODUCT_LIST_WITH_SUPPLY", includeParams = { "product_skn" })
@SearchCacheAble(cacheInMinute = 30, cacheName = "PRODUCT_LIST_WITH_SUPPLY", includeParams = { "product_skn" })
public SearchApiResult productListWithSupply(Map<String, String> paramMap) {
try {
// 1)参数校验
... ... @@ -63,10 +55,15 @@ public class ProductListWithSupplyServiceImpl implements IProductListWithSupplyS
if (inputSknListString == null || inputSknListString.isEmpty()) {
return new SearchApiResult().setCode(400).setMessage("请传SKN参数");
}
String[] productSkns = inputSknListString.split(",");
if(productSkns.length>100){
return new SearchApiResult().setCode(400).setMessage("SKN参数太长,请控制在100以内");
}
// 2)构建searchParam
SearchParam searchParam = new SearchParam();
String[] productSkns = inputSknListString.split(",");
BoolQueryBuilder filter = new BoolQueryBuilder();
searchParam.setFiter(filter);
// 2.1)查询这些skn
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.productSkn, productSkns));
// 2.2)保留【上架有库存】或【限购】
... ...