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 5d5ab02..ed598bb 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 @@ -15,7 +15,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.Operation; -import io.swagger.v3.oas.annotations.Parameter; import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -74,12 +73,13 @@ public class ProjectGroupController { } //TODO: test + @Operation(description = "body中只传staffUsername和projectStaffPosition") @SneakyThrows @PostMapping public ResponseMap addGroupMember( @RequestHeader(TokenUtils.HEADER_TOKEN) String token, @PathVariable Integer projectId, - @Parameter(description = "只传staffUsername和projectStaffPosition") @RequestBody GroupPositionVO groupPosition + @RequestBody GroupPositionVO groupPosition ) { if (projectGroupService.insertNewMember(token, projectId, groupPosition.getStaffUsername(), groupPosition.getProjectStaffPosition())) { return ResponseMap.ofSuccess(); @@ -87,14 +87,34 @@ public class ProjectGroupController { throw new BadRequestException(BadRequestException.OPERATE_FAILED); } + @SneakyThrows + @DeleteMapping("/{staffId}") + public ResponseMap deleteGroupMember( + @RequestHeader(TokenUtils.HEADER_TOKEN) String token, + @PathVariable Integer projectId, + @PathVariable Integer staffId + ) { + if (projectGroupService.compareProjectAccessLevel(projectId, token, staffId) <= 0) { + throw new ForbiddenException(ForbiddenException.UNABLE_TO_OPERATE); + } + if (projectGroupService.remove(Wrappers.lambdaQuery() + .eq(ProjectGroup::getProjectId, projectId) + .eq(ProjectGroup::getStaffId, staffId)) + ) { + return ResponseMap.ofSuccess(); + } + throw new BadRequestException(BadRequestException.OPERATE_FAILED); + } + //TODO: test + @Operation(description = "body中只传projectStaffPosition") @SneakyThrows @PutMapping("/{staffId}") public ResponseMap modifyDesignatedStaffPosition( @RequestHeader(TokenUtils.HEADER_TOKEN) String token, @PathVariable Integer projectId, @PathVariable Integer staffId, - @Parameter(description = "在body中只传projectStaffPosition") @RequestBody GroupPositionVO groupPosition + @RequestBody GroupPositionVO groupPosition ) { if (projectGroupService.updateStaffPositions(token, projectId, staffId, groupPosition.getProjectStaffPosition())) { return ResponseMap.ofSuccess();