From 042b5ccb83f1a939c9723d4d35ebca3d8a0cc3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 17 Jan 2023 01:22:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A2=E9=98=9F=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmEnvListController.java | 4 ++-- .../com/xm/core/ctrl/XmFileController.java | 2 +- .../com/xm/core/ctrl/XmTaskController.java | 22 +++++++++--------- .../core/ctrl/XmTaskExecuserController.java | 2 +- .../xm/core/ctrl/XmWorkloadController.java | 10 ++++---- .../com/xm/core/service/XmGroupService.java | 23 ++++++++++++++++--- 6 files changed, 40 insertions(+), 23 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmEnvListController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmEnvListController.java index 92aa7941..942a6fc6 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmEnvListController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmEnvListController.java @@ -152,7 +152,7 @@ public class XmEnvListController { return ResponseHelper.failed("writeQx-err-2","您不在项目【"+xmEnvListDb.getProjectId()+"】,无权更改"); } }else if("3".equals(writeQx)){//同一机构同一项目可写 - Tips isHeader=this.xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmEnvListDb.getCreateUserid(),xmEnvListDb.getProjectId()); + Tips isHeader=this.xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmEnvListDb.getCreateUserid(),xmEnvListDb.getProjectId()); if(!isHeader.isOk()){ return ResponseHelper.failed("writeQx-err-3","您不是【"+xmEnvListDb.getCreateUsername()+"】的上级,无权更改"); } @@ -197,7 +197,7 @@ public class XmEnvListController { return ResponseHelper.failed("writeQx-err-2","您不在项目【"+xmEnvListDb.getProjectId()+"】,无权更改"); } }else if("3".equals(writeQx)){//同一机构同一项目可写 - Tips isHeader=this.xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmEnvListDb.getCreateUserid(),xmEnvListDb.getProjectId()); + Tips isHeader=this.xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmEnvListDb.getCreateUserid(),xmEnvListDb.getProjectId()); if(!isHeader.isOk()){ return ResponseHelper.failed("writeQx-err-3","您不是【"+xmEnvListDb.getCreateUsername()+"】的上级,无权更改"); } diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmFileController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmFileController.java index df321163..ad6b3aeb 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmFileController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmFileController.java @@ -121,7 +121,7 @@ public class XmFileController { } if(!user.getUserid().equals(file.getCreateUserid()) ){ - Tips isHead=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,file.getCreateUserid(),file.getProjectId()); + Tips isHead=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,file.getCreateUserid(),file.getProjectId()); if(!isHead.isOk()){ return ResponseHelper.failed("no-qx","您只能删除自己创建的文档"); } diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java index 487c2a42..16cbe015 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java @@ -327,7 +327,7 @@ public class XmTaskController { if(xmTaskMap.containsKey("createUserid")){ Set projects=xmTasksDb.stream().map(i->i.getProjectId()).collect(Collectors.toSet()); for (String project : projects) { - tips=groupService.checkIsAdmOrTeamHeadOrAss(user, (String) xmTaskMap.get("createUserid"),project); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user, (String) xmTaskMap.get("createUserid"),project); if(!tips.isOk()){ return ResponseHelper.failed("no-qx-0","您无权把任务指派给您的小组成员以外的人。"); } @@ -339,10 +339,10 @@ public class XmTaskController { List no=new ArrayList<>(); for (XmTask xmTaskDb : xmTasksDb) { if(StringUtils.hasText(xmTaskDb.getCreateUserid())){ - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); } if(!tips.isOk() && StringUtils.hasText(xmTaskDb.getExecutorUserid())){ - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); } if(!tips.isOk()){ @@ -531,7 +531,7 @@ public class XmTaskController { return ResponseHelper.failed("projectId-0","项目编号不能为空"); } User user=LoginUtils.getCurrentUserInfo(); - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskVo.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskVo.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -691,7 +691,7 @@ public class XmTaskController { return ResponseHelper.failed("existsExecuser","有待验收、待结算的执行人,不能删除"); }; - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -732,7 +732,7 @@ public class XmTaskController { return m; } - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -786,7 +786,7 @@ public class XmTaskController { xmTaskVo.setNtype("1"); } } - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -839,7 +839,7 @@ public class XmTaskController { if(xmTaskDb==null){ return ResponseHelper.failed("data-0","任务已不存在"); } - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); if(!tips.isOk()){ boolean isCreateUser=user.getUserid().equals(xmTaskDb.getCreateUserid()); boolean isExecUser=user.getUserid().equals(xmTaskDb.getExecutorUserid()); @@ -930,7 +930,7 @@ public class XmTaskController { } String projectId=batchImportVo.getProjectId(); String productId=batchImportVo.getProductId(); - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),batchImportVo.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),batchImportVo.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -1297,7 +1297,7 @@ public class XmTaskController { return ResponseHelper.failed("data-0","计划任务已不存在"); } String projectId=xmTaskDb.getProjectId(); - tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); + tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId()); if(!tips.isOk()){ return ResponseHelper.failed(tips); } @@ -1565,7 +1565,7 @@ public class XmTaskController { if(!"1".equals(parentTask.getNtype())){ return ResponseHelper.failed("parentTask-ntype-not-1", "【"+parentTask.getName()+"】为任务,不能作为上级节点。请另选上级或者变更其为计划节点"); } - Tips tips2=this.groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),parentTask.getProjectId()); + Tips tips2=this.groupService.checkIsProjectAdmOrTeamHeadOrAss(user,user.getUserid(),parentTask.getProjectId()); if(!tips2.isOk()){ return ResponseHelper.failed(tips2); } diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java index 29543592..3798b11f 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java @@ -305,7 +305,7 @@ public class XmTaskExecuserController { allowUsers.add(xmTaskExecuser); allowUserNames.add(xmTaskExecuser.getUsername()); }else{ - Tips tips2=groupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskExecuser.getUserid(),xmTask.getProjectId()); + Tips tips2=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskExecuser.getUserid(),xmTask.getProjectId()); if(tips2.isOk()==false){ noAllowUsers.add(xmTaskExecuser.getUsername()); continue; diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java index e8a74d98..c70908e6 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java @@ -305,7 +305,7 @@ public class XmWorkloadController { } //待他人报工,需要检查我的权限,需要项目管理人员才有权限代他人报工。 if(!xmWorkload.getUserid().equals(user.getUserid())){ - Tips tips3=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmWorkload.getUserid(),xmTaskDb.getProjectId()); + Tips tips3=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmWorkload.getUserid(),xmTaskDb.getProjectId()); if(!tips3.isOk()){ return failed("no-qx-for-oth-user","无权限代他人报工。只有项目管理人员可以代他人报工。"); } @@ -446,9 +446,9 @@ public class XmWorkloadController { } User user= LoginUtils.getCurrentUserInfo(); if(!(user.getUserid().equals(xmTaskDb.getCreateUserid())|| user.getUserid().equals(xmTaskDb.getExecutorUserid()))){ - Tips isCreate=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); + Tips isCreate=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); if(!isCreate.isOk()){ - Tips isExec=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); + Tips isExec=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); if(!isExec.isOk()){ return failed("noqx-0","你无权针对该业务进行报工"); } @@ -499,9 +499,9 @@ public class XmWorkloadController { Set xmMenuIds=new HashSet<>(); for (XmTask xmTaskDb : tasksDb) { if(!(user.getUserid().equals(xmTaskDb.getCreateUserid())|| user.getUserid().equals(xmTaskDb.getExecutorUserid()))){ - Tips isCreate=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); + Tips isCreate=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId()); if(!isCreate.isOk()){ - Tips isExec=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); + Tips isExec=xmGroupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId()); if(!isExec.isOk()){ break; } diff --git a/xm-core/src/main/java/com/xm/core/service/XmGroupService.java b/xm-core/src/main/java/com/xm/core/service/XmGroupService.java index b8cfee67..26e6449a 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmGroupService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmGroupService.java @@ -63,20 +63,37 @@ public class XmGroupService extends BaseService { } + public Tips checkIsProductAdmOrTeamHeadOrAss(User user, String tardgetUserid, String productId){ + Tips tips = new Tips("成功"); + List pgroups=new ArrayList<>(); + boolean isAdm=this.checkUserIsProductAdm(productId, user.getUserid()); + if(!isAdm){ + pgroups=this.getProductGroupVoList(productId); + if(pgroups==null || pgroups.size()==0){ + return new Tips(false,"group-0","该产品还未建立产品团队,请先进行团队成员维护"); + } + boolean isHead=this.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),tardgetUserid); + if(!isHead){ + return new Tips(false,"not-head","您无权操作!产品经理、组长可以操作。"); + } + } + + return tips; + } - public Tips checkIsAdmOrTeamHeadOrAss(User user,String tardgetUserid,String projectId){ + public Tips checkIsProjectAdmOrTeamHeadOrAss(User user, String tardgetUserid, String projectId){ Tips tips = new Tips("成功"); List pgroups=new ArrayList<>(); boolean isAdm=this.checkUserIsProjectAdm(projectId, user.getUserid()); if(!isAdm){ pgroups=this.getProjectGroupVoList(projectId); if(pgroups==null || pgroups.size()==0){ - return new Tips(false,"group-0","该产品还未建立产品团队,请先进行团队成员维护"); + return new Tips(false,"group-0","该项目还未建立项目团队,请先进行团队成员维护"); } boolean isHead=this.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),tardgetUserid); if(!isHead){ - return new Tips(false,"not-head","您无权操作!产品经理、组长可以操作。"); + return new Tips(false,"not-head","您无权操作!项目经理、组长可以操作。"); } }