From b261bb982365a9da231a769fb7cc957d95999088 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Sat, 16 Aug 2025 19:04:52 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E5=95=86=E5=93=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=8E=B7=E5=8F=96=E5=88=86=E7=B1=BB=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SysProductCategoryController.java | 7 ++++- sql/ry_20240629.sql | 2 -- .../service/ISysProductCategoryService.java | 7 +++++ .../impl/SysProductCategoryServiceImpl.java | 26 +++++++++++++++++++ 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProductCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProductCategoryController.java index a46d47451..1147af63c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProductCategoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProductCategoryController.java @@ -72,6 +72,11 @@ public class SysProductCategoryController extends XktBaseController { return R.ok(BeanUtil.copyToList(prodCateService.tree(BeanUtil.toBean(listVO, ProdCateListDTO.class)), ProdCateListResVO.class)); } + @ApiOperation(value = "商品管理列表获取所有商品二级分类及没有二级分类的一级分类", httpMethod = "POST", response = R.class) + @GetMapping("/leaf-node/list") + public R> leafNodeList() { + return R.ok(BeanUtil.copyToList(prodCateService.leafNodeList(), ProdCateVO.class)); + } @ApiOperation(value = "获取商品分类列表", httpMethod = "POST", response = R.class) @PostMapping("/list") @@ -79,7 +84,7 @@ public class SysProductCategoryController extends XktBaseController { return R.ok(BeanUtil.copyToList(prodCateService.selectList(BeanUtil.toBean(listVO, ProdCateListDTO.class)), ProdCateListResVO.class)); } - @ApiOperation(value = "获取商品分类列表", httpMethod = "POST", response = R.class) + @ApiOperation(value = "app搜索框下商品分类列表", httpMethod = "POST", response = R.class) @PostMapping("/app/list") public R> appList(@RequestBody ProdCateListVO listVO) { return R.ok(BeanUtil.copyToList(prodCateService.selectAppList(BeanUtil.toBean(listVO, ProdCateListDTO.class)), ProdCateListResVO.class)); diff --git a/sql/ry_20240629.sql b/sql/ry_20240629.sql index 0c17e6b7c..7feedff32 100644 --- a/sql/ry_20240629.sql +++ b/sql/ry_20240629.sql @@ -3172,8 +3172,6 @@ INSERT INTO `sys_product_category` VALUES (49, '其他拖鞋', 8, 5, '0', 'https://pics1.baidu.com/feed/6609c93d70cf3bc758366c966adb10aecc112a85.png@f_auto?token=89fe04971fb0579147e9ccc52683a013', '', 0, '0', '', '2025-04-15 19:57:12', '', '2025-04-15 19:57:12'); -INSERT INTO `sys_product_category` -VALUES (50, '123', 1, 123, '1', NULL, '', 1, '0', '', '2025-06-28 17:36:35', 'admin', '2025-06-28 17:36:35'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/ISysProductCategoryService.java b/xkt/src/main/java/com/ruoyi/xkt/service/ISysProductCategoryService.java index a5b4da473..7d8e74d1d 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/ISysProductCategoryService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/ISysProductCategoryService.java @@ -91,6 +91,13 @@ public interface ISysProductCategoryService { */ List getAllSubList(); + /** + * 商品管理列表获取所有商品二级分类及没有二级分类的一级分类 + * + * @return List + */ + List leafNodeList(); + /** * 管理员获取商品分类树 * diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/SysProductCategoryServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/SysProductCategoryServiceImpl.java index f969522b2..a127b7eb3 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/SysProductCategoryServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/SysProductCategoryServiceImpl.java @@ -269,6 +269,32 @@ public class SysProductCategoryServiceImpl implements ISysProductCategoryService .collect(Collectors.toList()); } + /** + * 商品管理列表获取所有商品二级分类及没有二级分类的一级分类 + * @return List + */ + @Override + public List leafNodeList() { + List cateList = this.prodCateMapper.selectList(new LambdaQueryWrapper() + .eq(SysProductCategory::getDelFlag, Constants.UNDELETED) + // 排除最顶层的商品分类 + .ne(SysProductCategory::getParentId, 0)); + if (CollectionUtils.isEmpty(cateList)) { + return new ArrayList<>(); + } + // 不是最顶层的商品分类 + List leafNodeList = cateList.stream().filter(x -> !Objects.equals(x.getParentId(), TOPMOST_PRODUCT_CATEGORY_ID)) + .map(x -> BeanUtil.toBean(x, ProdCateDTO.class).setProdCateId(x.getId())).collect(Collectors.toList()); + final List hasSubCateIdList = leafNodeList.stream().map(ProdCateDTO::getParentId).distinct().collect(Collectors.toList()); + List noSubCateList = cateList.stream() + .filter(x -> Objects.equals(x.getParentId(), TOPMOST_PRODUCT_CATEGORY_ID) && !hasSubCateIdList.contains(x.getId())) + .map(x -> BeanUtil.toBean(x, ProdCateDTO.class).setProdCateId(x.getId())) + .collect(Collectors.toList()); + // 最顶层的商品分类(没有二级分类的) + CollectionUtils.addAll(leafNodeList, noSubCateList); + return leafNodeList; + } + /** * 组装商品分类树