From 7183a4b7c37038e72a97e99f43ad4f5e83de90f4 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 03:43:18 +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 | 61 ++-- .../com/xm/core/ctrl/XmTaskController.java | 3 +- .../core/service/XmProjectGroupService.java | 335 +++++++++++------- .../service/XmProjectGroupUserService.java | 6 +- .../cache/XmProjectGroupCacheService.java | 18 +- .../xm/core/dao/XmProjectGroupUserMapper.xml | 8 +- 6 files changed, 275 insertions(+), 156 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 286430c9..2dd40e10 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 @@ -9,8 +9,10 @@ import com.mdp.mybatis.PageUtils; import com.mdp.qx.HasQx; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmProject; import com.xm.core.entity.XmProjectGroup; +import com.xm.core.service.XmProductService; import com.xm.core.service.XmProjectGroupService; import com.xm.core.service.XmProjectService; import com.xm.core.service.XmRecordService; @@ -51,6 +53,10 @@ public class XmProjectGroupController { @Autowired private XmProjectService xmProjectService; + + + @Autowired + private XmProductService xmProductService; @Autowired XmPushMsgService pushMsgService; @@ -64,39 +70,46 @@ public class XmProjectGroupController { }) @HasQx(value = "xm_core_xmProjectGroup_updateGroup",name = "批量更新修改项目团队信息",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") @RequestMapping(value="/updateGroup",method=RequestMethod.POST) - public Map updateGroup(@RequestBody XmProjectGroup xmProjectGroup) { + public Map updateGroup(@RequestBody XmProjectGroup group) { - Tips tips=new Tips("团队更新成功"); + Tips tips=new Tips("小组更新成功"); Map m = new HashMap<>(); - if(xmProjectGroup==null){ - tips.setFailureMsg("团队信息不能为空"); + if(group==null){ + tips.setFailureMsg("小组信息不能为空"); m.put("tips", tips); return m; } - if(StringUtils.hasText(xmProjectGroup.getId())){ - return ResponseHelper.failed("id-0","团队编号不能为空"); + if(StringUtils.hasText(group.getId())){ + return ResponseHelper.failed("id-0","小组编号不能为空"); } - XmProjectGroup groupDb=this.xmProjectGroupService.selectOneObject(new XmProjectGroup(xmProjectGroup.getId())); + User user=LoginUtils.getCurrentUserInfo(); + XmProjectGroup groupDb=this.xmProjectGroupService.selectOneObject(new XmProjectGroup(group.getId())); if(groupDb==null){ - return ResponseHelper.failed("data-0","该团队已不存在"); - } - XmProject xmProject=this.xmProjectService.getProjectFromCache(groupDb.getProjectId()); - if(xmProject==null){ - return ResponseHelper.failed("prj-0","项目已不存在"); - } - if("4".equals(xmProject.getStatus())){ - return ResponseHelper.failed("prj-status-4","项目暂停中,不能操作"); - } - if("9".equals(xmProject.getStatus())){ - return ResponseHelper.failed("prj-status-9","项目已关闭,不能操作"); + return ResponseHelper.failed("data-0","小组已不存在。"); } - User user=LoginUtils.getCurrentUserInfo(); - if(!xmProject.getCreateUserid().equals(user.getUserid())&& user.getUserid().equals(xmProject.get)){ - + if("1".equals(groupDb.getPgClass())){ + XmProduct xmProduct=this.xmProductService.selectOneObject(new XmProduct(groupDb.getProductId())); + tips=this.xmProjectGroupService.checkProductStatus(xmProduct); + if(tips.isOk()==false){ + return ResponseHelper.failed(tips); + } + tips=this.xmProjectGroupService.checkHasEditProdcutGroupQx(user,group,groupDb,xmProduct); + if(tips.isOk()==false){ + return ResponseHelper.failed(tips); + } + }else{ + XmProject xmProject=this.xmProjectService.getProjectFromCache(groupDb.getProjectId()); + tips=this.xmProjectGroupService.checkProjectStatus(xmProject); + if(tips.isOk()==false){ + return ResponseHelper.failed(tips); + } + tips=this.xmProjectGroupService.checkHasEditProjectGroupQx(user,group,groupDb,xmProject); + if(tips.isOk()==false){ + return ResponseHelper.failed(tips); + } } - xmProjectGroupService.parentIdPathsCalcBeforeSave(xmProjectGroup); - tips= xmProjectGroupService.updateGroup(xmProjectGroup,groupDb); //列出XmProjectGroup列表 - //m.put("data",xmProjectGroupVo); + xmProjectGroupService.parentIdPathsCalcBeforeSave(group); + tips= xmProjectGroupService.updateGroup(group,groupDb); //列出XmProjectGroup列表 m.put("tips", tips); return m; } 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 887011ea..c57d8389 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 @@ -1,7 +1,6 @@ package com.xm.core.ctrl; import com.alibaba.fastjson.JSON; -import com.github.pagehelper.Page; import com.github.pagehelper.PageSerializable; import com.mdp.audit.log.client.annotation.AuditLog; import com.mdp.audit.log.client.annotation.OperType; @@ -637,7 +636,7 @@ public class XmTaskController { if(judgetTips.isOk()) { xmTaskService.updateTask(xmTaskVo,xmTaskDb); if(!StringUtils.isEmpty(xmTaskVo.getExecutorUserid())) { - List groups=groupService.getUserGroups(xmTaskVo.getProjectId(), xmTaskVo.getExecutorUserid()); + List groups=groupService.getUserGroupsByProjectId(xmTaskVo.getProjectId(), xmTaskVo.getExecutorUserid()); if(groups!=null && groups.size()>0) { for (XmProjectGroupVo g : groups) { xmPushMsgService.pushGroupMsg(user.getBranchId(), g.getId(), user.getUserid(), user.getUsername(), user.getUsername()+"修改了任务【"+xmTaskVo.getName()+"】信息"); 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 8b9431d8..647e61de 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 @@ -2,7 +2,6 @@ package com.xm.core.service; import com.alibaba.fastjson.JSON; import com.mdp.core.entity.Tips; -import com.mdp.core.err.BizException; import com.mdp.core.service.BaseService; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; @@ -10,7 +9,6 @@ import com.xm.core.entity.*; import com.xm.core.service.cache.XmProjectGroupCacheService; import com.xm.core.service.push.XmPushMsgService; import com.xm.core.vo.XmProjectGroupVo; -import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.*; -import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -51,25 +48,29 @@ public class XmProjectGroupService extends BaseService { @Autowired private XmProjectService xmProjectService; + + @Autowired + private XmProductService xmProductService; + @Autowired XmPushMsgService pushMsgService; /** 请在此类添加自定义函数 */ - public List getProjectGroupVoList(String projectId) { + public List getProjectGroupVoList(String projectId) { List groupVoList=new ArrayList<>(); - List groupVoList2 = groupCacheService.getGroups(projectId); + List groupVoList2 = groupCacheService.getProjectGroups(projectId); if(groupVoList2==null) { XmProjectGroup group = new XmProjectGroup(); group.setProjectId(projectId); List groupList = this.selectListByWhere(group); if(groupList==null || groupList.size()==0) { - groupCacheService.putGroups(projectId, groupVoList); + groupCacheService.putProjectGroups(projectId, groupVoList); return groupVoList; } List groupUserList=this.xmProjectGroupUserService.selectGroupUserListByProjectId(projectId); if(groupUserList==null || groupUserList.size()==0) { - groupCacheService.putGroups(projectId, groupVoList); + groupCacheService.putProjectGroups(projectId, groupVoList); return groupVoList; } groupList.forEach(g -> { @@ -84,13 +85,49 @@ public class XmProjectGroupService extends BaseService { gvo.setGroupUsers(groupUsers ); groupVoList.add(gvo); }); - groupCacheService.putGroups(projectId, groupVoList); + groupCacheService.putProjectGroups(projectId, groupVoList); return groupVoList; }else { return groupVoList2; } } + public List getProductGroupVoList(String productId) { + List groupVoList=new ArrayList<>(); + List groupVoList2 = groupCacheService.getProductGroups(productId); + if(groupVoList2==null) { + + XmProjectGroup group = new XmProjectGroup(); + group.setProductId(productId); + List groupList = this.selectListByWhere(group); + if(groupList==null || groupList.size()==0) { + groupCacheService.putProductGroups(productId, groupVoList); + return groupVoList; + } + List groupUserList=this.xmProjectGroupUserService.selectGroupUserListByProductId(productId); + if(groupUserList==null || groupUserList.size()==0) { + groupCacheService.putProductGroups(productId, groupVoList); + return groupVoList; + } + groupList.forEach(g -> { + XmProjectGroupVo gvo = new XmProjectGroupVo(); + BeanUtils.copyProperties(g,gvo); + List groupUsers=new ArrayList<>(); + groupUserList.forEach(gu -> { + if(g.getId().equals(gu.getGroupId())) { + groupUsers.add(gu); + } + }); + gvo.setGroupUsers(groupUsers ); + groupVoList.add(gvo); + }); + groupCacheService.putProductGroups(productId, groupVoList); + return groupVoList; + }else { + return groupVoList2; + } + + } /** * 新增项目时,同时新增项目团队及小组组员等 * @param projectId @@ -146,7 +183,7 @@ public class XmProjectGroupService extends BaseService { if(groupUsers.size()>0) { xmProjectGroupUserService.batchInsert(groupUsers); } - groupCacheService.putGroups(projectId, null); + groupCacheService.putProjectGroups(projectId, null); } /* * 更新项目团队 @@ -175,10 +212,20 @@ public class XmProjectGroupService extends BaseService { * @param userid * @return */ - public List getUserGroups(String projectId,String userid){ + public List getUserGroupsByProjectId(String projectId, String userid){ List xmProjectGroupVoList=this.getProjectGroupVoList(projectId); return this.getUserGroups(xmProjectGroupVoList, userid); } + /** + * 获取用户在某个项目中的组 + * @param productId + * @param userid + * @return + */ + public List getUserGroupsByProductId(String productId, String userid){ + List xmProjectGroupVoList=this.getProductGroupVoList(productId); + return this.getUserGroups(xmProjectGroupVoList, userid); + } /** * 检查用户是否在一些组中任意个组当组长 @@ -192,14 +239,8 @@ public class XmProjectGroupService extends BaseService { return false; } for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) { - List gus=xmProjectGroupVo.getGroupUsers(); - if(gus==null) { - continue; - } - for (XmProjectGroupUser gu : gus) { - if(teamHeadUserid.equals(gu.getUserid()) && "1".equals(gu.getIsHead())) { - return true; - } + if(teamHeadUserid.equals(xmProjectGroupVo.getLeaderUserid())){ + return true; } } @@ -224,45 +265,43 @@ public class XmProjectGroupService extends BaseService { for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) { if(groupId.equals(xmProjectGroupVo.getId())){ - List gus=xmProjectGroupVo.getGroupUsers(); - if(gus==null) { - continue; - } - for (XmProjectGroupUser gu : gus) { - if(teamHeadUserid.equals(gu.getUserid()) && "1".equals(gu.getIsHead())) { - return true; - } - } + if(teamHeadUserid.equals(xmProjectGroupVo.getLeaderUserid())){ + return true; + } } } return false; } - public List getUserGroups( List xmProjectGroupVoList,String userid){ + public List getUserGroups(List xmProjectGroupVoList, String userid){ List userGroups=new ArrayList<>(); if(xmProjectGroupVoList==null) { return userGroups; } - for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) { - List gus=xmProjectGroupVo.getGroupUsers(); - boolean exists=false; - if(gus==null) { - continue; - } - for (XmProjectGroupUser gu : gus) { - if(userid.equals(gu.getUserid())) { - exists=true; - break; + for (XmProjectGroupVo g : xmProjectGroupVoList) { + if(userid.equals(g.getLeaderUserid())||userid.equals(g.getAssUserid())){ + userGroups.add(g); + }else{ + List gus=g.getGroupUsers(); + boolean exists=false; + if(gus==null) { + continue; } - } - if(exists) { - userGroups.add(xmProjectGroupVo); + for (XmProjectGroupUser gu : gus) { + if(userid.equals(gu.getUserid())) { + exists=true; + break; + } + } + if(exists) { + userGroups.add(g); - } + } + } } return userGroups; } public boolean checkUserExistsGroup(String projectId,String userid){ - List userGroups=getUserGroups(projectId,userid); + List userGroups= getUserGroupsByProjectId(projectId,userid); return userGroups!=null && userGroups.size()>0; } /** @@ -275,16 +314,8 @@ public class XmProjectGroupService extends BaseService { if(xmProjectGroupVo==null){ return false; } - List gus= xmProjectGroupVo.getGroupUsers(); - if(gus==null || gus.size()==0){ - return false; - } - for (XmProjectGroupUser guser : gus) { - if(guser.getUserid().equals(headUserid)) { - if("1".equals(guser.getIsHead())) { - return true; - } - } + if(headUserid.equals(xmProjectGroupVo.getLeaderUserid())){ + return true; } return false; @@ -305,23 +336,12 @@ public class XmProjectGroupService extends BaseService { if(userGroups==null || userGroups.size()==0) { return false; } - boolean isHead=false; for (XmProjectGroupVo ug : userGroups) { - - List gus= ug.getGroupUsers(); - for (XmProjectGroupUser guser : gus) { - if(guser.getUserid().equals(headUserid)) { - if("1".equals(guser.getIsHead())) { - isHead=true; - break; - } - } - } - if(isHead) { - break; - } + if(headUserid.equals(ug.getLeaderUserid())){ + return true; + } } - return isHead; + return false; } public List getProjectManagers( List xmProjectGroupVoList){ @@ -335,40 +355,7 @@ public class XmProjectGroupService extends BaseService { } - /** - * 找到项目管理者 - * @param xmProjectGroupVoList - * @return - */ - public XmProjectGroupUser getHeadProjectManager( List xmProjectGroupVoList){ - List getProjectManagers=this.getProjectManagers(xmProjectGroupVoList); - if(getProjectManagers==null || getProjectManagers.size()==0) { - return null; - } - for (XmProjectGroupUser user : getProjectManagers) { - if( "1".equals(user.getIsHead())) { - return user; - } - - } - return null; - } - /** - * 检测某个用户是否项目管理者 - * @param xmProjectGroupVoList - * @param headPmUserid - * @return - */ - public boolean checkUserIsHeadProjectManager( List xmProjectGroupVoList,String headPmUserid){ - XmProjectGroupUser groupUser=this.getHeadProjectManager(xmProjectGroupVoList); - if(groupUser!=null){ - if(groupUser.getUserid().equals(headPmUserid)){ - return true; - } - } - return false; - } /** * 检测某个用户是否属于项目组的内部管理团队成员,内部管理组成员 @@ -415,19 +402,8 @@ public class XmProjectGroupService extends BaseService { * @return */ public List getProjectGroupVoListByProductId(String productId) { - XmProductProjectLink xmProductProjectLink=new XmProductProjectLink(); - xmProductProjectLink.setProductId(productId); - List list=this.xmProductProjectLinkService.selectListByWhere(xmProductProjectLink); - List datas=new ArrayList<>(); - if(list!=null && list.size()>0){ - for (XmProductProjectLink productProjectLink : list) { - List data0=this.getProjectGroupVoList(productProjectLink.getProjectId()); - if(data0!=null && data0.size()>0){ - datas.addAll(data0); - } - } - } - return datas; + List data0=this.getProductGroupVoList(productId); + return data0; } @@ -487,6 +463,126 @@ public class XmProjectGroupService extends BaseService { } + public Tips checkProjectStatus(XmProject xmProject){ + Tips tips=new Tips("成功"); + if(xmProject==null){ + tips.setFailureMsg("prj-0","项目已不存在"); + } else if("4".equals(xmProject.getStatus())){ + tips.setFailureMsg("prj-status-4","项目暂停中,不能操作"); + } else if("9".equals(xmProject.getStatus())){ + tips.setFailureMsg("prj-status-9","项目已关闭,不能操作"); + } + return tips; + } + public Tips checkHasProjectEditQx(User user,XmProject xmProject){ + Tips tips=new Tips("成功"); + Map pmUserMap=new HashMap<>(); + pmUserMap.put(xmProject.getCreateUserid(),xmProject.getCreateUsername()); + pmUserMap.put(xmProject.getPmUserid(),xmProject.getPmUsername()); + pmUserMap.put(xmProject.getAdmUserid(),xmProject.getAdmUsername()); + pmUserMap.put(xmProject.getAssUserid(),xmProject.getAssUsername()); + if(!pmUserMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-project-edit-qx","您不是项目【"+xmProject.getName()+"】的管理人员,无权修改项目信息。"); + } + return tips; + } + public Tips checkProductStatus( XmProduct xmProductDb) { + Tips tips=new Tips("成功"); + if(xmProductDb==null){ + tips.setFailureMsg("product-0","产品已不存在"); + } else if("3".equals(xmProductDb.getPstatus())){ + tips.setFailureMsg("pstatus-3","产品已经关闭,不能再操作"); + } + return tips; + } + + public Map getProductAdmUsers(XmProduct xmProductDb){ + + Map proUsersMap=new HashMap<>(); + proUsersMap.put(xmProductDb.getPmUserid(),xmProductDb.getPmUsername()); + proUsersMap.put(xmProductDb.getAssUserid(),xmProductDb.getAssUserid()); + proUsersMap.put(xmProductDb.getAdmUserid(),xmProductDb.getAdmUserid()); + return proUsersMap; + } + public Tips checkHasProductEditQx(User user,XmProduct xmProductDb) { + Tips tips=new Tips("成功"); + Map proUsersMap=this.getProductAdmUsers(xmProductDb); + if(!proUsersMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-product-edit-qx","您不是产品【"+xmProductDb.getProductName()+"】的管理人员,无权修改产品信息。"); + } + return tips; + } + + public Tips checkHasEditProdcutGroupQx(User user,XmProjectGroup group,XmProjectGroup groupDb,XmProduct xmProductDb){ + Tips tips = new Tips("成功"); + if(groupDb==null){ + tips.setFailureMsg("data-0","该小组已不存在"); + return tips; + } + Map proUsersMap=this.getProductAdmUsers(xmProductDb); + + if(StringUtils.hasText(group.getAssUserid()) && !group.getAssUserid().equals(groupDb.getAssUserid())){ + if(!proUsersMap.containsKey(user.getUserid()) && !user.getUserid().equals(groupDb.getLeaderUserid())){ + tips.setFailureMsg("no-qx-change-g-assUserid","您无权限修改小组助理.组长及以上人员可以修改。"); + } + } + if(StringUtils.hasText(group.getLeaderUserid()) && !group.getLeaderUserid().equals(groupDb.getLeaderUserid())){ + if(!proUsersMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-qx-change-g-leaderUserid","您无权限修改小组组长.产品级助理及以上人员可以修改。"); + } + } + if(StringUtils.hasText(group.getPgroupId()) && !group.getPgroupId().equals(groupDb.getPgroupId())){ + if(!proUsersMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-qx-change-g-pgroupId","您无权限修改小组归属上级单位.产品级助理及以上人员可以修改。"); + } + } + return tips; + } + + public Map getProjectAdmUsers(XmProject xmProject){ + Map pmUserMap=new HashMap<>(); + pmUserMap.put(xmProject.getCreateUserid(),xmProject.getCreateUsername()); + pmUserMap.put(xmProject.getPmUserid(),xmProject.getPmUsername()); + pmUserMap.put(xmProject.getAdmUserid(),xmProject.getAdmUsername()); + pmUserMap.put(xmProject.getAssUserid(),xmProject.getAssUsername()); + return pmUserMap; + } + public Tips checkHasEditProjectGroupQx(User user,XmProjectGroup group,XmProjectGroup groupDb,XmProject xmProject){ + Tips tips = new Tips("成功"); + if(groupDb==null){ + tips.setFailureMsg("data-0","该小组已不存在"); + return tips; + } + + Map pmUserMap=this.getProjectAdmUsers(xmProject); + if(!pmUserMap.containsKey(user.getUserid())){ + if(!user.getUserid().equals(groupDb.getLeaderUserid()) && !user.getUserid().equals(groupDb.getAssUserid())){ + tips.setFailureMsg("not-prj-group-adm-user","您无权修改小组信息。 组长助理及以上人员有权限修改。"); + return tips; + } + } + if(StringUtils.hasText(group.getAssUserid()) && !group.getAssUserid().equals(groupDb.getAssUserid())){ + if(!pmUserMap.containsKey(user.getUserid()) && !user.getUserid().equals(groupDb.getLeaderUserid())){ + tips.setFailureMsg("no-qx-change-g-assUserid","您无权限修改小组助理.组长及以上人员可以修改。"); + return tips; + } + } + if(StringUtils.hasText(group.getLeaderUserid()) && !group.getLeaderUserid().equals(groupDb.getLeaderUserid())){ + if(!pmUserMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-qx-change-g-leaderUserid","您无权限修改小组组长.项目级助理及以上人员可以修改。"); + return tips; + } + } + if(StringUtils.hasText(group.getPgroupId()) && !group.getPgroupId().equals(groupDb.getPgroupId())){ + if(!pmUserMap.containsKey(user.getUserid())){ + tips.setFailureMsg("no-qx-change-g-pgroupId","您无权限修改小组归属上级单位.项目级助理及以上人员可以修改。"); + return tips; + } + } + + return tips; + } + public Tips parentIdPathsCalcBeforeSave(XmProjectGroup currNode) { Tips tips = new Tips("成功"); if (!StringUtils.hasText(currNode.getPgroupId()) || "0".equals(currNode.getPgroupId())) { @@ -631,17 +727,6 @@ public class XmProjectGroupService extends BaseService { } - public boolean checkExistsExecuser(XmProjectGroup node) { - String exec=node.getExeUserids(); - if(!StringUtils.hasText(exec)){ - return false; - } - if(exec.indexOf("(1)")>0 || exec.indexOf("(2)")>0|| exec.indexOf("(3)")>0|| exec.indexOf("(4)")>0|| exec.indexOf("(5)")>0){ - return true; - } - return false; - } - /** * 检查是否能删除干净所有儿子孙子节点。 * @param delNode 当前删除节点 diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java index 592646cc..d9aa9232 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java @@ -21,7 +21,11 @@ public class XmProjectGroupUserService extends BaseService { public List selectGroupUserListByProjectId(String projectId) { return this.selectList("selectGroupUserListByProjectId", projectId); } - + + public List selectGroupUserListByProductId(String productId) { + return this.selectList("selectGroupUserListByProductId", productId); + } + /** 请在此类添加自定义函数 */ } diff --git a/xm-core/src/main/java/com/xm/core/service/cache/XmProjectGroupCacheService.java b/xm-core/src/main/java/com/xm/core/service/cache/XmProjectGroupCacheService.java index eefe7073..e44db014 100644 --- a/xm-core/src/main/java/com/xm/core/service/cache/XmProjectGroupCacheService.java +++ b/xm-core/src/main/java/com/xm/core/service/cache/XmProjectGroupCacheService.java @@ -17,18 +17,30 @@ public class XmProjectGroupCacheService { String getCacheKey() { return "xm_project_group"; } - public void putGroups(String projectId,List groups){ - String key=this.getCacheKey()+"_"+projectId; + public void putProjectGroups(String projectId,List groups){ + String key=this.getCacheKey()+"_prj_"+projectId; String hashKey=key; redisTemplate.opsForHash().put(key, hashKey, groups); redisTemplate.expire(hashKey, 24, TimeUnit.HOURS); } - public List getGroups(String projectId){ + public List getProjectGroups(String projectId){ String key=this.getCacheKey()+"_"+projectId; String hashKey=key; return (List) redisTemplate.opsForHash().get(key, hashKey); } + public List getProductGroups(String productId){ + String key=this.getCacheKey()+"_pro_"+productId; + String hashKey=key; + return (List) redisTemplate.opsForHash().get(key, hashKey); + + } + public void putProductGroups(String productId,List groups){ + String key=this.getCacheKey()+"_pro_"+productId; + String hashKey=key; + redisTemplate.opsForHash().put(key, hashKey, groups); + redisTemplate.expire(hashKey, 24, TimeUnit.HOURS); + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml index 01708631..98caba15 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml @@ -29,7 +29,13 @@ +