商品分页返回值加上skus

This commit is contained in:
zhangji committed 2025-09-01 16:44:21 +08:00
1 parent d1e0f7a972
commit 04ffe7f847
2 files changed
+21 -1

No files matched your search

@@ -32,6 +32,7 @@ import java.util.Map;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.pojo.PageParam.PAGE_SIZE_NONE;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@Tag(name = "管理后台 - 商品 SPU")
@RestController
@@ -124,7 +125,11 @@ public class ProductSpuController {
@PreAuthorize("@ss.hasPermission('product:spu:query')")
public CommonResult<PageResult<ProductSpuWithCreatorRespVO>> getSpuPageWithCreator(@Valid ProductSpuPageReqVO pageVO) {
PageResult<ProductSpuCreatorDO> pageResult = productSpuService.getSpuPageWithCreator(pageVO);
return success(BeanUtils.toBean(pageResult, ProductSpuWithCreatorRespVO.class));
// 查询订单项
List<ProductSkuDO> skuList = productSkuService.getSkuListBySpuId(
convertSet(pageResult.getList(), ProductSpuCreatorDO::getId));
// return success(BeanUtils.toBean(pageResult, ProductSpuWithCreatorRespVO.class));
return success(ProductSpuConvert.INSTANCE.convertPage(pageResult, skuList));
}
@GetMapping("/get-count")
@@ -1,12 +1,16 @@
package cn.iocoder.yudao.module.product.convert.spu;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils;
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSkuRespVO;
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuWithCreatorRespVO;
import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuCreatorDO;
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -39,4 +43,15 @@ public interface ProductSpuConvert {
return CollectionUtils.convertList(spus, spu -> convert(spu, skuMultiMap.get(spu.getId())));
}
default PageResult<ProductSpuWithCreatorRespVO> convertPage(PageResult<ProductSpuCreatorDO> pageResult, List<ProductSkuDO> skuList){
// List<ProductSpuWithCreatorRespVO> list = BeanUtils.toBean(pageResult.getList(), ProductSpuWithCreatorRespVO.class);
Map<Long, List<ProductSkuDO>> skuMap = convertMultiMap(skuList, ProductSkuDO::getSpuId);
List<ProductSpuWithCreatorRespVO> spuVos = CollectionUtils.convertList(pageResult.getList(), spu -> {
List<ProductSkuDO> xOrderItems = skuMap.get(spu.getId());
ProductSpuWithCreatorRespVO spuVo = BeanUtils.toBean(spu, ProductSpuWithCreatorRespVO.class);
spuVo.setSkus(BeanUtils.toBean(xOrderItems, ProductSkuRespVO.class));
return spuVo;
});
return new PageResult<>(spuVos, pageResult.getTotal());
}
}