Explorar el Código

【代码优化】MALL:完善管理端获得商品浏览记录分页接口

YunaiV hace 11 meses
padre
commit
401de30344

+ 2 - 4
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/history/ProductBrowseHistoryController.java

@@ -22,10 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 
 @Tag(name = "管理后台 - 商品浏览记录")
@@ -49,8 +47,8 @@ public class ProductBrowseHistoryController {
         }
 
         // 得到商品 spu 信息
-        Set<Long> spuIds = convertSet(pageResult.getList(), ProductBrowseHistoryDO::getSpuId);
-        Map<Long, ProductSpuDO> spuMap = convertMap(productSpuService.getSpuList(spuIds), ProductSpuDO::getId);
+        Map<Long, ProductSpuDO> spuMap = productSpuService.getSpuMap(
+                convertSet(pageResult.getList(), ProductBrowseHistoryDO::getSpuId));
         return success(BeanUtils.toBean(pageResult, ProductBrowseHistoryRespVO.class,
                 vo -> Optional.ofNullable(spuMap.get(vo.getSpuId()))
                         .ifPresent(spu -> vo.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setPrice(spu.getPrice()))));

+ 12 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.product.service.spu;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuSaveReqVO;
 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusReqVO;
@@ -58,6 +59,17 @@ public interface ProductSpuService {
      */
     List<ProductSpuDO> getSpuList(Collection<Long> ids);
 
+    /**
+     * 获得商品 SPU Map
+     *
+     * @param ids 编号数组
+     * @return 商品 SPU Map
+     */
+    default Map<Long, ProductSpuDO> getSpuMap(Collection<Long> ids) {
+        List<ProductSpuDO> list = getSpuList(ids);
+        return CollectionUtils.convertMap(list, ProductSpuDO::getId);
+    }
+
     /**
      * 获得指定状态的商品 SPU 列表
      *