diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java index 6a6b5e4..24ffd0c 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * @author 张韬 @@ -99,16 +100,24 @@ public class ProjectGroupServiceImpl extends ServiceImpllambdaQuery() + .select(ProjectGroup::getProjectStaffPosition, ProjectGroup::getProjectAccessLevel) + .eq(ProjectGroup::getStaffId, targetId) + .eq(ProjectGroup::getProjectId, projectId) + ); + if (originProjectGroup == null || originProjectGroup.getProjectAccessLevel() == 0) { throw new BadRequestException("该项目中不存在该成员"); } + if (Objects.equals(positions, originProjectGroup.getProjectStaffPosition())) { + return true; + } int targetLevel = 3; if (accessLevel == 0) { throw new ForbiddenException(IProjectGroupService.UNABLE_TO_ACCESS_PROJECT); } - if (accessLevel > 2 || accessLevel >= originTargetLevel) { + if (accessLevel > 2 || accessLevel >= originProjectGroup.getProjectAccessLevel()) { throw new ForbiddenException(ForbiddenException.UNABLE_TO_OPERATE); } String[] positionArray = positions.split(","); diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java index ed378bf..512dcb7 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java @@ -123,6 +123,9 @@ public class ProjectServiceImpl extends ServiceImpl impl throw new ForbiddenException(ForbiddenException.UNABLE_TO_OPERATE); } Project rawProject = baseMapper.selectById(project.getProjectId()); + if (Objects.equals(project, rawProject)) { + return true; + } if (!project.checkModification(rawProject)) { throw new BadRequestException(BadRequestException.WRONG_PARAMETERS); }