From 6e342370287e5eead0c2dedff807d5f77989eb63 Mon Sep 17 00:00:00 2001 From: SjS Date: Tue, 8 Apr 2025 20:31:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E7=9B=B8=E5=85=B3=E3=80=81?= =?UTF-8?q?=E6=96=87=E7=AB=A0=E5=88=86=E7=B1=BBbug=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=81=E6=96=87=E7=AB=A0=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E3=80=81=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bst/agreement/mapper/AgreementMapper.xml | 2 +- .../service/impl/ArticleServiceImpl.java | 20 +++++++----- .../impl/ArticleCategoryServiceImpl.java | 31 ++++++++++++------- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml index 1449ec4..963e43d 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml @@ -69,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/article/service/impl/ArticleServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/article/service/impl/ArticleServiceImpl.java index 501b244..3b527df 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/article/service/impl/ArticleServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/article/service/impl/ArticleServiceImpl.java @@ -5,6 +5,8 @@ import java.util.List; import com.ruoyi.bst.area.service.AreaService; import com.ruoyi.bst.article.service.ArticleService; import com.ruoyi.bst.articleCategory.domain.ArticleCategoryQuery; +import com.ruoyi.bst.articleCategory.domain.ArticleCategoryVO; +import com.ruoyi.bst.articleCategory.domain.enums.ArticleCategoryStatus; import com.ruoyi.bst.articleCategory.service.ArticleCategoryService; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; @@ -17,6 +19,8 @@ import com.ruoyi.bst.article.domain.ArticleVO; import com.ruoyi.bst.article.domain.ArticleQuery; import com.ruoyi.bst.article.service.ArticleService; +import javax.print.ServiceUI; + /** * 文章Service业务层处理 * @@ -65,11 +69,11 @@ public class ArticleServiceImpl implements ArticleService @Override public int insertArticle(Article article) { - //分类必须存在 - if(articleCategoryService.selectArticleCategoryById(article.getCategoryId()) ==null){ - throw new ServiceException("当前分类不存在"); + ArticleCategoryVO articleCategoryVO = articleCategoryService.selectArticleCategoryById(article.getCategoryId()); + ServiceUtil.assertion(articleCategoryVO ==null,"当前分类不存在"); + if (articleCategoryVO.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode())){ + ServiceUtil.assertion(true,"该分类已被禁用"); } - article.setCreateTime(DateUtils.getNowDate()); return articleMapper.insertArticle(article); } @@ -83,11 +87,11 @@ public class ArticleServiceImpl implements ArticleService @Override public int updateArticle(Article article) { - //分类必须存在 - if(articleCategoryService.selectArticleCategoryById(article.getCategoryId()) ==null){ - throw new ServiceException("当前分类不存在"); + ArticleCategoryVO articleCategoryVO = articleCategoryService.selectArticleCategoryById(article.getCategoryId()); + ServiceUtil.assertion(articleCategoryVO ==null,"当前分类不存在"); + if (articleCategoryVO.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode())){ + ServiceUtil.assertion(true,"该分类已被禁用"); } - article.setUpdateTime(DateUtils.getNowDate()); return articleMapper.updateArticle(article); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/articleCategory/service/impl/ArticleCategoryServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/articleCategory/service/impl/ArticleCategoryServiceImpl.java index 1d00bd3..28b1662 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/articleCategory/service/impl/ArticleCategoryServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/articleCategory/service/impl/ArticleCategoryServiceImpl.java @@ -115,21 +115,28 @@ public class ArticleCategoryServiceImpl implements ArticleCategoryService ArticleCategoryVO vo = articleCategoryMapper.selectArticleCategoryById(articleCategory.getId()); //检查是否仅修改排序或状态字段 if (vo != null && vo.getParentId().equals(articleCategory.getParentId())&&vo.getCategoryName().equals(articleCategory.getCategoryName())) { - if (vo.getCategoryStatus()!=null) { - if (vo.getParentId() != null) { - ArticleCategoryVO parentVO = articleCategoryMapper.selectArticleCategoryById(vo.getParentId()); - ServiceUtil.assertion(parentVO.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode()),"该分类所属分类已禁用,无法启用该分类"); + // 新增状态变更方向判断 + boolean isEnabling = vo.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode()) + && articleCategory.getCategoryStatus().equals(ArticleCategoryStatus.ENABLED.getCode()); + boolean isDisabling = vo.getCategoryStatus().equals(ArticleCategoryStatus.ENABLED.getCode()) + && articleCategory.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode()); + // 启用操作校验 + if (isEnabling) { + if (articleCategory.getParentId() != null) { + ArticleCategoryVO parentVO = articleCategoryMapper.selectArticleCategoryById(articleCategory.getParentId()); + ServiceUtil.assertion(parentVO.getCategoryStatus().equals(ArticleCategoryStatus.DISABLED.getCode()), + "该分类所属分类已禁用,无法启用该分类"); } - // 判断当前分类下是否有启用的分类 - List childrenCategoryList = articleCategoryMapper.selectChildrenCategory(articleCategory.getId()); - childrenCategoryList.forEach(child -> { - if (Objects.equals(child.getCategoryStatus(), ArticleCategoryStatus.ENABLED.getCode())) { - ServiceUtil.assertion(!childrenCategoryList.isEmpty(),"当前分类下有启用的分类,不可禁用"); - } - }); } - return articleCategoryMapper.updateArticleCategorySortAndStatusOnly(articleCategory); + // 禁用操作校验 + else if (isDisabling) { + List childrenCategoryList = articleCategoryMapper.selectChildrenCategory(articleCategory.getId()); + boolean hasEnabledChild = childrenCategoryList.stream() + .anyMatch(child -> child.getCategoryStatus().equals(ArticleCategoryStatus.ENABLED.getCode())); + ServiceUtil.assertion(hasEnabledChild, "当前分类下有启用的分类,不可禁用"); + } + return articleCategoryMapper.updateArticleCategorySortAndStatusOnly(articleCategory); } //目标分类不允许子分类重名 Boolean flag = articleCategoryMapper.checkByNameAndParetId(articleCategory);