From ee76a4cfdad5cf0f37650fa0bed57cd6701c1eae Mon Sep 17 00:00:00 2001 From: huk Date: Mon, 29 Sep 2025 11:20:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(goods):=20=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=88=86=E7=B1=BB=E6=A0=A1=E9=AA=8C=E4=B8=8E=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD-=20=E5=9C=A8=20Pr?= =?UTF-8?q?oductCategory=20=E5=AE=9E=E4=BD=93=E7=B1=BB=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=90=8D=E7=A7=B0=E5=92=8C=E5=9B=BE=E6=A0=87=E7=9A=84?= =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E6=A0=A1=E9=AA=8C=E6=B3=A8=E8=A7=A3=20-?= =?UTF-8?q?=E4=B8=BA=E6=8E=A7=E5=88=B6=E5=99=A8=E5=90=AF=E7=94=A8=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=A0=A1=E9=AA=8C=E6=94=AF=E6=8C=81=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E8=AF=B7=E6=B1=82=E6=95=B0=E6=8D=AE=E5=90=88=E6=B3=95?= =?UTF-8?q?=E6=80=A7=20-=20=E5=AE=9E=E7=8E=B0=E5=88=86=E7=B1=BB=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=92=8C=E6=9B=B4=E6=96=B0=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=AE=BE=E7=BD=AE=E5=88=86=E7=B1=BB=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E5=B9=B6=E6=A3=80=E6=9F=A5=E9=87=8D=E5=A4=8D=E6=80=A7?= =?UTF-8?q?=20-=20=E5=BC=95=E5=85=A5=E6=96=AD=E8=A8=80=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E9=87=8D=E5=A4=8D=E5=88=86=E7=B1=BB=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=88=96=E6=9B=B4=E6=96=B0=20-=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AF=B9=E7=88=B6=E7=BA=A7=E5=88=86=E7=B1=BB=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E6=83=85=E5=86=B5=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductCategoryController.java | 2 ++ .../goods/domain/entity/ProductCategory.java | 3 ++ .../goods/service/ProductCategoryService.java | 5 ++++ .../impl/ProductCategoryServiceImpl.java | 29 +++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java index b93c71f29..7e6050d41 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java @@ -14,6 +14,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -29,6 +30,7 @@ import java.util.List; @RestController @RequestMapping("/pms/product/category") @RequiredArgsConstructor +@Validated public class ProductCategoryController extends BaseController { private final ProductCategoryService service; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java index bb0c0bf84..21d0e1c67 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import org.apache.ibatis.type.JdbcType; import org.dromara.common.core.domain.model.BaseAudit; @@ -30,6 +31,7 @@ public class ProductCategory extends BaseAudit { @Schema(description = "NAME") @Excel(name = "NAME") + @NotBlank(message = "名称不能为空") private String name; @Schema(description = "分类级别:0->1级;1->2级") @@ -46,6 +48,7 @@ public class ProductCategory extends BaseAudit { @Schema(description = "图标") @Excel(name = "图标") + @NotBlank(message = "图标不能为空") private String icon; @Schema(description = "删除标志(0代表存在,1代表删除)") diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductCategoryService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductCategoryService.java index a31a3cfff..fc9d5f7f1 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductCategoryService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductCategoryService.java @@ -8,5 +8,10 @@ import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; import java.util.List; public interface ProductCategoryService extends IService { + + boolean save(ProductCategory productCategory); + + boolean updateById(ProductCategory productCategory); + List tree(Wrapper wrapper); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductCategoryServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductCategoryServiceImpl.java index 60c972ebc..be6d58336 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductCategoryServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductCategoryServiceImpl.java @@ -1,6 +1,8 @@ package com.wzj.soopin.goods.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.goods.convert.ProductCategoryConvert; import com.wzj.soopin.goods.domain.entity.ProductCategory; @@ -8,6 +10,7 @@ import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; import com.wzj.soopin.goods.mapper.ProductCategoryMapper; import com.wzj.soopin.goods.service.ProductCategoryService; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,6 +31,32 @@ public class ProductCategoryServiceImpl extends ServiceImpl ServiceException.of("分类已存在")); + return super.save(productCategory); + } + + @Override + public boolean updateById(ProductCategory productCategory) { + boolean exists = this.exists(Wrappers.lambdaQuery(ProductCategory.class) + .ne(ProductCategory::getId, productCategory.getId()) + .eq(ProductCategory::getName, productCategory.getName()) + .eq(ProductCategory::getParentId, productCategory.getParentId())); + Assert.isFalse(exists, () -> ServiceException.of("分类已存在")); + return super.updateById(productCategory); + } + @Override public List tree(Wrapper wrapper) { List list = this.list(wrapper);