...
|
...
|
@@ -9,6 +9,7 @@ import com.yoho.search.core.es.model.SearchParam; |
|
|
import com.yoho.search.dal.model.SimilarSkn;
|
|
|
import com.yoho.search.models.SearchApiResult;
|
|
|
import com.yoho.search.service.base.SearchRequestParams;
|
|
|
import com.yoho.search.service.base.index.BigdataSimilarSknIndexBaseService;
|
|
|
import com.yoho.search.service.base.index.ProductIndexBaseService;
|
|
|
import com.yoho.search.service.helper.ProductListHelper;
|
|
|
import org.apache.commons.beanutils.BeanUtils;
|
...
|
...
|
@@ -34,6 +35,8 @@ public class BigdataSimilarSknService { |
|
|
private ProductIndexBaseService productIndexBaseService;
|
|
|
@Autowired
|
|
|
private ProductListHelper productListHelper;
|
|
|
@Autowired
|
|
|
private BigdataSimilarSknIndexBaseService bigdataSimilarSknIndexBaseService;
|
|
|
|
|
|
/**
|
|
|
* 获取非重复skn
|
...
|
...
|
@@ -68,21 +71,20 @@ public class BigdataSimilarSknService { |
|
|
return new SearchApiResult().setCode(400).setMessage("SKN不存在");
|
|
|
}
|
|
|
//4、获取similarskn
|
|
|
SimilarSkn similarSkn = new SimilarSkn();
|
|
|
BeanUtils.populate(similarSkn, searchLikeHelper.searchBigdataSimilarSkn(productSkn));
|
|
|
SimilarSkn similarSkn = bigdataSimilarSknIndexBaseService.querySimilarSkn(productSkn);
|
|
|
|
|
|
//5、构造searchParams
|
|
|
List<SearchParam> searchParams = new ArrayList<>();
|
|
|
//5.1)图片[性别+不同店铺]
|
|
|
List<String> diffShopImgSimilarSkns = new ArrayList<>();
|
|
|
if (StringUtils.isNotEmpty(similarSkn.getDiffShopImgSimilarSkns())) {
|
|
|
if (similarSkn != null && StringUtils.isNotEmpty(similarSkn.getDiffShopImgSimilarSkns())) {
|
|
|
diffShopImgSimilarSkns = this.getDistinctSknList(similarSkn.getDiffShopImgSimilarSkns());
|
|
|
}
|
|
|
searchParams.add(this.builderSimilarSknSearchParam(productInfoInEs, diffShopImgSimilarSkns, true));
|
|
|
|
|
|
//5.2)行为[性别+不同店铺+同品类]
|
|
|
List<String> diffShopActionSimilarSkns = new ArrayList<>();
|
|
|
if (StringUtils.isNotEmpty(similarSkn.getDiffShopActionSimilarSkns())) {
|
|
|
if (similarSkn != null && StringUtils.isNotEmpty(similarSkn.getDiffShopActionSimilarSkns())) {
|
|
|
diffShopActionSimilarSkns = this.getDistinctSknList(similarSkn.getDiffShopActionSimilarSkns());
|
|
|
}
|
|
|
searchParams.add(this.builderSimilarSknSearchParam(productInfoInEs, diffShopActionSimilarSkns, true));
|
...
|
...
|
@@ -143,12 +145,7 @@ public class BigdataSimilarSknService { |
|
|
if(sortedProductSkns==null || sortedProductSkns.isEmpty() || size<=0){
|
|
|
return results;
|
|
|
}
|
|
|
Map<String, Map<String, Object>> productMap = CollectionUtils.toMap(esProductList, new Transfer<Map<String,Object>, String>() {
|
|
|
@Override
|
|
|
public String transfer (Map<String,Object> product){
|
|
|
return MapUtils.getString(product,ProductIndexEsField.productSkn,"");
|
|
|
};
|
|
|
});
|
|
|
Map<String, Map<String, Object>> productMap = CollectionUtils.toMap(esProductList,(product)->MapUtils.getString(product,ProductIndexEsField.productSkn,""));
|
|
|
for (String productSkn : sortedProductSkns){
|
|
|
if(productMap.containsKey(productSkn)){
|
|
|
results.add(new HashMap<>(productMap.get(productSkn)));//注意循环引用
|
...
|
...
|
|