...
|
...
|
@@ -71,7 +71,7 @@ public class CutdownPageSceneService extends AbstractPageSceneService { |
|
|
return dataMap;
|
|
|
}
|
|
|
|
|
|
private BoolQueryBuilder buildCollageMustFilter(Collection<Integer> validActivityIds) {
|
|
|
private BoolQueryBuilder buildCutdownPriceMustFilter(Collection<Integer> validActivityIds) {
|
|
|
BoolQueryBuilder filter = QueryBuilders.boolQuery();
|
|
|
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.cutdownPriceActivityIds, validActivityIds));
|
|
|
return filter;
|
...
|
...
|
@@ -94,7 +94,7 @@ public class CutdownPageSceneService extends AbstractPageSceneService { |
|
|
if (activityMap.isEmpty()) {
|
|
|
return new SearchApiResult().setData(buildReturnDataMap(0, 0, pageSize, 0, new ArrayList<>())).setMessage("无正在生效的活动");
|
|
|
}
|
|
|
BoolQueryBuilder mustFilter = this.buildCollageMustFilter(activityMap.keySet());
|
|
|
BoolQueryBuilder mustFilter = this.buildCutdownPriceMustFilter(activityMap.keySet());
|
|
|
|
|
|
//3、构造Pi的searchParam
|
|
|
SearchParam searchParam = searchParamHelper.buildWithMustFilter(paramMap, mustFilter);
|
...
|
...
|
@@ -129,15 +129,15 @@ public class CutdownPageSceneService extends AbstractPageSceneService { |
|
|
//7、查询商品砍价信息
|
|
|
List<CutdownPriceProduct> sknCutdownPriceList = cutdownPriceProductIndexBaseService.querySknCutdownPriceList(productSknList, activityMap.keySet());
|
|
|
|
|
|
//8、去重
|
|
|
Map<Integer, Map<String, Object>> cutdownPriceMap = this.genCutdownPriceInfo(sknCutdownPriceList, activityMap);
|
|
|
//8、针对skn去重,防止一个skn参加了多个砍价活动
|
|
|
Map<Integer, Map<String, Object>> sknCutdownPriceInfoMap = this.genSknCutdownPriceInfoMap(sknCutdownPriceList, activityMap);
|
|
|
|
|
|
//9、构造真实结果
|
|
|
Iterator<Map<String, Object>> productIterator = productList.iterator();
|
|
|
while (productIterator.hasNext()) {
|
|
|
Map<String, Object> product = productIterator.next();
|
|
|
Integer productSkn = MapUtils.getIntValue(product, "productSkn", 0);
|
|
|
Map<String, Object> cutdownPriceInfo = cutdownPriceMap.get(productSkn);
|
|
|
Map<String, Object> cutdownPriceInfo = sknCutdownPriceInfoMap.get(productSkn);
|
|
|
if (cutdownPriceInfo == null) {
|
|
|
productIterator.remove();
|
|
|
continue;
|
...
|
...
|
@@ -157,7 +157,7 @@ public class CutdownPageSceneService extends AbstractPageSceneService { |
|
|
* @param activityMap
|
|
|
* @return
|
|
|
*/
|
|
|
private Map<Integer, Map<String, Object>> genCutdownPriceInfo(List<CutdownPriceProduct> sknCutdownPriceList, Map<Integer, CutdownPriceActivity> activityMap) {
|
|
|
private Map<Integer, Map<String, Object>> genSknCutdownPriceInfoMap(List<CutdownPriceProduct> sknCutdownPriceList, Map<Integer, CutdownPriceActivity> activityMap) {
|
|
|
//1、填充活动信息
|
|
|
List<Map<String, Object>> cutdownPriceReturnList = new ArrayList<>();
|
|
|
for (CutdownPriceProduct cutdownPriceProduct : sknCutdownPriceList) {
|
...
|
...
|
|