From cf434ffaceff7b3ff5872f861687b927f1d545d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Thu, 7 Jul 2022 12:06:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=B7=B2?= =?UTF-8?q?=E7=BB=93=E9=A1=B9=E9=A1=B9=E7=9B=AE=E7=9A=84=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E9=A1=B9=E5=8F=98=E6=9B=B4=E6=93=8D=E4=BD=9C=E9=98=BB=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectGroupController.java | 3 --- .../projectmanagement/controller/TaskController.java | 11 ++++++++++- .../projectmanagement/service/IProjectService.java | 2 ++ .../service/impl/ProjectServiceImpl.java | 7 +++++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectGroupController.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectGroupController.java index aa02e34..4568b70 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectGroupController.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectGroupController.java @@ -8,9 +8,6 @@ import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseMap; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.media.SchemaProperty; import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/TaskController.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/TaskController.java index 3dd7b95..1bd307c 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/TaskController.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/TaskController.java @@ -2,6 +2,8 @@ package cn.edu.hfut.rmdjzz.projectmanagement.controller; import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task; import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.TaskDto; +import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; +import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService; import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseMap; @@ -20,7 +22,8 @@ import java.util.List; public class TaskController { @Autowired private ITaskService taskService; - + @Autowired + private IProjectService projectService; @SneakyThrows @GetMapping("/{fatherId}/subtask") public ResponseList getSubTaskList( @@ -57,6 +60,8 @@ public class TaskController { @PathVariable("projectId") Integer projectId, @RequestBody Task task ) { + if(!projectService.checkOpenStatus(projectId)) + throw new BadRequestException("项目未开放"); task.setTaskProjectId(projectId); taskService.insertTask(token, task); return ResponseMap.ofSuccess("操作成功"); @@ -70,6 +75,8 @@ public class TaskController { @PathVariable("taskId") Long taskId, @RequestBody Task task ) { + if(!projectService.checkOpenStatus(projectId)) + throw new BadRequestException("项目未开放"); task.setTaskProjectId(projectId); task.setTaskId(taskId); taskService.modifyTask(token, task); @@ -83,6 +90,8 @@ public class TaskController { @PathVariable("projectId") Integer projectId, @PathVariable("taskId") Long taskId ) { + if(!projectService.checkOpenStatus(projectId)) + throw new BadRequestException("项目未开放"); taskService.deleteTaskAndSubTask(token, projectId, taskId); return ResponseMap.ofSuccess("删除成功"); } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java index 7915e5e..920aaec 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java @@ -22,4 +22,6 @@ public interface IProjectService extends IService { Boolean setProjectCompleted(String token, Integer projectId) throws BadRequestException; Boolean createProject(String token, Project project) throws BadRequestException; + + Boolean checkOpenStatus(Integer projectId); } 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 439d92e..2b02783 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 @@ -93,4 +93,11 @@ public class ProjectServiceImpl extends ServiceImpl impl } return false; } + + public Boolean checkOpenStatus(Integer projectId) { + if (projectId == null || projectId < 1) + return false; + Project project = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Project::getProjectId, projectId)); + return project != null && !project.getCompleted(); + } } From a257d5302192817645b703ca8ebdec778b3262e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Thu, 7 Jul 2022 13:58:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectController.java | 10 +++--- .../projectmanagement/entity/Project.java | 33 ++++++++++++++++--- .../service/IProjectService.java | 2 ++ .../service/impl/ProjectServiceImpl.java | 22 +++++++++++-- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java index d31c5cc..3ad20ba 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java @@ -82,7 +82,6 @@ public class ProjectController { return ResponseMap.ofSuccess("操作成功"); } - //TODO:该业务尚未实现 @SneakyThrows @PutMapping("/{projectId}") public ResponseMap updateProject( @@ -90,9 +89,10 @@ public class ProjectController { @PathVariable Integer projectId, @RequestBody Project project ) { - //project.setProjectId(projectId); - //projectService.updateById(project); - //return ResponseMap.ofSuccess("操作成功"); - return null; + project.setProjectId(projectId); + if (!projectService.checkOpenStatus(projectId)) + throw new BadRequestException("项目未开放"); + projectService.updateProject(token, project); + return ResponseMap.ofSuccess("操作成功"); } } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java index 73dca01..da09f17 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java @@ -10,6 +10,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.Objects; /** * @author 阳勇权 @@ -20,7 +21,6 @@ public class Project { @TableId(type = IdType.AUTO) private Integer projectId; private String projectName; - //TODO: 时间线顺序判断 private LocalDate projectStartDate; private LocalDate projectOnlineDate; private LocalDate projectFirstTestDate; @@ -47,14 +47,39 @@ public class Project { private LocalDateTime projectCreatedTime; private LocalDate projectClosedDate; - Boolean checkProjectDate() { - if(!TimeUtils.validateTimeLine(projectStartDate, projectFirstTestDate, projectClosedDate, projectEndDate)) { + public Boolean checkProjectDate() { + if (!TimeUtils.validateTimeLine(projectStartDate, projectFirstTestDate, projectClosedDate, projectEndDate)) { return false; } - if(!TimeUtils.validateTimeLine(projectStartDate, projectOnlineDate)) { + if (!TimeUtils.validateTimeLine(projectStartDate, projectOnlineDate)) { return false; } return true; } + public Boolean checkModification(Project rawProject) { + if (!this.checkProjectDate()) + return false; + if (!Objects.equals(this.getProjectId(), rawProject.getProjectId())) + return false; + if (!Objects.equals(this.getProjectCreator(), rawProject.getProjectCreator())) + return false; + if (!Objects.equals(this.getProjectCreatedTime(), rawProject.getProjectCreatedTime())) + return false; + if (!Objects.equals(this.getProjectName(), rawProject.getProjectName())) + return false; + if (!Objects.equals(this.getProjectClassId(), rawProject.getProjectClassId())) + return false; + if (!Objects.equals(this.getProjectSubclassId(), rawProject.getProjectSubclassId())) + return false; + if (!Objects.equals(this.getProjectDepartment(), rawProject.getProjectDepartment())) + return false; + if (!Objects.equals(this.getProjectCompany(), rawProject.getProjectCompany())) + return false; + if (!Objects.equals(this.getProjectArea(), rawProject.getProjectArea())) + return false; + this.setDeleted(false); + this.setCompleted(false); + return true; + } } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java index 920aaec..6849d4b 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java @@ -24,4 +24,6 @@ public interface IProjectService extends IService { Boolean createProject(String token, Project project) throws BadRequestException; Boolean checkOpenStatus(Integer projectId); + + Boolean updateProject(String token, Project project) throws BadRequestException; } 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 2b02783..50153cb 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 @@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.Map; import java.util.Objects; @@ -76,8 +77,7 @@ public class ProjectServiceImpl extends ServiceImpl impl if (project.getExpectedCompletion() == null) { project.setExpectedCompletion((short) 100); } else if (project.getExpectedCompletion() < 0 || project.getExpectedCompletion() > 100 || - project.getProjectStartDate() == null || project.getProjectEndDate() == null || - project.getProjectStartDate().isAfter(project.getProjectEndDate()) + !project.checkProjectDate() || project.getProjectManMonth().compareTo(new BigDecimal("0")) == -1 ) { throw new BadRequestException("参数错误"); } @@ -100,4 +100,22 @@ public class ProjectServiceImpl extends ServiceImpl impl Project project = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Project::getProjectId, projectId)); return project != null && !project.getCompleted(); } + + public Boolean updateProject(String token, Project project) throws BadRequestException { + Integer staffId = TokenUtils.getStaffId(token); + if (!staffId.equals(project.getProjectCreator())) { + throw new BadRequestException("无权操作"); + } + Project rawProject = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Project::getProjectId, project.getProjectId())); + if (!project.checkModification(rawProject)) { + throw new BadRequestException("参数错误"); + } + try { + if (baseMapper.updateById(project) == 1) + return true; + throw new BadRequestException("修改失败"); + } catch (Exception e) { + throw new BadRequestException("修改失败"); + } + } } From 6975515b872d28e5500d8ca40a1bd462caaeed8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Thu, 7 Jul 2022 14:02:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=BB=A1=E8=B6=B3=E4=BA=86=E5=BC=80?= =?UTF-8?q?=E5=BC=80=E7=9A=84=E4=B8=80=E4=B8=AA=E6=84=BF=E6=9C=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Task.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Task.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Task.java index fd17242..748c45e 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Task.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Task.java @@ -92,7 +92,7 @@ public class Task { if (father.getTaskId() == 0) return true; if (this.getTaskType().equals("缺陷")) { - return false; + return father.getTaskType().equals("需求"); } else if (this.getTaskType().equals("需求")) { return father.getTaskType().equals("需求"); } else if (this.getTaskType().equals("任务")) {