|
|
@@ -2,6 +2,7 @@ package org.dromara.product.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import co.elastic.clients.elasticsearch._types.FieldValue;
|
|
|
import co.elastic.clients.elasticsearch._types.aggregations.Aggregate;
|
|
|
@@ -113,6 +114,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
private final ProductRecommendLinkMapper productRecommendLinkMapper;
|
|
|
//平台装修楼层商品
|
|
|
private final ProductDecorationFloorLinkMapper decorationFloorLinkMapper;
|
|
|
+ //工业装修楼层
|
|
|
+ private final ProductIndustrialFloorLinkMapper industrialFloorLinkMapper;
|
|
|
//协议商品
|
|
|
private final ProtocolProductsMapper protocolProductsMapper;
|
|
|
|
|
|
@@ -345,6 +348,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
photosWrapper.eq(ProductPhotos::getProductId, id);
|
|
|
ProductPhotos productPhotos = photosMapper.selectOne(photosWrapper);
|
|
|
if(ObjectUtil.isNotEmpty(productPhotos)){
|
|
|
+ vo.setImageUrl(productPhotos.getImageUrl());
|
|
|
vo.setPcDetail(productPhotos.getProductDetailsPc());
|
|
|
vo.setMobileDetail(productPhotos.getProductDetailsApp());
|
|
|
}
|
|
|
@@ -449,7 +453,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
log.info("执行数据库降级查询...");
|
|
|
|
|
|
LambdaQueryWrapper<ProductBase> lqw = buildQueryWrapper(bo);
|
|
|
-// Page<ProductBaseVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+ Page<ProductBaseVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
|
// log.info("数据库查询完成,总记录数: {}", page.getTotal());
|
|
|
return TableDataInfo.build();
|
|
|
@@ -467,8 +471,9 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
return baseMapper.selectVoList(lqw);
|
|
|
}
|
|
|
private LambdaEsQueryWrapper<ProductBaseVo> buildEsQueryWrapper(ProductBaseBo bo) {
|
|
|
- return new LambdaEsQueryWrapper<ProductBaseVo>()
|
|
|
+ LambdaEsQueryWrapper<ProductBaseVo> productBaseVoLambdaEsQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getProductNo()), ProductBaseVo::getProductNo, bo.getProductNo())
|
|
|
+
|
|
|
.like(ObjectUtil.isNotEmpty(bo.getItemName()), ProductBaseVo::getItemName, bo.getItemName())
|
|
|
.eq(bo.getBrandId() != null, ProductBaseVo::getBrandId, bo.getBrandId())
|
|
|
.eq(bo.getTopCategoryId() != null, ProductBaseVo::getTopCategoryId, bo.getTopCategoryId())
|
|
|
@@ -479,8 +484,13 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getIsSelf()), ProductBaseVo::getIsSelf, bo.getIsSelf())
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getProductReviewStatus()), ProductBaseVo::getProductReviewStatus, bo.getProductReviewStatus())
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getDataSource()), ProductBaseVo::getDataSource, bo.getDataSource())
|
|
|
- .orderByDesc(ProductBaseVo::getId)
|
|
|
- ;
|
|
|
+ .orderByDesc(ProductBaseVo::getId);
|
|
|
+ if (ObjectUtil.isNotEmpty(bo.getIds())){
|
|
|
+ productBaseVoLambdaEsQueryWrapper.in(ProductBaseVo::getId, bo.getIds().split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return productBaseVoLambdaEsQueryWrapper;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -499,8 +509,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
if (ObjectUtil.isNotEmpty(bo.getTopCategoryId())) {
|
|
|
wrapper.eq(ProductBaseVo::getTopCategoryId, bo.getTopCategoryId());
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(bo.getMiddleCategoryId())) {
|
|
|
- wrapper.eq(ProductBaseVo::getMediumCategoryId, bo.getMiddleCategoryId());
|
|
|
+ if (ObjectUtil.isNotEmpty(bo.getMediumCategoryId())) {
|
|
|
+ wrapper.eq(ProductBaseVo::getMediumCategoryId, bo.getMediumCategoryId());
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(bo.getBottomCategoryId())) {
|
|
|
wrapper.eq(ProductBaseVo::getBottomCategoryId, bo.getBottomCategoryId());
|
|
|
@@ -701,7 +711,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
|
|
|
// 1. 更新产品基础信息
|
|
|
ProductBase productBase = MapstructUtils.convert(bo, ProductBase.class);
|
|
|
- validEntityBeforeSave(productBase);
|
|
|
+// validEntityBeforeSave(productBase);
|
|
|
|
|
|
boolean flag = baseMapper.updateById(productBase) > 0;
|
|
|
if (!flag) {
|
|
|
@@ -1354,7 +1364,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
try {
|
|
|
LambdaEsQueryWrapper<ProductBaseVo> esQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
|
|
|
.in(ProductBaseVo::getId, productIds)
|
|
|
- .eq(ProductBaseVo::getProductStatus, 1);
|
|
|
+// .eq(ProductBaseVo::getProductStatus, 1)
|
|
|
+ ;
|
|
|
|
|
|
// 检查ES索引是否存在
|
|
|
if (!esMapper.existsIndex("productbasevo")) {
|
|
|
@@ -1398,7 +1409,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
try {
|
|
|
LambdaEsQueryWrapper<ProductBaseVo> esQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
|
|
|
.in(ProductBaseVo::getProductNo, productNos)
|
|
|
- .eq(ProductBaseVo::getProductStatus, 1);
|
|
|
+// .eq(ProductBaseVo::getProductStatus, 1)
|
|
|
+ ;
|
|
|
|
|
|
// 检查ES索引是否存在
|
|
|
if (!esMapper.existsIndex("productbasevo")) {
|
|
|
@@ -1449,7 +1461,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
lqw.like(StringUtils.isNotBlank(bo.getProductNo()), "b.product_no", bo.getProductNo());
|
|
|
lqw.eq(ObjectUtil.isNotEmpty(bo.getBrandId()), "b.brand_id", bo.getBrandId());
|
|
|
lqw.eq(ObjectUtil.isNotEmpty(bo.getTopCategoryId()), "b.top_category_id", bo.getTopCategoryId());
|
|
|
- lqw.eq(ObjectUtil.isNotEmpty(bo.getMiddleCategoryId()), "b.middle_category_id", bo.getMiddleCategoryId());
|
|
|
+ lqw.eq(ObjectUtil.isNotEmpty(bo.getMediumCategoryId()), "b.medium_category_id", bo.getMediumCategoryId());
|
|
|
lqw.eq(ObjectUtil.isNotEmpty(bo.getBottomCategoryId()), "b.bottom_category_id", bo.getBottomCategoryId());
|
|
|
lqw.eq(ObjectUtil.isNotEmpty(bo.getIsCustomize()), "e.is_customize", bo.getIsCustomize());
|
|
|
if(bo.getPriceRange() != null){
|
|
|
@@ -1489,7 +1501,10 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
if (ObjectUtil.isNotEmpty(bo.getSearchKeyword())) {
|
|
|
esQueryWrapper.and(wrapper -> wrapper
|
|
|
.like(ProductBaseVo::getItemName, bo.getSearchKeyword())
|
|
|
- .or().like(ProductBaseVo::getBrandName, bo.getSearchKeyword())
|
|
|
+ .or()
|
|
|
+ .like(ProductBaseVo::getBrandName, bo.getSearchKeyword())
|
|
|
+ .or()
|
|
|
+ .like(ProductBaseVo::getProductNo, bo.getProductNo())
|
|
|
);
|
|
|
}
|
|
|
|
|
|
@@ -1511,6 +1526,21 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if(bo.getSortField() != null && bo.getSortOrder() != null){
|
|
|
+ String[] sortFields = bo.getSortField().split(",");
|
|
|
+ String[] sortOrders = bo.getSortOrder().split(",");
|
|
|
+ for (int i = 0; i < sortFields.length; i++) {
|
|
|
+ switch (sortFields[i]) {
|
|
|
+ case "1":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
|
|
|
+ case "2":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getTotalInventory);
|
|
|
+ case "3":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getMarketPrice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 检查ES索引是否存在
|
|
|
if (!esMapper.existsIndex("productbasevo")) {
|
|
|
log.warn("ES索引 [productbasevo] 不存在,降级到数据库查询");
|
|
|
@@ -1539,32 +1569,27 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
* @param userId
|
|
|
*/
|
|
|
@Override
|
|
|
- public TableDataInfo<PcProductVo> getProductBrowsingHistoryPage(Long userId, PageQuery pageQuery) {
|
|
|
+ public Map<String,List<PcProductVo>> getProductBrowsingHistory(Long userId) {
|
|
|
List<ProductBrowsingHistoryVo> productBrowsingHistoryVos = productBrowsingHistoryMapper.selectVoList(Wrappers.lambdaQuery(ProductBrowsingHistory.class)
|
|
|
.eq(ProductBrowsingHistory::getUserId, userId)
|
|
|
);
|
|
|
if (CollUtil.isNotEmpty(productBrowsingHistoryVos)) {
|
|
|
- List<Long> productIds = productBrowsingHistoryVos.stream().map(ProductBrowsingHistoryVo::getProductId).toList();
|
|
|
- //获取商品浏览记录
|
|
|
- QueryWrapper<ProductBase> lqw = Wrappers.query(ProductBase.class);
|
|
|
- lqw.in("b.id", productIds);
|
|
|
- lqw.eq("b.product_status", 1);
|
|
|
- int limit = pageQuery.getPageSize() + 1;
|
|
|
- lqw.last("limit "+ limit );
|
|
|
- List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
|
|
|
- if (CollUtil.isNotEmpty(productBaseVos)) {
|
|
|
+ //将浏览记录通过创建时间的日分组
|
|
|
+ Map<String, List<ProductBrowsingHistoryVo>> collect =
|
|
|
+ productBrowsingHistoryVos.stream()
|
|
|
+ .collect(Collectors.groupingBy(productBrowsingHistoryVo -> DateUtil.format(productBrowsingHistoryVo.getCreateTime(), "yyyy-MM-dd")));
|
|
|
+ //遍历构建PC端商品浏览记录
|
|
|
+ return collect.entrySet().stream().map(entry -> {
|
|
|
+ List<Long> productIds = entry.getValue().stream().map(ProductBrowsingHistoryVo::getProductId).distinct().toList();
|
|
|
+ QueryWrapper<ProductBase> lqw = Wrappers.query(ProductBase.class);
|
|
|
+ lqw.in("b.id", productIds);
|
|
|
+ List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
|
|
|
List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
|
|
|
- int size = pcProductVos.size();
|
|
|
- if (size > pageQuery.getPageSize()) {
|
|
|
- pcProductVos.remove(pcProductVos.size() - 1);
|
|
|
- }
|
|
|
- TableDataInfo<PcProductVo> tableDataInfo = TableDataInfo.build(pcProductVos);
|
|
|
- tableDataInfo.setTotal(size);
|
|
|
- return tableDataInfo;
|
|
|
- }
|
|
|
+ return Map.entry(entry.getKey(), pcProductVos);
|
|
|
+ }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
|
|
}
|
|
|
|
|
|
- return TableDataInfo.build();
|
|
|
+ return Map.of();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1577,7 +1602,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
public TableDataInfo<PcProductVo> getFavoritesProductPage(Long favoritesId, Long userId, PageQuery pageQuery) {
|
|
|
//获取收藏夹商品id
|
|
|
List<ProductCollectVo> productFavoritesLinkVos = productCollectMapper.selectVoList(Wrappers.lambdaQuery(ProductCollect.class)
|
|
|
- .eq(ProductCollect::getFavoritesId, favoritesId)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(favoritesId),ProductCollect::getFavoritesId, favoritesId)
|
|
|
.eq(ProductCollect::getUserId, userId)
|
|
|
);
|
|
|
if (CollUtil.isNotEmpty(productFavoritesLinkVos)) {
|
|
|
@@ -1585,7 +1610,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
//获取收藏夹商品
|
|
|
QueryWrapper<ProductBase> lqw = Wrappers.query(ProductBase.class);
|
|
|
lqw.in("b.id", productIds);
|
|
|
- lqw.eq("b.product_status", 1);
|
|
|
+// lqw.eq("b.product_status", 1);
|
|
|
int limit = pageQuery.getPageSize() + 1;
|
|
|
lqw.last("limit "+ limit );
|
|
|
List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
|
|
|
@@ -1670,6 +1695,30 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
return TableDataInfo.build();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * PC端商品购物车数量
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @param isShow
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Long getProductShoppingCartCount(Long userId, Integer isShow) {
|
|
|
+ if (ObjectUtil.isNotNull(userId)) {
|
|
|
+ List<ProductShoppingCartVo> productShoppingCartVos = productShoppingCartMapper.selectVoList(Wrappers.lambdaQuery(ProductShoppingCart.class)
|
|
|
+ .eq(ProductShoppingCart::getUserId, userId)
|
|
|
+ );
|
|
|
+ if (CollUtil.isEmpty(productShoppingCartVos)){
|
|
|
+ return 0L;
|
|
|
+ }
|
|
|
+ Long count = baseMapper.selectCount(Wrappers.lambdaQuery(ProductBase.class)
|
|
|
+ .in(ProductBase::getId, productShoppingCartVos.stream().map(ProductShoppingCartVo::getProductId).toList())
|
|
|
+ .eq(ProductBase::getProductStatus, 1)
|
|
|
+ );
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+ return 0L;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* PC端轮播图商品列表
|
|
|
*/
|
|
|
@@ -1701,13 +1750,13 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
public List<PcProductVo> getRecommendedCategoryProductList(Long categoryId) {
|
|
|
List<ProductCategoryRecommendedLinkVo> productCategoryRecommendedLinkVos = productCategoryRecommendedLinkMapper.selectVoList(
|
|
|
Wrappers.lambdaQuery(ProductCategoryRecommendedLink.class)
|
|
|
- .eq(ProductCategoryRecommendedLink::getCategoryId, categoryId)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(categoryId),ProductCategoryRecommendedLink::getCategoryId, categoryId)
|
|
|
);
|
|
|
if (CollUtil.isNotEmpty(productCategoryRecommendedLinkVos)) {
|
|
|
List<Long> productIds = productCategoryRecommendedLinkVos.stream().map(ProductCategoryRecommendedLinkVo::getProductId).toList();
|
|
|
QueryWrapper<ProductBase> lqw = Wrappers.query(ProductBase.class);
|
|
|
lqw.in("b.id", productIds);
|
|
|
- lqw.eq("b.product_status", 1);
|
|
|
+// lqw.eq("b.product_status", 1);
|
|
|
List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
|
|
|
if (CollUtil.isNotEmpty(productBaseVos)) {
|
|
|
return BeanUtil.copyToList(productBaseVos, PcProductVo.class);
|
|
|
@@ -1723,15 +1772,15 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
*/
|
|
|
@Override
|
|
|
public List<PcProductVo> getIndustrialFloorProductList(Long floorId) {
|
|
|
- List<ProductDecorationFloorLinkVo> productDecorationFloorLinkVos = decorationFloorLinkMapper.selectVoList(
|
|
|
- Wrappers.lambdaQuery(ProductDecorationFloorLink.class)
|
|
|
- .eq(ProductDecorationFloorLink::getFloorNo, floorId)
|
|
|
+ List<ProductIndustrialFloorLinkVo> productIndustrialFloorLinkVos = industrialFloorLinkMapper.selectVoList(
|
|
|
+ Wrappers.lambdaQuery(ProductIndustrialFloorLink.class)
|
|
|
+ .eq(ProductIndustrialFloorLink::getFloorId, floorId)
|
|
|
);
|
|
|
- if (CollUtil.isNotEmpty(productDecorationFloorLinkVos)) {
|
|
|
- List<String> productNos = productDecorationFloorLinkVos.stream().map(ProductDecorationFloorLinkVo::getProductNo).toList();
|
|
|
+ if (CollUtil.isNotEmpty(productIndustrialFloorLinkVos)) {
|
|
|
+ List<Long> productIds = productIndustrialFloorLinkVos.stream().map(ProductIndustrialFloorLinkVo::getProductId).toList();
|
|
|
QueryWrapper<ProductBase> lqw = Wrappers.query(ProductBase.class);
|
|
|
- lqw.in("b.product_no", productNos);
|
|
|
- lqw.eq("b.product_status", 1);
|
|
|
+ lqw.in("b.id", productIds);
|
|
|
+// lqw.eq("b.product_status", 1);
|
|
|
List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
|
|
|
if (CollUtil.isNotEmpty(productBaseVos)) {
|
|
|
return BeanUtil.copyToList(productBaseVos, PcProductVo.class);
|
|
|
@@ -1783,7 +1832,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
try {
|
|
|
LambdaEsQueryWrapper<ProductBaseVo> esQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
|
|
|
.in(ProductBaseVo::getId, productIds)
|
|
|
- .eq(ProductBaseVo::getProductStatus, 1);
|
|
|
+// .eq(ProductBaseVo::getProductStatus, 1)
|
|
|
+ ;
|
|
|
|
|
|
// 检查ES索引是否存在
|
|
|
if (!esMapper.existsIndex("productbasevo")) {
|
|
|
@@ -1870,10 +1920,48 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
.le(ObjectUtil.isNotEmpty(bo.getMaxPrice()), ProtocolProducts::getAgreementPrice, bo.getMaxPrice())
|
|
|
);
|
|
|
if (CollUtil.isNotEmpty(protocolProductsVos)) {
|
|
|
- LambdaEsQueryWrapper<ProductBaseVo> wrapper = new LambdaEsQueryWrapper<ProductBaseVo>();
|
|
|
+ LambdaEsQueryWrapper<ProductBaseVo> esQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>();
|
|
|
// wrapper.eq(ProductBaseVo::getProductStatus, 1);
|
|
|
- wrapper.in(ProductBaseVo::getId, protocolProductsVos.stream().map(ProtocolProductsVo::getProductId).toList());
|
|
|
- EsPageInfo<ProductBaseVo> esPageInfo = esMapper.pageQuery(wrapper, pageQuery.getPageNum(), pageQuery.getPageSize());
|
|
|
+ esQueryWrapper.in(ProductBaseVo::getId, protocolProductsVos.stream().map(ProtocolProductsVo::getProductId).toList());
|
|
|
+ // 添加额外的查询条件
|
|
|
+ esQueryWrapper.like(ObjectUtil.isNotEmpty(bo.getItemName()),ProductBaseVo::getItemName,bo.getItemName());
|
|
|
+ esQueryWrapper.eq(ObjectUtil.isNotEmpty(bo.getProductNo()),ProductBaseVo::getProductNo,bo.getProductNo());
|
|
|
+ esQueryWrapper.eq(ObjectUtil.isNotEmpty(bo.getTopCategoryId()),ProductBaseVo::getTopCategoryId,bo.getTopCategoryId());
|
|
|
+ esQueryWrapper.eq(ObjectUtil.isNotEmpty(bo.getMediumCategoryId()),ProductBaseVo::getMediumCategoryId,bo.getMediumCategoryId());
|
|
|
+ esQueryWrapper.eq(ObjectUtil.isNotEmpty(bo.getBottomCategoryId()),ProductBaseVo::getBottomCategoryId,bo.getBottomCategoryId());
|
|
|
+ if (bo.getPriceRange() != null) {
|
|
|
+ //价格区间 1:1-100 2:100-500 3:500-1000 4:1000以上
|
|
|
+ switch (bo.getPriceRange()) {
|
|
|
+ case "1":
|
|
|
+ esQueryWrapper.between(ProductBaseVo::getMarketPrice, 1, 100);
|
|
|
+ break;
|
|
|
+ case "2":
|
|
|
+ esQueryWrapper.between(ProductBaseVo::getMarketPrice, 100, 500);
|
|
|
+ break;
|
|
|
+ case "3":
|
|
|
+ esQueryWrapper.between(ProductBaseVo::getMarketPrice, 500, 1000);
|
|
|
+ break;
|
|
|
+ case "4":
|
|
|
+ esQueryWrapper.ge(ProductBaseVo::getMarketPrice, 1000);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(bo.getSortField() != null && bo.getSortOrder() != null){
|
|
|
+ String[] sortFields = bo.getSortField().split(",");
|
|
|
+ String[] sortOrders = bo.getSortOrder().split(",");
|
|
|
+ for (int i = 0; i < sortFields.length; i++) {
|
|
|
+ switch (sortFields[i]) {
|
|
|
+ case "1":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
|
|
|
+ case "2":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getTotalInventory);
|
|
|
+ case "3":
|
|
|
+ esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getMarketPrice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ EsPageInfo<ProductBaseVo> esPageInfo = esMapper.pageQuery(esQueryWrapper, pageQuery.getPageNum(), pageQuery.getPageSize());
|
|
|
List<PcProductVo> pcProductVos = BeanUtil.copyToList(esPageInfo.getList(), PcProductVo.class);
|
|
|
TableDataInfo<PcProductVo> build = TableDataInfo.build(pcProductVos);
|
|
|
build.getRows().forEach(pcProductVo -> {
|
|
|
@@ -1903,8 +1991,8 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
|
|
|
if (ObjectUtil.isNotEmpty(bo.getTopCategoryId())) {
|
|
|
wrapper.eq(ProductBaseVo::getTopCategoryId, bo.getTopCategoryId());
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(bo.getMiddleCategoryId())) {
|
|
|
- wrapper.eq(ProductBaseVo::getMediumCategoryId, bo.getMiddleCategoryId());
|
|
|
+ if (ObjectUtil.isNotEmpty(bo.getMediumCategoryId())) {
|
|
|
+ wrapper.eq(ProductBaseVo::getMediumCategoryId, bo.getMediumCategoryId());
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(bo.getBottomCategoryId())) {
|
|
|
wrapper.eq(ProductBaseVo::getBottomCategoryId, bo.getBottomCategoryId());
|