From 7f223357a9affa6505c6a284f59f72b3808a93b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Wed, 23 Feb 2022 16:16:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/ctrl/XmProjectGroupController.java | 24 +++++++++++ .../com/xm/core/ctrl/XmTaskController.java | 23 +++++++---- .../core/service/XmProjectGroupService.java | 41 ++++++++++++++++++- 3 files changed, 78 insertions(+), 10 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java index 4abdf5a5..aad51d54 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java @@ -16,6 +16,7 @@ import com.xm.core.service.XmProductService; import com.xm.core.service.XmProjectGroupService; import com.xm.core.service.XmProjectService; import com.xm.core.service.XmRecordService; +import com.xm.core.service.cache.XmProjectGroupCacheService; import com.xm.core.service.push.XmPushMsgService; import com.xm.core.vo.XmProjectGroupVo; import io.swagger.annotations.*; @@ -51,6 +52,10 @@ public class XmProjectGroupController { @Autowired private XmProjectGroupService xmProjectGroupService; + + + @Autowired + private XmProjectGroupCacheService xmProjectGroupCacheService; @Autowired private XmProjectService xmProjectService; @@ -111,6 +116,12 @@ public class XmProjectGroupController { } xmProjectGroupService.parentIdPathsCalcBeforeSave(group); tips= xmProjectGroupService.updateGroup(group,groupDb); //列出XmProjectGroup列表 + if("1".equals(groupDb.getPgClass())){ + xmProjectGroupCacheService.clearProductGroup(groupDb.getProductId(),groupDb.getId()); + }else { + xmProjectGroupCacheService.clearProjectGroup(groupDb.getProjectId(),groupDb.getId()); + } + m.put("tips", tips); return m; } @@ -242,6 +253,11 @@ public class XmProjectGroupController { } this.xmProjectGroupService.parentIdPathsCalcBeforeSave(xmProjectGroup); xmProjectGroupService.insert(xmProjectGroup); + if("1".equals(xmProjectGroup.getPgClass())){ + xmProjectGroupCacheService.clearProductGroup(xmProjectGroup.getProductId(),xmProjectGroup.getId()); + }else { + xmProjectGroupCacheService.clearProjectGroup(xmProjectGroup.getProjectId(),xmProjectGroup.getId()); + } pushMsgService.pushChannelGroupCreateMsg(u.getBranchId(), xmProjectGroup.getProjectId(),xmProjectGroup.getId(), xmProjectGroup.getId(),xmProjectGroup.getGroupName(), u.getUserid(), u.getUsername(), null, "新增小组"+xmProjectGroup.getGroupName()); xmRecordService.addXmGroupRecord(xmProjectGroup.getProjectId(), xmProjectGroup.getId(), "项目-团队-新增小组", "新增小组"+xmProjectGroup.getGroupName(),JSON.toJSONString(xmProjectGroup),null); m.put("data",xmProjectGroup); @@ -303,6 +319,12 @@ public class XmProjectGroupController { return ResponseHelper.failed("childrenCnt-no-0","该小组有下级小组,不能删除。请先删除下级小组。"); } xmProjectGroupService.doDeleteByPk(xmProjectGroup,groupDb); + if("1".equals(groupDb.getPgClass())){ + xmProjectGroupCacheService.clearProductGroup(groupDb.getProductId(),groupDb.getId()); + }else { + xmProjectGroupCacheService.clearProjectGroup(groupDb.getProjectId(),groupDb.getId()); + } + }catch (BizException e) { tips=e.getTips(); logger.error("",e); @@ -365,8 +387,10 @@ public class XmProjectGroupController { if(canDelNodes.size()>0){ if("1".equals(pgClass)){ xmProjectGroupService.doBatchDeleteProductGroups(canDelNodes); + xmProjectGroupCacheService.clearProductGroups(groupDb.getProductId()); }else { xmProjectGroupService.doBatchDeleteProjectGroups(canDelNodes); + xmProjectGroupCacheService.clearProjectGroups(groupDb.getProjectId()); } } }catch (BizException e) { 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 c57d8389..40b8c799 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 @@ -14,8 +14,10 @@ import com.mdp.qx.HasQx; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.xm.core.PubTool; +import com.xm.core.entity.XmProject; import com.xm.core.entity.XmTask; import com.xm.core.service.XmProjectGroupService; +import com.xm.core.service.XmProjectService; import com.xm.core.service.XmRecordService; import com.xm.core.service.XmTaskService; import com.xm.core.service.cache.XmTaskCacheService; @@ -68,6 +70,8 @@ public class XmTaskController { @Autowired private XmPushMsgService xmPushMsgService; + private XmProjectService xmProjectService; + @ApiOperation( value = "查询xm_task信息列表",notes="listXmTask,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}") @ApiImplicitParams({ @@ -468,7 +472,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,user.getUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),user.getUserid()); if(!isHead){ tips.setFailureMsg("您无权删除该任务!项目经理、组长可以删除任务。"); m.put("tips", tips); @@ -524,6 +528,7 @@ public class XmTaskController { m.put("tips", tips); return m; } + List pgroups=groupService.getProjectGroupVoList(xmTaskVo.getProjectId()); if(pgroups==null || pgroups.size()==0){ tips.setFailureMsg("该项目还未建立项目团队,请先进行团队成员维护"); @@ -536,7 +541,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); if(!isHead){ boolean isPm=groupService.checkUserIsProjectManager(pgroups,user.getUserid()); if(!isPm){ @@ -599,7 +604,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); if(!isHead){ tips.setFailureMsg("您无权修改该任务基础信息!项目经理、组长可以修改任务的基础信息。"); m.put("tips", tips); @@ -686,7 +691,7 @@ public class XmTaskController { return m; } XmTask xmTaskDb=xmTaskService.selectOneObject(xmTask); - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); if(!isHead){ boolean isCreateUser=user.getUserid().equals(xmTaskDb.getCreateUserid()); boolean isExecUser=user.getUserid().equals(xmTaskDb.getExecutorUserid()); @@ -736,7 +741,7 @@ public class XmTaskController { return m; } XmTask xmTaskDb=xmTaskService.selectOneObject(xmTask); - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); if(!isHead){ boolean isCreateUser=user.getUserid().equals(xmTaskDb.getCreateUserid()); boolean isExecUser=user.getUserid().equals(xmTaskDb.getExecutorUserid()); @@ -808,7 +813,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,user.getUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),user.getUserid()); if(!isHead){ tips.setFailureMsg("您无权批量导入任务!项目经理、组长可以批量导入任务。"); m.put("tips", tips); @@ -915,7 +920,7 @@ public class XmTaskController { if(isMyCreate){ allowTasks.add(task); }else{ - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,task.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,task.getCreateUserid(),user.getUserid()); if(!isHead){ noAllowTasks.add(task); }else { @@ -994,7 +999,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,node.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,node.getCreateUserid(),user.getUserid()); if(!isHead){ noAllowNodes.add(node); @@ -1141,7 +1146,7 @@ public class XmTaskController { m.put("tips", tips); return m; } - boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,task.getCreateUserid(),user.getUserid()); + boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,task.getCreateUserid(),user.getUserid()); if(!isHead){ noAllowTasksDbMap.put(task.getId(),task); }else { diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java index 2a4b69d2..ad8f788c 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java @@ -320,6 +320,22 @@ public class XmProjectGroupService extends BaseService { return false; } + /** + * 检查某个人是否为指定的小组的组长\副组长\助理 + * @param xmProjectGroupVo + * @param headUserid + * @return + */ + public boolean checkUserIsTeamHeadOrAss(XmProjectGroupVo xmProjectGroupVo, String headUserid){ + if(xmProjectGroupVo==null){ + return false; + } + if(headUserid.equals(xmProjectGroupVo.getLeaderUserid())||headUserid.equals(xmProjectGroupVo.getAssUserid())){ + return true; + } + return false; + + } /** * 检查某个人是否另外一个人的组长 * @param xmProjectGroupVoList @@ -343,7 +359,30 @@ public class XmProjectGroupService extends BaseService { } return false; } - + + /** + * 检查某个人是否另外一个人的组长 + * @param xmProjectGroupVoList + * @param memUserid + * @param headUserid + * @return + */ + public boolean checkUserIsOtherUserTeamHeadOrAss(List xmProjectGroupVoList, String memUserid, String headUserid){ + if(xmProjectGroupVoList==null || xmProjectGroupVoList.size()==0) { + return false; + } + + List userGroups=this.getUserGroups(xmProjectGroupVoList, memUserid); + if(userGroups==null || userGroups.size()==0) { + return false; + } + for (XmProjectGroupVo ug : userGroups) { + if(headUserid.equals(ug.getLeaderUserid())||headUserid.equals(ug.getAssUserid())){ + return true; + } + } + return false; + } public List getProjectManagers( List xmProjectGroupVoList){ for (XmProjectGroupVo g : xmProjectGroupVoList) { if("nbxmjl".equals(g.getPgTypeId())) {