From 0db64e3fadafae846a1dec23135683afe5fc8263 Mon Sep 17 00:00:00 2001 From: ShiPengHui <1527550984@qq.com> Date: Thu, 7 Jul 2022 15:59:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=88=90=E5=91=98id=EF=BC=8C=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=EF=BC=8C=E5=85=A8=E5=90=8D=EF=BC=8C=E8=81=8C=E4=BD=8D?= =?UTF-8?q?=EF=BC=8C=E6=9D=83=E9=99=90=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectGroupController.java | 15 +++++++++++-- .../entity/dto/ProjectGroupDto.java | 2 +- .../mapper/ProjectGroupMapper.java | 14 +++++++++++++ .../service/IProjectGroupService.java | 5 ++++- .../service/impl/ProjectGroupServiceImpl.java | 21 +++++++------------ 5 files changed, 40 insertions(+), 17 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 8529c0e..97f3ce2 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 @@ -1,20 +1,24 @@ package cn.edu.hfut.rmdjzz.projectmanagement.controller; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectGroupDto; import cn.edu.hfut.rmdjzz.projectmanagement.entity.vo.GroupPositionVo; import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.ForbiddenException; import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService; import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService; import cn.edu.hfut.rmdjzz.projectmanagement.utils.TokenUtils; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList; import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseMap; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.v3.oas.annotations.Parameter; import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; /** @@ -33,8 +37,15 @@ public class ProjectGroupController { @SneakyThrows @GetMapping - public ResponseList getGroupNumber(@PathVariable Integer projectId, @RequestHeader("Token") String token) { - List res = projectGroupService.findAllProjectNumber(token, projectId); + public ResponseList getGroupNumber( + @PathVariable Integer projectId, + @RequestHeader("Token") String token, + @Valid RequestPage page + ) { + if (projectGroupService.getProjectAccessLevel(token, projectId) == 0) { + throw new ForbiddenException("无该项目访问权限"); + } + Page res = projectGroupService.getOnePageProjectNumber(page, projectId); return ResponseList.ofSuccess("查询成功", res); } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/dto/ProjectGroupDto.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/dto/ProjectGroupDto.java index 3ade98e..f3ce31d 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/dto/ProjectGroupDto.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/dto/ProjectGroupDto.java @@ -10,8 +10,8 @@ import lombok.Data; @Data public class ProjectGroupDto { Integer staffId; + String staffUsername; String staffFullname; - Integer projectId; String projectStaffPosition; Integer projectAccessLevel; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java index 6fc5c18..b151f43 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java @@ -1,11 +1,25 @@ package cn.edu.hfut.rmdjzz.projectmanagement.mapper; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectDto; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectGroupDto; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * @author 张韬 * created at 2022/6/30 21:34 */ public interface ProjectGroupMapper extends BaseMapper { + @Select(""" + SELECT staff.staff_id, staff_username, staff_fullname, project_staff_position, project_access_level + FROM project_group inner join staff + ON project_group.staff_id = staff.staff_id AND project_group.project_id = #{projectId} + """) + Page findNumber(IPage pg, @Param("projectId") Integer projectId); } 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 709191b..dbb6f82 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 @@ -1,8 +1,11 @@ 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; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -28,7 +31,7 @@ public interface IProjectGroupService extends IService { Integer compareProjectAccessLevel(Integer projectId, Integer staffId1, Integer staffId2); - List findAllProjectNumber(String token, Integer projectId) throws BadRequestException; + Page getOnePageProjectNumber(RequestPage page, Integer projectId); /** * 统计小组中各岗位数量 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 4cf6690..96cc4d1 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,12 +1,17 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.dto.ProjectDto; +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.utils.TokenUtils; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage; +import com.baomidou.mybatisplus.core.metadata.IPage; 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.stereotype.Service; @@ -117,19 +122,9 @@ public class ProjectGroupServiceImpl extends ServiceImpl findAllProjectNumber(String token, Integer projectId) throws BadRequestException { - List res = new ArrayList<>(); - Integer staffId = TokenUtils.getStaffId(token); - List targetProject = baseMapper.selectList(Wrappers.lambdaQuery().eq(ProjectGroup::getProjectId, projectId)); - - if (targetProject.size() == 0) - throw new BadRequestException("项目不存在"); - for (ProjectGroup projectGroup : targetProject) { - res.add(projectGroup.getStaffId()); - } - if (!res.contains(staffId)) - throw new BadRequestException("用户请求非法"); - return res; + public Page getOnePageProjectNumber(RequestPage page, Integer projectId){ + IPage numberPage = baseMapper.findNumber(page.getPage(), projectId); + return (Page) numberPage; } @Override