Showing
1 changed file
with
15 additions
and
8 deletions
@@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
24 | import org.springframework.stereotype.Component; | 24 | import org.springframework.stereotype.Component; |
25 | 25 | ||
26 | import java.util.ArrayList; | 26 | import java.util.ArrayList; |
27 | +import java.util.Arrays; | ||
27 | import java.util.List; | 28 | import java.util.List; |
28 | import java.util.Map; | 29 | import java.util.Map; |
29 | 30 | ||
@@ -78,13 +79,14 @@ public class SceneRecallService { | @@ -78,13 +79,14 @@ public class SceneRecallService { | ||
78 | //1、判断当前页码是否在召回的页码里 | 79 | //1、判断当前页码是否在召回的页码里 |
79 | int recallTotalPage = recallSknResult.getRecallTotalPage(); | 80 | int recallTotalPage = recallSknResult.getRecallTotalPage(); |
80 | //2、在召回结果中则直接根据skn去查询 | 81 | //2、在召回结果中则直接根据skn去查询 |
82 | + List<Integer> productSkns = null; | ||
81 | if(page<=recallTotalPage){ | 83 | if(page<=recallTotalPage){ |
82 | - List<Integer> productSkns = CollectionUtils.safeSubList(recallSknResult.getSknList(),(page-1)*pageSize,page*pageSize); | ||
83 | - return bacthSknInfoComponent.queryProductListBySkn(productSkns,productSkns.size()); | ||
84 | - } | 84 | + productSkns = CollectionUtils.safeSubList(recallSknResult.getSknList(),(page-1)*pageSize,page*pageSize); |
85 | + }else{ | ||
85 | //3、过滤召回的skn,修改真实页码,执行查询 | 86 | //3、过滤召回的skn,修改真实页码,执行查询 |
86 | - int realPage = page - recallTotalPage; | ||
87 | - return this.queryProductByFilterSkn(recallSknParams, recallSknResult.getSknList(), realPage, pageSize); | 87 | + productSkns = this.queryProductSknByFilterSkn(recallSknParams, recallSknResult.getSknList(), recallTotalPage-page, pageSize); |
88 | + } | ||
89 | + return bacthSknInfoComponent.queryProductListBySkn(productSkns,productSkns.size()); | ||
88 | } | 90 | } |
89 | 91 | ||
90 | /** | 92 | /** |
@@ -94,7 +96,7 @@ public class SceneRecallService { | @@ -94,7 +96,7 @@ public class SceneRecallService { | ||
94 | * @param pageSize | 96 | * @param pageSize |
95 | * @return | 97 | * @return |
96 | */ | 98 | */ |
97 | - private List<Map<String, Object>> queryProductByFilterSkn(RecallSknParams recallSknParams,List<Integer> notProductSkns,int realPage,int pageSize){ | 99 | + private List<Integer> queryProductSknByFilterSkn(RecallSknParams recallSknParams,List<Integer> notProductSkns,int realPage,int pageSize){ |
98 | SearchParam searchParam = new SearchParam(); | 100 | SearchParam searchParam = new SearchParam(); |
99 | 101 | ||
100 | //1、设置query | 102 | //1、设置query |
@@ -110,7 +112,7 @@ public class SceneRecallService { | @@ -110,7 +112,7 @@ public class SceneRecallService { | ||
110 | searchParam.setSize(pageSize); | 112 | searchParam.setSize(pageSize); |
111 | 113 | ||
112 | //4、设置IncludeFields | 114 | //4、设置IncludeFields |
113 | - searchParam.setIncludeFields(productIndexBaseService.getProductIndexIncludeFields()); | 115 | + searchParam.setIncludeFields(Arrays.asList(ProductIndexEsField.productSkn)); |
114 | 116 | ||
115 | //5、设置排序 | 117 | //5、设置排序 |
116 | List<SortBuilder<?>> sortBuilders = new ArrayList<>(); | 118 | List<SortBuilder<?>> sortBuilders = new ArrayList<>(); |
@@ -119,7 +121,12 @@ public class SceneRecallService { | @@ -119,7 +121,12 @@ public class SceneRecallService { | ||
119 | sortBuilders.add(SortBuilderHelper.getIdDescSort()); | 121 | sortBuilders.add(SortBuilderHelper.getIdDescSort()); |
120 | searchParam.setSortBuilders(sortBuilders); | 122 | searchParam.setSortBuilders(sortBuilders); |
121 | SearchResult searchResult = searchCommonService.doSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX,searchParam); | 123 | SearchResult searchResult = searchCommonService.doSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX,searchParam); |
122 | - return productIndexBaseService.getProductListWithPricePlan(searchResult.getResultList()); | 124 | + |
125 | + List<Integer> results = new ArrayList<>(); | ||
126 | + for (Map<String, Object> product : searchResult.getResultList()) { | ||
127 | + results.add(MapUtils.getIntValue(product,ProductIndexEsField.productSkn,0)); | ||
128 | + } | ||
129 | + return results; | ||
123 | } | 130 | } |
124 | 131 | ||
125 | } | 132 | } |
-
Please register or login to post a comment