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 b2a9c47..ca14ace 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 @@ -78,9 +78,9 @@ public class ProjectGroupController { public ResponseMap addGroupMember( @RequestHeader("Token") String token, @PathVariable Integer projectId, - @RequestBody GroupPositionVO groupPosition + @Parameter(description = "只传staffUsername和projectStaffPosition") @RequestBody GroupPositionVO groupPosition ) { - if (projectGroupService.insertNewMember(token, projectId, groupPosition.getStaffId(), groupPosition.getPositions())) { + if (projectGroupService.insertNewMember(token, projectId, groupPosition.getStaffUsername(), groupPosition.getProjectStaffPosition())) { return ResponseMap.ofSuccess(); } throw new BadRequestException(BadRequestException.OPERATE_FAILED); @@ -93,9 +93,9 @@ public class ProjectGroupController { @RequestHeader("Token") String token, @PathVariable Integer projectId, @PathVariable Integer staffId, - @Parameter(description = "不需要在body中传递staffId,用path传递") @RequestBody GroupPositionVO groupPosition + @Parameter(description = "在body中只传projectStaffPosition") @RequestBody GroupPositionVO groupPosition ) { - if (projectGroupService.updateStaffPositions(token, staffId, projectId, groupPosition.getPositions())) { + if (projectGroupService.updateStaffPositions(token, staffId, projectId, groupPosition.getProjectStaffPosition())) { return ResponseMap.ofSuccess(); } throw new BadRequestException(BadRequestException.OPERATE_FAILED); diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/vo/GroupPositionVO.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/vo/GroupPositionVO.java index 65c313b..5477773 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/vo/GroupPositionVO.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/vo/GroupPositionVO.java @@ -9,5 +9,6 @@ import lombok.Data; @Data public class GroupPositionVO { private Integer staffId; - private String positions; + private String staffUsername; + private String projectStaffPosition; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java index 5a20759..140afd4 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java @@ -2,6 +2,7 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectGroupDTO; +import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.ForbiddenException; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -23,7 +24,7 @@ public interface IProjectGroupService extends IService { Boolean addCreator(Integer projectId, Integer staffId); - Boolean insertNewMember(String token, Integer projectId, Integer staffId, String positions) throws ForbiddenException; + Boolean insertNewMember(String token, Integer projectId, String staffUsername, String positions) throws ForbiddenException, BadRequestException; Boolean updateStaffPositions(String token, Integer projectId, Integer targetId, String positions) throws ForbiddenException; diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IStaffService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IStaffService.java index 7087c92..56525ff 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IStaffService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IStaffService.java @@ -14,6 +14,9 @@ import java.util.Map; * @since 2022/6/28 17:28 */ public interface IStaffService extends IService { + + String STAFF_DOES_NOT_EXIST = "用户不存在"; + Map login(String username, String password) throws BadRequestException, TokenException; Boolean logout(String token) throws TokenException; 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 be7b6f0..e133588 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 @@ -1,15 +1,19 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Staff; import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectGroupDTO; +import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.ForbiddenException; import cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectGroupMapper; import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService; +import cn.edu.hfut.rmdjzz.projectmanagement.service.IStaffService; import cn.edu.hfut.rmdjzz.projectmanagement.utils.TokenUtils; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -22,6 +26,10 @@ import java.util.Map; */ @Service public class ProjectGroupServiceImpl extends ServiceImpl implements IProjectGroupService { + + @Autowired + private IStaffService staffService; + @Override public Boolean addCreator(Integer projectId, Integer staffId) { if (projectId == null || staffId == null) @@ -35,10 +43,15 @@ public class ProjectGroupServiceImpl extends ServiceImpllambdaQuery().eq(Staff::getStaffUsername, targetUsername)); + if (targetStaff == null) { + throw new BadRequestException(IStaffService.STAFF_DOES_NOT_EXIST); + } + if (accessLevel == 0) { throw new ForbiddenException(IProjectGroupService.UNABLE_TO_ACCESS_PROJECT); } @@ -58,7 +71,7 @@ public class ProjectGroupServiceImpl extends ServiceImpl implements Staff staff = getOne(Wrappers.lambdaQuery().eq(Staff::getStaffUsername, staffUsername)); if (staff == null) - throw new BadRequestException("用户不存在"); + throw new BadRequestException(STAFF_DOES_NOT_EXIST); password = DigestUtils.md5DigestAsHex((password + staff.getStaffSalt()).getBytes()); if (!staff.getStaffPassword().equals(password)) throw new BadRequestException("密码错误"); diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java index 289e356..e13f744 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/http/RequestPage.java @@ -29,6 +29,7 @@ public class RequestPage { @Schema(description = "传true或空时为顺序排序,否则倒序排序") Boolean asc; + @Schema(hidden = true) public IPage getPage() { Page page = new Page<>(pageCurrent, pageSize); if (StringUtils.isNotBlank(sortBy)) {