From a808157a622e6a2756a5a6973a0664176d6f8f64 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Sun, 15 Sep 2024 11:33:39 +0800 Subject: [PATCH] 【代码优化】商城: 校验商品分类增加商品分类层级校验 --- yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryService.java | 1 + yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java | 5 +++++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryService.java index 5cacccd..59495a1 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryService.java @@ -87,6 +87,7 @@ public interface ProductCategoryService { * 校验商品分类是否有效。如下情况,视为无效: * 1. 商品分类编号不存在 * 2. 商品分类被禁用 + * 3. 商品分类层级校验,必须使用第二级的商品分类及以下 * * @param ids 商品分类编号数组 */ diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java index 64b8a61..288543b 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java @@ -20,6 +20,7 @@ import java.util.Map; import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.CATEGORY_LEVEL; import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.PARENT_ID_NULL; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.*; @@ -119,6 +120,10 @@ public class ProductCategoryServiceImpl implements ProductCategoryService { if (!CommonStatusEnum.ENABLE.getStatus().equals(category.getStatus())) { throw exception(CATEGORY_DISABLED, category.getName()); } + // 校验层级 + if (getCategoryLevel(id) < CATEGORY_LEVEL) { + throw exception(SPU_SAVE_FAIL_CATEGORY_LEVEL_ERROR); + } }); } -- libgit2 0.21.4