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 77c439fb..5f1bc192 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 @@ -336,15 +336,23 @@ public class XmTaskController { return ResponseHelper.failed("tasks-0","该任务已不存在"); } Map projectMap=new HashMap<>(); + Map> groupsMap=new HashMap<>(); if(xmTaskMap.containsKey("createUserid")){ String createUserid=(String) xmTaskMap.get("createUserid"); String createUsername=(String) xmTaskMap.get("createUsername"); + String cbranchId=(String) xmTaskMap.get("cbranchId"); Set projects=xmTasksDb.stream().map(i->i.getProjectId()).collect(Collectors.toSet()); for (String project : projects) { XmProject xmProject=xmProjectService.getProjectFromCache(project); + boolean isPm=groupService.checkUserIsProjectAdm(xmProject,user.getUserid()); projectMap.put(xmProject.getId(),xmProject); - Tips tips1=projectQxService.checkProjectQx(null,xmProject,0,user,createUserid,createUsername,null); - if(!tips1.isOk()){ + Tips tips1=new Tips("成功"); + if(isPm){ + tips1=projectQxService.checkProjectQx(groupsMap,xmProject,0,createUserid,createUsername,cbranchId); + }else{ + tips1=projectQxService.checkProjectQx(groupsMap,xmProject,0,user,createUserid,createUsername,cbranchId); + } + if(!tips1.isOk()){ return ResponseHelper.failed(tips1); }; } @@ -353,14 +361,13 @@ public class XmTaskController { List can=new ArrayList<>(); List no=new ArrayList<>(); - Map> groupsMap=new HashMap<>(); for (XmTask xmTaskDb : xmTasksDb) { XmProject xmProject=projectMap.get(xmTaskDb.getProjectId()); if(xmProject==null || StringUtils.isEmpty(xmProject.getId()) || !projectMap.containsKey(xmProject.getId())){ xmProject=xmProjectService.getProjectFromCache(xmTaskDb.getProjectId()); projectMap.put(xmTaskDb.getProjectId(),xmProject); } - tips=projectQxService.checkProjectQx(groupsMap,xmProject,0,user,xmTaskDb.getCreateUserid(),xmTaskDb.getCreateUsername(),null); + tips=projectQxService.checkProjectQx(groupsMap,xmProject,0,user,xmTaskDb.getCreateUserid(),xmTaskDb.getCreateUsername(),xmTaskDb.getCbranchId()); if(!tips.isOk()){ no.add(xmTaskDb); }else{ diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectQxService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectQxService.java index 6c320e3e..648af307 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectQxService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectQxService.java @@ -35,7 +35,16 @@ public class XmProjectQxService { public Tips checkProjectQx(XmProject xmProject, int teamType, User head){ return this.checkProjectQx(null,xmProject,teamType,head); } - + /** + * + * @param xmProject + * @param teamType 0-任务相关 1-测试相关,2-迭代相关 + * @param head + * @return + */ + public Tips checkProjectQx(Map> groupsMap,XmProject xmProject, int teamType, String userid,String username,String branchId){ + return this.checkProjectScopeQx( groupsMap,xmProject,teamType,userid,username,branchId); + } /** * * @param groupsMap 项目组缓存数据,当需要循环执行时,避免多次查询缓存与数据库