From 1ac2743790b6dfc285cfabee5c732ff2a068cbfd Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Fri, 23 Jul 2021 11:00:28 +0800 Subject: [PATCH] =?UTF-8?q?20210723=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/common/persist/dao/ProRoleDao.java | 9 +++++ .../common/persist/dao/ProTaskDetailDao.java | 5 +++ .../ccsens/common/service/TaskService.java | 12 +++++++ .../main/resources/mapper_dao/ProRoleDao.xml | 33 +++++++++++++++++++ .../resources/mapper_dao/ProTaskDetailDao.xml | 21 ++++++++++++ 5 files changed, 80 insertions(+) diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java index f0c029e5..381b1fa4 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java @@ -17,4 +17,13 @@ public interface ProRoleDao extends ProRoleMapper { */ Long findRoleOfProjectId(@Param("roleId") Long roleId); + /** + * 查看当前用户所属角色的标签等级(权限) + */ + Integer isPmByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId); + + /** + * 查看当前用户是否是任务的负责人 + */ + Integer isExecutorByUserId(@Param("userId")Long userId, @Param("taskDetailId")Long taskDetailId); } diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java index 481672d0..8d4e086f 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java @@ -53,4 +53,9 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper { */ List continueQueryTask(@Param("roleId") Long roleId,@Param("timeUnit") int timeUnit,@Param("timeNode") Long timeNode ,@Param("queryType") int queryType,@Param("query") String query,@Param("timeFormat") String timeFormat); + + /** + * 根据任务详情id查找项目id + */ + Long projectIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId); } diff --git a/common/src/main/java/com/ccsens/common/service/TaskService.java b/common/src/main/java/com/ccsens/common/service/TaskService.java index c12331f2..b8489cb0 100644 --- a/common/src/main/java/com/ccsens/common/service/TaskService.java +++ b/common/src/main/java/com/ccsens/common/service/TaskService.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.ObjectUtil; import com.ccsens.common.bean.dto.TaskDto; +import com.ccsens.common.bean.po.ProTaskDetail; import com.ccsens.common.bean.po.ProTaskSub; import com.ccsens.common.bean.vo.TaskVo; import com.ccsens.common.persist.dao.*; @@ -202,7 +203,18 @@ public class TaskService implements ITaskService{ if(ObjectUtil.isNull(proTaskSub)){ throw new BaseException(CommonCodeError.NOT_TASK); } + //根据任务查找项目id + Long projectId = taskDetailDao.projectIdByTaskDetailId(proTaskSub.getTaskDetailId()); + if(ObjectUtil.isNull(projectId)){ + throw new BaseException(CommonCodeError.NOT_TASK); + } //验证当前成员的权限(是该任务的负责人,或是项目经理,可以修改) + Integer pm = roleDao.isPmByUserId(userId,projectId); + //验证是否是任务负责人 + Integer executor = roleDao.isExecutorByUserId(userId,proTaskSub.getTaskDetailId()); + if(pm < 2 && executor == 0){ + throw new BaseException(CommonCodeError.NOT_TASK); + } //根据状态修改信息 //开始 添加操作记录 修改任务的状态为进行中,实际开始时间为当前时间,实际时长清空 //暂停 判断任务是否是进行中, 修改任务的状态为暂停,计算实际时长 添加操作记录 diff --git a/common/src/main/resources/mapper_dao/ProRoleDao.xml b/common/src/main/resources/mapper_dao/ProRoleDao.xml index f43ed0e8..ba281a89 100644 --- a/common/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/common/src/main/resources/mapper_dao/ProRoleDao.xml @@ -22,5 +22,38 @@ rec_status = 0 AND id = #{roleId} + + \ No newline at end of file diff --git a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml index 02826fee..1d7bcfda 100644 --- a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml +++ b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml @@ -271,5 +271,26 @@ AND llbb.business_type = 0 AND ll.`level` >= #{timeUnit} + \ No newline at end of file