Authored by 胡古飞

fix SearchSortHelper

package com.yoho.search.service.service.helper;
import com.yoho.search.base.utils.CharUtils;
import com.yoho.search.base.utils.ISearchConstants;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.PostConstruct;
import org.apache.commons.lang.StringUtils;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
... ... @@ -11,10 +17,8 @@ import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.yoho.search.base.utils.CharUtils;
import com.yoho.search.base.utils.ISearchConstants;
@Component
public class SearchSortHelper {
... ... @@ -22,10 +26,10 @@ public class SearchSortHelper {
@Autowired
private SearchCommonHelper searchCommonHelper;
private static final List<String> orderValues = new ArrayList<String>();
private Set<String> orderValues = new HashSet<String>();
@PostConstruct
void init() {
private void init() {
orderValues.add("_score:desc");
orderValues.add("_score:asc");
... ... @@ -72,8 +76,8 @@ public class SearchSortHelper {
orderValues.add("activities.activity_id:desc");
orderValues.add("activities.activity_id:asc");
orderValues.add("heatValue:asc");
orderValues.add("heatValue:desc");
orderValues.add("heatValue:asc");
orderValues.add("heatValue:desc");
}
/**
... ... @@ -85,10 +89,10 @@ public class SearchSortHelper {
public String getLegalOrder(Map<String, String> paramMap) {
String sortFields = paramMap.get("order");
boolean isNewRecPage = searchCommonHelper.isNewRecPage(paramMap);
return this.getLegalOrder(sortFields,isNewRecPage);
return this.getLegalOrder(sortFields, isNewRecPage);
}
public String getLegalOrder(String order,boolean isNewRecPage) {
public String getLegalOrder(String order, boolean isNewRecPage) {
if (StringUtils.isBlank(order)) {
return null;
}
... ... @@ -98,12 +102,12 @@ public class SearchSortHelper {
if (!orderValues.contains(sortField)) {
continue;
}
realOrder.append("," + this.dealSortField(sortField,isNewRecPage));
realOrder.append(',' + this.dealSortField(sortField, isNewRecPage));
}
return realOrder.toString().replaceFirst(",", "");
}
public String dealSortField(String sortField,boolean isNewRecPage) {
public String dealSortField(String sortField, boolean isNewRecPage) {
String[] sortParts = sortField.split(":");
String realSortField = sortParts[0];
if (realSortField.contains("activities")) {
... ... @@ -112,7 +116,7 @@ public class SearchSortHelper {
// do nothing
} else if (realSortField.equals("discount")) {
realSortField = "promotionDiscount";
} else if (realSortField.equals("shelve_time") && !isNewRecPage) {//非新品到着的页面最新全部按真实上架时间排序
} else if (!isNewRecPage && realSortField.equals("shelve_time")) {// 非新品到着的页面最新全部按真实上架时间排序
realSortField = "firstShelveTime";
} else {
realSortField = CharUtils.underlineToCamelhump(realSortField);
... ... @@ -158,7 +162,7 @@ public class SearchSortHelper {
return true;
}
// 4、新品到着的人气排序时
if(searchCommonHelper.isNewRecHeatValueDescSearch(paramMap)){
if (searchCommonHelper.isNewRecHeatValueDescSearch(paramMap)) {
return true;
}
// 5、品类列表页加分
... ...
... ... @@ -48,8 +48,6 @@ public class BrandWithShopsServiceImpl implements IBrandWithShopsService, Applic
private static final Logger logger = LoggerFactory.getLogger(BrandWithShopsServiceImpl.class);
private static Logger CACHE_MATCH_REQUEST = LoggerFactory.getLogger("CACHE_MATCH_REQUEST");
@Autowired
private SearchParamHelper searchParamHelper;
@Autowired
... ...