mirror of
https://gitee.com/yudaocode/yudao-boot-mini.git
synced 2026-10-06 14:13:14 +08:00
fix(product):类目父级设置成自身(循环层级)明确拒绝
更新类目时把 parentId 设成分类自身的 id 可保存成功(一级类目自身 通过'父分类不能是二级分类'校验后放行),形成循环层级(A53); 创建路径父级必须是已存在分类,天然挡死。 updateCategory 补环检测:parentId==id 时抛新增业务错误 CATEGORY_PARENT_IS_SELF (1_008_001_006)。
This commit is contained in:
+1
@@ -16,6 +16,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode CATEGORY_EXISTS_CHILDREN = new ErrorCode(1_008_001_003, "存在子分类,无法删除");
|
||||
ErrorCode CATEGORY_DISABLED = new ErrorCode(1_008_001_004, "商品分类({})已禁用,无法使用");
|
||||
ErrorCode CATEGORY_HAVE_BIND_SPU = new ErrorCode(1_008_001_005, "类别下存在商品,无法删除");
|
||||
ErrorCode CATEGORY_PARENT_IS_SELF = new ErrorCode(1_008_001_006, "父分类不能设置为分类自身");
|
||||
|
||||
// ========== 商品品牌相关编号 1-008-002-000 ==========
|
||||
ErrorCode BRAND_NOT_EXISTS = new ErrorCode(1_008_002_000, "品牌不存在");
|
||||
|
||||
+4
@@ -55,6 +55,10 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
|
||||
public void updateCategory(ProductCategorySaveReqVO updateReqVO) {
|
||||
// 校验分类是否存在
|
||||
validateProductCategoryExists(updateReqVO.getId());
|
||||
// 校验父分类不能是分类自身(环检测:父级设成自己会形成循环层级,后续按父链遍历将死循环/脏数据)
|
||||
if (Objects.equals(updateReqVO.getParentId(), updateReqVO.getId())) {
|
||||
throw exception(CATEGORY_PARENT_IS_SELF);
|
||||
}
|
||||
// 校验父分类存在
|
||||
validateParentProductCategory(updateReqVO.getParentId());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user