Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
ba57d9aaca
  1. 135
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java
  2. 6
      xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java

135
xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java

@ -359,7 +359,140 @@ public class XmProjectGroupUserController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
@ApiOperation( value = "根据主键列表批量新增xm_project_group_user信息",notes="batchAddXmProjectGroupUser,仅需要上传主键字段")
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@RequestMapping(value="/batchAdd",method=RequestMethod.POST)
public Map<String,Object> batchAddXmProjectGroupUser(@RequestBody List<XmProjectGroupUser> gus) {
Map<String,Object> m = new HashMap<>();
if(gus==null || gus.size()==0){
return ResponseHelper.failed("data-0","请上送要删除的小组成员");
}
Tips tips=new Tips("成功新增"+gus.size()+"条数据");
try{
if(gus.stream().filter(i->!StringUtils.hasText(i.getUserid())||!StringUtils.hasText(i.getGroupId())).findAny().isPresent()){
return ResponseHelper.failed("userid-or-groupId-0","请上送用户编号及小组编号");
}else{
for (XmProjectGroupUser gu : gus) {
if(!"1".equals(gu.getPgClass())&&StringUtils.hasText(gu.getProjectId())){
return ResponseHelper.failed("projectId-0","项目编号不能为空");
}else{
return ResponseHelper.failed("productId-0","产品编号不能为空");
}
}
}
List<XmProjectGroupUser> 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());
User user=LoginUtils.getCurrentUserInfo();
XmProjectGroupUser gu=gus.get(0);
String productId=gu.getProductId();
String projectId=gu.getProjectId();
String pgClass=gu.getPgClass();
List<XmProjectGroupUser> gus2=new ArrayList<>();
XmProduct xmProduct=null;
XmProject xmProject=null;
if("1".equals(pgClass)){
xmProduct=this.xmProductService.getProductFromCache(gu.getProductId());
if(xmProduct==null){
return ResponseHelper.failed("product-0","产品已不存在");
}
gus2=gusDb.stream().filter(i->productId.equals(i.getProductId())).collect(Collectors.toList());
if(gus2.size()<gusDb.size()){
return ResponseHelper.failed("data-0","批量新增只能新增同一个产品的成员。");
}
}else {
xmProject=this.xmProjectService.getProjectFromCache(gu.getProjectId());
if(xmProject==null){
return ResponseHelper.failed("project-0","项目已不存在");
}
gus2=gusDb.stream().filter(i->projectId.equals(i.getProductId())).collect(Collectors.toList());
if(gus2.size()<gusDb.size()){
return ResponseHelper.failed("data-0","批量新增只能新增同一个项目的成员。");
}
}
Set<String> groupIds=gus.stream().map(i->i.getGroupId()).collect(Collectors.toSet());
List<XmProjectGroupUser> canAddUsers=new ArrayList<>();
Map<String,List<XmProjectGroupUser>> groupUsersMap=new HashMap<>();
for (String groupId : groupIds) {
if("1".equals(pgClass)){
boolean isPm=xmProjectGroupService.checkUserIsProductAdm(xmProduct,user.getUserid());
if(!isPm){
XmProjectGroupVo xmProjectGroupVo=this.xmProjectGroupService.getProductGroupFromCache(xmProduct.getId(),groupId);
if(xmProjectGroupVo==null){
continue;
}
boolean isHead=xmProjectGroupService.checkUserIsTeamHeadOrAss(xmProjectGroupVo,user.getUserid());
if(isHead==false){
continue;
}
}
}else {
boolean isPm=xmProjectGroupService.checkUserIsProjectAdm(xmProject,user.getUserid());
if(!isPm){
XmProjectGroupVo xmProjectGroupVo=this.xmProjectGroupService.getProjectGroupFromCache(xmProduct.getId(),groupId);
if(xmProjectGroupVo==null){
continue;
}
boolean isHead=xmProjectGroupService.checkUserIsTeamHeadOrAss(xmProjectGroupVo,user.getUserid());
if(isHead==false){
continue;
}
}
}
List<XmProjectGroupUser> cdus=gus2.stream().filter(i->groupId.equals(i.getGroupId())).collect(Collectors.toList());
canAddUsers.addAll(cdus);
groupUsersMap.put(groupId,cdus);
}
List<String> msg=new ArrayList<>();
msg.add("成功新增"+canAddUsers.size()+"个小组用户.");
if(canAddUsers.size()>0){
xmProjectGroupUserService.batchInsert(canAddUsers);
}
List<String> noAddUsers=new ArrayList<>();
if(canAddUsers.size()<gus.size()){
for (XmProjectGroupUser gu0 : gus) {
if(!canAddUsers.stream().filter(i->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()!=0){
tips.setOkMsg(msg.stream().collect(Collectors.joining(";")));
}else{
tips.setFailureMsg(msg.stream().collect(Collectors.joining(";")));
}
groupUsersMap.forEach((groupId,groupUsers)->{
List<Map<String,Object>> users=groupUsers.stream().map(i->map("userid",i.getUserid(),"username",i.getUsername())).collect(Collectors.toList());
pushMsgService.pushLeaveChannelGroupMsg(user.getBranchId(),groupId, users);
if("0".equals(pgClass)){
xmProjectGroupService.clearProjectGroup(projectId);
xmRecordService.addXmGroupRecord(projectId,groupId, "项目-团队-新增小组成员", "新增组员["+groupUsers.stream().map(i->i.getUsername()).collect(Collectors.joining(","))+"]",user.getUserid(),null);
}else{
xmProjectGroupService.clearProductGroup(productId);
xmRecordService.addXmGroupRecord(productId,groupId, "产品-团队-新增小组成员", "新增组员["+groupUsers.stream().map(i->i.getUsername()).collect(Collectors.joining(","))+"]",user.getUserid(),null);
}
});
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
}catch (Exception e) {
tips.setFailureMsg(e.getMessage());
logger.error("",e);
}
m.put("tips", tips);
return m;
}
@ApiOperation( value = "根据主键列表批量删除xm_project_group_user信息",notes="batchDelXmProjectGroupUser,仅需要上传主键字段") @ApiOperation( value = "根据主键列表批量删除xm_project_group_user信息",notes="batchDelXmProjectGroupUser,仅需要上传主键字段")

6
xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java

@ -821,8 +821,8 @@ public class XmProjectGroupService extends BaseService {
for (int i = pidPathss.length-1; i >=0; i--) { for (int i = pidPathss.length-1; i >=0; i--) {
pidPathsList.add(pidPathss[i]); pidPathsList.add(pidPathss[i]);
} }
if(pidPathsList.size()>0){
super.update("sumParents",pidPathsList );
if(pidPathsList.size()>0){//暂时不处理改由前端手段更新
//super.update("sumParents",pidPathsList );
} }
} }
@ -865,7 +865,7 @@ public class XmProjectGroupService extends BaseService {
List<String> ids=set.stream().filter(k->!allSet.contains(k)).collect(Collectors.toList()); List<String> ids=set.stream().filter(k->!allSet.contains(k)).collect(Collectors.toList());
if(ids.size()>0){ if(ids.size()>0){
allSet.addAll(ids.stream().collect(Collectors.toSet())); allSet.addAll(ids.stream().collect(Collectors.toSet()));
super.update("batchSumParents", ids);
//super.update("batchSumParents", ids);////暂时不处理改由前端手段更新
} }
} }

Loading…
Cancel
Save