Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
7183a4b7c3
  1. 61
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java
  2. 3
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  3. 333
      xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java
  4. 4
      xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java
  5. 18
      xm-core/src/main/java/com/xm/core/service/cache/XmProjectGroupCacheService.java
  6. 8
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml

61
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;
@ -52,6 +54,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<String,Object> updateGroup(@RequestBody XmProjectGroup xmProjectGroup) {
public Map<String,Object> updateGroup(@RequestBody XmProjectGroup group) {
Tips tips=new Tips("团队更新成功");
Tips tips=new Tips("小组更新成功");
Map<String,Object> 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;
}

3
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<XmProjectGroupVo> groups=groupService.getUserGroups(xmTaskVo.getProjectId(), xmTaskVo.getExecutorUserid());
List<XmProjectGroupVo> 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()+"】信息");

333
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<XmProjectGroupVo> getProjectGroupVoList(String projectId) {
List<XmProjectGroupVo> groupVoList=new ArrayList<>();
List<XmProjectGroupVo> groupVoList2 = groupCacheService.getGroups(projectId);
List<XmProjectGroupVo> groupVoList2 = groupCacheService.getProjectGroups(projectId);
if(groupVoList2==null) {
XmProjectGroup group = new XmProjectGroup();
group.setProjectId(projectId);
List<XmProjectGroup> groupList = this.selectListByWhere(group);
if(groupList==null || groupList.size()==0) {
groupCacheService.putGroups(projectId, groupVoList);
groupCacheService.putProjectGroups(projectId, groupVoList);
return groupVoList;
}
List<XmProjectGroupUser> 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<XmProjectGroupVo> getProductGroupVoList(String productId) {
List<XmProjectGroupVo> groupVoList=new ArrayList<>();
List<XmProjectGroupVo> groupVoList2 = groupCacheService.getProductGroups(productId);
if(groupVoList2==null) {
XmProjectGroup group = new XmProjectGroup();
group.setProductId(productId);
List<XmProjectGroup> groupList = this.selectListByWhere(group);
if(groupList==null || groupList.size()==0) {
groupCacheService.putProductGroups(productId, groupVoList);
return groupVoList;
}
List<XmProjectGroupUser> 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<XmProjectGroupUser> 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<XmProjectGroupVo> getUserGroups(String projectId,String userid){
public List<XmProjectGroupVo> getUserGroupsByProjectId(String projectId, String userid){
List<XmProjectGroupVo> xmProjectGroupVoList=this.getProjectGroupVoList(projectId);
return this.getUserGroups(xmProjectGroupVoList, userid);
}
/**
* 获取用户在某个项目中的组
* @param productId
* @param userid
* @return
*/
public List<XmProjectGroupVo> getUserGroupsByProductId(String productId, String userid){
List<XmProjectGroupVo> 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<XmProjectGroupUser> 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<XmProjectGroupUser> 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<XmProjectGroupVo> getUserGroups( List<XmProjectGroupVo> xmProjectGroupVoList,String userid){
public List<XmProjectGroupVo> getUserGroups(List<XmProjectGroupVo> xmProjectGroupVoList, String userid){
List<XmProjectGroupVo> userGroups=new ArrayList<>();
if(xmProjectGroupVoList==null) {
return userGroups;
}
for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) {
List<XmProjectGroupUser> 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<XmProjectGroupUser> 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<XmProjectGroupVo> userGroups=getUserGroups(projectId,userid);
List<XmProjectGroupVo> 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<XmProjectGroupUser> 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<XmProjectGroupUser> 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<XmProjectGroupUser> getProjectManagers( List<XmProjectGroupVo> xmProjectGroupVoList){
@ -335,40 +355,7 @@ public class XmProjectGroupService extends BaseService {
}
/**
* 找到项目管理者
* @param xmProjectGroupVoList
* @return
*/
public XmProjectGroupUser getHeadProjectManager( List<XmProjectGroupVo> xmProjectGroupVoList){
List<XmProjectGroupUser> 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<XmProjectGroupVo> 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<XmProjectGroupVo> getProjectGroupVoListByProductId(String productId) {
XmProductProjectLink xmProductProjectLink=new XmProductProjectLink();
xmProductProjectLink.setProductId(productId);
List<XmProductProjectLink> list=this.xmProductProjectLinkService.selectListByWhere(xmProductProjectLink);
List<XmProjectGroupVo> datas=new ArrayList<>();
if(list!=null && list.size()>0){
for (XmProductProjectLink productProjectLink : list) {
List<XmProjectGroupVo> data0=this.getProjectGroupVoList(productProjectLink.getProjectId());
if(data0!=null && data0.size()>0){
datas.addAll(data0);
}
}
}
return datas;
List<XmProjectGroupVo> 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<String,String> 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<String,String> getProductAdmUsers(XmProduct xmProductDb){
Map<String,String> 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<String,String> 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<String,String> 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<String,String> getProjectAdmUsers(XmProject xmProject){
Map<String,String> 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<String,String> 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 当前删除节点

4
xm-core/src/main/java/com/xm/core/service/XmProjectGroupUserService.java

@ -22,6 +22,10 @@ public class XmProjectGroupUserService extends BaseService {
return this.selectList("selectGroupUserListByProjectId", projectId);
}
public List<XmProjectGroupUser> selectGroupUserListByProductId(String productId) {
return this.selectList("selectGroupUserListByProductId", productId);
}
/** 请在此类添加自定义函数 */
}

18
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<XmProjectGroupVo> groups){
String key=this.getCacheKey()+"_"+projectId;
public void putProjectGroups(String projectId,List<XmProjectGroupVo> groups){
String key=this.getCacheKey()+"_prj_"+projectId;
String hashKey=key;
redisTemplate.opsForHash().put(key, hashKey, groups);
redisTemplate.expire(hashKey, 24, TimeUnit.HOURS);
}
public List<XmProjectGroupVo> getGroups(String projectId){
public List<XmProjectGroupVo> getProjectGroups(String projectId){
String key=this.getCacheKey()+"_"+projectId;
String hashKey=key;
return (List<XmProjectGroupVo>) redisTemplate.opsForHash().get(key, hashKey);
}
public List<XmProjectGroupVo> getProductGroups(String productId){
String key=this.getCacheKey()+"_pro_"+productId;
String hashKey=key;
return (List<XmProjectGroupVo>) redisTemplate.opsForHash().get(key, hashKey);
}
public void putProductGroups(String productId,List<XmProjectGroupVo> groups){
String key=this.getCacheKey()+"_pro_"+productId;
String hashKey=key;
redisTemplate.opsForHash().put(key, hashKey, groups);
redisTemplate.expire(hashKey, 24, TimeUnit.HOURS);
}
}

8
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml

@ -29,7 +29,13 @@
<select id="selectGroupUserListByProjectId" parameterType="String" resultType="com.xm.core.entity.XmProjectGroupUser">
select * from xm_project_group_user res
<where>
exists( select 1 from xm_project_group g where g.id=res.group_id and res.project_id=#{projectId})
exists( select 1 from xm_project_group g where g.id=res.group_id and g.project_id=#{projectId})
</where>
</select>
<select id="selectGroupUserListByProductId" parameterType="String" resultType="com.xm.core.entity.XmProjectGroupUser">
select * from xm_project_group_user res
<where>
exists( select 1 from xm_project_group g where g.id=res.group_id and g.product_id=#{productId})
</where>
</select>

Loading…
Cancel
Save