Authored by hugufei

砍价fix

... ... @@ -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) {
... ...