From 0d05ea08fbd6a2eed1a3cc7f81e6151cba599e40 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Thu, 18 Apr 2024 16:53:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=A1=E6=A0=B8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加部分权限判断 --- src/main/java/com/jsl/oa/dao/ReviewDAO.java | 5 ++++ .../java/com/jsl/oa/mapper/ReviewMapper.java | 4 ++++ .../oa/services/impl/ReviewServiceImpl.java | 23 +++++++++++++++++++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 2 ++ 4 files changed, 34 insertions(+) diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java index 012825b..90f4055 100644 --- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java +++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java @@ -58,6 +58,11 @@ public class ReviewDAO { result); } + public List getReviewByUser(Long uid) { + return reviewMapper.selectReviewByUser(uid); + } + + public void addReview(ReviewDO reviewDO) { reviewMapper.addReview(reviewDO); diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java index 0561dda..aa6a2e9 100644 --- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java @@ -43,4 +43,8 @@ public interface ReviewMapper { @Select("SELECT * FROM organize_oa.oa_review WHERE name = #{name} AND is_delete = 0") List selectReviewByName(String name); + + @Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND " + + "is_delete = 0") + List selectReviewByUser(Long uid); } diff --git a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java index b537ee8..8e65ced 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -5,6 +5,7 @@ import com.jsl.oa.common.constant.ReviewConstants; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ReviewDAO; import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.exception.BusinessException; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.model.dodata.ProjectChildDO; @@ -155,6 +156,11 @@ public class ReviewServiceImpl implements ReviewService { reviewData.addAll(reviewDOS); } +// 获取自己的审核记录 + List myReviewDO = reviewDAO.getReviewByUser(userId); + reviewData.addAll(myReviewDO); + + //根据id进行去重 reviewData = reviewData.stream() .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing)) @@ -186,6 +192,23 @@ public class ReviewServiceImpl implements ReviewService { //获取用户 Long userId = Processing.getAuthHeaderToUserId(request); + //检查对应项目,子系统,子模块是否存在 + if (!projectDAO.isExistProjectById(reviewAddVO.getProjectId())) { + throw new BusinessException(ErrorCode.PROJECT_NOT_EXIST); + } + if (projectMapper.getProjectChildById( + Math.toIntExact(reviewAddVO.getProjectChildId())) != null) { + throw new BusinessException(ErrorCode.PROJECT_CHILD_NOT_EXIST); + } + +// 子模块id不为空时查询,否则直接跳过 + if (reviewAddVO.getProjectModuleId() != null) { + if (projectMapper.getModuleById( + Math.toIntExact(reviewAddVO.getProjectModuleId())) != null) { + throw new BusinessException(ErrorCode.MODULE_NOT_EXIST); + } + } + //定义要添加的审核实体类 ReviewDO reviewDO = new ReviewDO(); //现将属性相同的值拷贝 diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index 05e988d..8bb67cc 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -53,6 +53,8 @@ public enum ErrorCode { PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"), PROJECT_FILE_JSON_ERROR("ProjectFileJsonError", 40019, "项目文件json格式错误"), PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"), + PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"), + MODULE_NOT_EXIST("ModuleNotExist", 40022, "模块不存在"), REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息");