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 4a92adf7..ee3652bf 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 @@ -238,6 +238,8 @@ public class XmProjectGroupController { } xmProjectGroup.setProductId(null); + xmProjectGroup.setBranchId(project.getBranchId()); + }else{ if(!StringUtils.hasText(xmProjectGroup.getProductId())){ return ResponseHelper.failed("productId-0","产品编号不能为空"); @@ -251,6 +253,7 @@ public class XmProjectGroupController { if(!tips.isOk()){ return ResponseHelper.failed(tips); } + xmProjectGroup.setBranchId(product.getBranchId()); Map productAdmMap=xmProjectGroupService.getProductAdmUsers(product); if(!productAdmMap.containsKey(u.getUserid())) { return ResponseHelper.failed("not-product-adm","您不是产品管理人员,不能创建小组。产品级助理及以上人员可以创建小组。"); @@ -389,7 +392,7 @@ public class XmProjectGroupController { } }else{ id=groupDb.getProductId(); - XmProduct product=this.xmProductService.selectOneObject(new XmProduct(id)); + XmProduct product=this.xmProductService.getProductFromCache( id ); Map productAdmMap=xmProjectGroupService.getProductAdmUsers(product); if(!productAdmMap.containsKey(user.getUserid())) { return ResponseHelper.failed("not-product-adm","您不是产品管理人员,不能删除小组。产品级助理以上人员可以删除小组。"); diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java index 29e7e34c..e592ac4f 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java @@ -386,9 +386,12 @@ public class XmProjectGroupUserController { } List gusDb=this.xmProjectGroupUserService.selectListByIds(gus); //过滤掉已经存在的 - gus=gus.stream().filter(i->!(gusDb.stream().filter(k->k.getGroupId().equals(i.getGroupId())&&k.getUserid().equals(i.getUserid()))).findAny().isPresent()).collect(Collectors.toList()); + List gusNoExists=gus.stream().filter(i->!(gusDb.stream().filter(k->k.getGroupId().equals(i.getGroupId())&&k.getUserid().equals(i.getUserid()))).findAny().isPresent()).collect(Collectors.toList()); + if(gusNoExists.size()==0){ + return ResponseHelper.failed("user-had-exists","成功添加0个组员。以下用户已在小组中,不用再添加。【"+gusDb.stream().map(i->i.getUsername()).collect(Collectors.joining(","))+"】"); + } User user=LoginUtils.getCurrentUserInfo(); - XmProjectGroupUser gu=gus.get(0); + XmProjectGroupUser gu=gusNoExists.get(0); String productId=gu.getProductId(); String projectId=gu.getProjectId(); String pgClass=gu.getPgClass(); @@ -400,8 +403,8 @@ public class XmProjectGroupUserController { if(xmProduct==null){ return ResponseHelper.failed("product-0","产品已不存在"); } - gus2=gus.stream().filter(i->productId.equals(i.getProductId())).collect(Collectors.toList()); - if(gus2.size()productId.equals(i.getProductId())).collect(Collectors.toList()); + if(gus2.size()projectId.equals(i.getProjectId())).collect(Collectors.toList()); - if(gus2.size()projectId.equals(i.getProjectId())).collect(Collectors.toList()); + if(gus2.size() groupIds=gus.stream().map(i->i.getGroupId()).collect(Collectors.toSet()); + Set groupIds=gusNoExists.stream().map(i->i.getGroupId()).collect(Collectors.toSet()); List canAddUsers=new ArrayList<>(); Map> groupUsersMap=new HashMap<>(); for (String groupId : groupIds) { @@ -453,15 +456,8 @@ public class XmProjectGroupUserController { if(canAddUsers.size()>0){ xmProjectGroupUserService.batchInsert(canAddUsers); } - List noAddUsers=new ArrayList<>(); - if(canAddUsers.size()i.getUserid().equals(gu0.getUserid())&&i.getGroupId().equals(gu0.getGroupId())).findAny().isPresent()){ - noAddUsers.add(gu0.getUsername()); - } - } - msg.add("以下"+noAddUsers.size()+"个小组用户无需新增。【"+noAddUsers.stream().collect(Collectors.toSet()).stream().collect(Collectors.joining(","))+"】"); + if(canAddUsers.size()i.getUsername()).collect(Collectors.joining(","))+"】"); } if(canAddUsers.size()!=0){ tips.setOkMsg(msg.stream().collect(Collectors.joining(" "))); diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml index a6ddae7e..e7bf5a59 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml @@ -13,6 +13,7 @@ and res.group_name like concat('%',#{key},'%') and (res.branch_id=#{branchId} or res.crow_branch_id=#{orCrowBranchId}) + and exists ( select 1 from xm_iteration_product_link ipl left join xm_product_project_link ppl on ipl.product_id=ppl.product_id and (ipl.product_id=res.product_id or ppl.project_id = res.project_id)) delete from xm_project_group where project_id = #{projectId} 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 bc83aa29..f01f1bf5 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 @@ -18,7 +18,7 @@