fix: 优化es价格搜索,设置超出限制,则默认搜索最大值

This commit is contained in:
paulGao 2022-11-29 15:03:16 +08:00
parent 32ca2e4298
commit ba6bb56e81

View File

@ -5,6 +5,7 @@ import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix; import cn.lili.cache.CachePrefix;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
@ -480,6 +481,15 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
if (prices.length == 2) { if (prices.length == 2) {
max = Convert.toDouble(prices[1], Double.MAX_VALUE); max = Convert.toDouble(prices[1], Double.MAX_VALUE);
} }
if (min > max) {
throw new ServiceException("价格区间错误");
}
if (min > Double.MAX_VALUE) {
min = Double.MAX_VALUE;
}
if (max > Double.MAX_VALUE) {
max = Double.MAX_VALUE;
}
filterBuilder.must(QueryBuilders.rangeQuery("price").from(min).to(max).includeLower(true).includeUpper(true)); filterBuilder.must(QueryBuilders.rangeQuery("price").from(min).to(max).includeLower(true).includeUpper(true));
} }
} }