Преглед изворни кода

fix(product): 修复购物车商品查询接口参数类型错误

- 将接口方法参数从 Long[] ids 修改为 String id
- 更新控制器层路径参数处理方式,移除 @PathVariable 注解
- 修正服务实现类中分页数据处理逻辑,统一使用 PcProductVo 类型
- 修复购物车查询条件构建,支持逗号分隔的字符串ID查询
- 统一返回数据结构,确保 TableDataInfo 泛型类型正确
肖路 пре 2 месеци
родитељ
комит
b0d9ebbc83

+ 3 - 3
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/controller/pc/MyProductController.java

@@ -188,9 +188,9 @@ public class MyProductController {
     /**
     /**
     * 查询购物车的商品
     * 查询购物车的商品
     * */
     * */
-    @GetMapping("/getProductShoppingCartPage/{ids}")
-    public TableDataInfo<PcProductVo> getProductShoppingCartPage(@PathVariable Long[] ids, PageQuery pageQuery) {
-        return productBaseService.getProductShoppingCartPage(ids,LoginHelper.getUserId(),pageQuery);
+    @GetMapping("/getProductShoppingCartPage")
+    public TableDataInfo<PcProductVo> getProductShoppingCartPage(String id, PageQuery pageQuery) {
+        return productBaseService.getProductShoppingCartPage(id,LoginHelper.getUserId(),pageQuery);
     }
     }
 
 
 
 

+ 1 - 1
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/IProductBaseService.java

@@ -170,7 +170,7 @@ public interface IProductBaseService extends IService<ProductBase>{
     /**
     /**
     * PC端商品购物车
     * PC端商品购物车
     * */
     * */
-    TableDataInfo<PcProductVo> getProductShoppingCartPage(Long[] ids,Long userId, PageQuery pageQuery);
+    TableDataInfo<PcProductVo> getProductShoppingCartPage(String id,Long userId, PageQuery pageQuery);
 
 
     /**
     /**
     * PC端轮播图商品列表
     * PC端轮播图商品列表

+ 16 - 14
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProductBaseServiceImpl.java

@@ -1255,7 +1255,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
             List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
             List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
             int size = productBaseVos.size();
             int size = productBaseVos.size();
             if (size > pageQuery.getPageSize()) {
             if (size > pageQuery.getPageSize()) {
-                productBaseVos.remove(productBaseVos.size() - 1);
+                pcProductVos.remove(pcProductVos.size() - 1);
             }
             }
             TableDataInfo<ProductBaseVo> tableDataInfo = TableDataInfo.build(productBaseVos);
             TableDataInfo<ProductBaseVo> tableDataInfo = TableDataInfo.build(productBaseVos);
             tableDataInfo.setTotal(size);
             tableDataInfo.setTotal(size);
@@ -1285,13 +1285,13 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
             List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
             List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
             if (CollUtil.isNotEmpty(productBaseVos)) {
             if (CollUtil.isNotEmpty(productBaseVos)) {
                 List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
                 List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
-                int size = productBaseVos.size();
+                int size = pcProductVos.size();
                 if (size > pageQuery.getPageSize()) {
                 if (size > pageQuery.getPageSize()) {
-                    productBaseVos.remove(productBaseVos.size() - 1);
+                    pcProductVos.remove(pcProductVos.size() - 1);
                 }
                 }
-                TableDataInfo<ProductBaseVo> tableDataInfo = TableDataInfo.build(productBaseVos);
+                TableDataInfo<PcProductVo> tableDataInfo = TableDataInfo.build(pcProductVos);
                 tableDataInfo.setTotal(size);
                 tableDataInfo.setTotal(size);
-                return TableDataInfo.build(pcProductVos);
+                return tableDataInfo;
             }
             }
         }
         }
 
 
@@ -1325,13 +1325,13 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
 
 
 //                productBaseVos.forEach(vo -> {
 //                productBaseVos.forEach(vo -> {
 //                });
 //                });
-                int size = productBaseVos.size();
+                int size = pcProductVos.size();
                 if (size > pageQuery.getPageSize()) {
                 if (size > pageQuery.getPageSize()) {
-                    productBaseVos.remove(productBaseVos.size() - 1);
+                    pcProductVos.remove(pcProductVos.size() - 1);
                 }
                 }
-                TableDataInfo<ProductBaseVo> tableDataInfo = TableDataInfo.build(productBaseVos);
+                TableDataInfo<PcProductVo> tableDataInfo = TableDataInfo.build(pcProductVos);
                 tableDataInfo.setTotal( size);
                 tableDataInfo.setTotal( size);
-                return TableDataInfo.build(pcProductVos);
+                return tableDataInfo;
             }
             }
         }
         }
         return TableDataInfo.build();
         return TableDataInfo.build();
@@ -1372,11 +1372,13 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
      * @param pageQuery
      * @param pageQuery
      */
      */
     @Override
     @Override
-    public TableDataInfo<PcProductVo> getProductShoppingCartPage(Long[] ids,Long userId, PageQuery pageQuery) {
-        Page<ProductShoppingCart> productShoppingCartPage = productShoppingCartMapper.selectPage(pageQuery.build(), Wrappers.lambdaQuery(ProductShoppingCart.class)
-            .eq(ProductShoppingCart::getUserId, userId)
-            .in(ids != null && ids.length > 0, ProductShoppingCart::getId, ids)
-        );
+    public TableDataInfo<PcProductVo> getProductShoppingCartPage(String id,Long userId, PageQuery pageQuery) {
+        LambdaQueryWrapper<ProductShoppingCart> lqw = Wrappers.lambdaQuery(ProductShoppingCart.class);
+        lqw.eq(ProductShoppingCart::getUserId, userId);
+            if (ObjectUtil.isNotEmpty(id)) {
+                lqw.eq(ProductShoppingCart::getId, id.split(","));
+            }
+        Page<ProductShoppingCart> productShoppingCartPage = productShoppingCartMapper.selectPage(pageQuery.build(), lqw);
         if (CollUtil.isNotEmpty(productShoppingCartPage.getRecords())) {
         if (CollUtil.isNotEmpty(productShoppingCartPage.getRecords())) {
             List<PcProductVo> productVos = new ArrayList<>();
             List<PcProductVo> productVos = new ArrayList<>();
             for (ProductShoppingCart productShoppingCart : productShoppingCartPage.getRecords()) {
             for (ProductShoppingCart productShoppingCart : productShoppingCartPage.getRecords()) {