商品列表 V2
This commit is contained in:
@@ -3,9 +3,12 @@ package cn.ysk.cashier.service.impl.productimpl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.ysk.cashier.cons.domain.ViewConSku;
|
||||
import cn.ysk.cashier.cons.repository.ViewConSkuRepository;
|
||||
import cn.ysk.cashier.dto.TbPlatformDictDto;
|
||||
import cn.ysk.cashier.dto.product.TbProductDto;
|
||||
import cn.ysk.cashier.dto.product.TbProductQueryCriteria;
|
||||
import cn.ysk.cashier.dto.product.TbProductQueryV2Criteria;
|
||||
import cn.ysk.cashier.dto.product.TbProductSortCriteria;
|
||||
import cn.ysk.cashier.dto.shop.TbCouponCategoryDto;
|
||||
import cn.ysk.cashier.exception.BadRequestException;
|
||||
@@ -25,6 +28,7 @@ import cn.ysk.cashier.service.TbPlatformDictService;
|
||||
import cn.ysk.cashier.service.product.TbProductService;
|
||||
import cn.ysk.cashier.service.shop.TbCouponCategoryService;
|
||||
import cn.ysk.cashier.utils.*;
|
||||
import cn.ysk.cashier.vo.TbProductNewVo;
|
||||
import cn.ysk.cashier.vo.TbProductVo;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -34,10 +38,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.domain.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -48,7 +49,6 @@ import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.DoubleSupplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -78,6 +78,7 @@ public class TbProductServiceImpl implements TbProductService {
|
||||
private final TbProducSkutMapper producSkutMapper;
|
||||
private final cn.ysk.cashier.mybatis.mapper.TbProductMapper productMapper;
|
||||
private final TbProductSkuResultRepository productSkuResultRepository;
|
||||
private final ViewConSkuRepository viewConSkuRepository;
|
||||
|
||||
|
||||
private final RedisUtils redisUtils;
|
||||
@@ -235,6 +236,36 @@ public class TbProductServiceImpl implements TbProductService {
|
||||
return PageUtil.toPage(tbProductVoList, page.getTotalElements());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria) {
|
||||
Sort sort = Sort.by(Sort.Direction.ASC, "sort");
|
||||
Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort);
|
||||
//查询商品数据
|
||||
Page<TbProduct> page = tbProductRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
||||
List<TbProductNewVo> products = new ArrayList<>();
|
||||
for (TbProduct product : page.getContent()) {
|
||||
TbProductNewVo productNewVo = new TbProductNewVo();
|
||||
BeanUtils.copyProperties(product, productNewVo);
|
||||
productNewVo.setLowPrice("¥"+product.getLowPrice().toString());
|
||||
List<TbProductSku> tbProductSkus = tbProductSkuRepository.searchSku(product.getId().toString());
|
||||
if (tbProductSkus.size() > 1) {
|
||||
BigDecimal maxPrice = tbProductSkus.stream().map(TbProductSku::getSalePrice).max(BigDecimal::compareTo).get();
|
||||
productNewVo.setLowPrice(productNewVo.getLowPrice() + "~¥" + maxPrice);
|
||||
}
|
||||
//规格填充
|
||||
List<TbProductNewVo.TbProductSkuVos> tbProductSkuVos = JSONUtil.parseListTNewList(tbProductSkus, TbProductNewVo.TbProductSkuVos.class);
|
||||
productNewVo.setSkuList(tbProductSkuVos);
|
||||
ViewConSku viewConSku=new ViewConSku();
|
||||
viewConSku.setShopId(Integer.valueOf(product.getShopId()));
|
||||
viewConSku.setProductId(product.getId());
|
||||
Example<ViewConSku> query = Example.of(viewConSku);
|
||||
List<ViewConSku> skuCons = viewConSkuRepository.findAll(query);
|
||||
productNewVo.setConInfos(skuCons);
|
||||
products.add(productNewVo);
|
||||
}
|
||||
return PageUtil.toPage(products, page.getTotalElements());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TbProductVo findByProductId(Integer id) throws Exception {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.ysk.cashier.service.product;
|
||||
|
||||
import cn.ysk.cashier.dto.product.TbProductQueryV2Criteria;
|
||||
import cn.ysk.cashier.dto.product.TbProductSortCriteria;
|
||||
import cn.ysk.cashier.pojo.product.TbProduct;
|
||||
import cn.ysk.cashier.vo.TbProductVo;
|
||||
@@ -29,6 +30,9 @@ public interface TbProductService {
|
||||
Map<String, Object> queryAll(TbProductQueryCriteria criteria, boolean isAdmin);
|
||||
|
||||
|
||||
Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria);
|
||||
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user