Browse Source

团队重构

master
陈裕财 3 years ago
parent
commit
680f25b9d6
  1. 10
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
  2. 14
      xm-core/src/main/java/com/xm/core/ctrl/XmQuestionController.java
  3. 48
      xm-core/src/main/java/com/xm/core/service/XmGroupService.java

10
xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java

@ -478,7 +478,7 @@ public class XmMenuController {
return ResponseHelper.failed("product-data-0","产品已不存在"); return ResponseHelper.failed("product-data-0","产品已不存在");
} }
Map<String,List<XmGroupVo>> groupsMap=new HashMap<>(); Map<String,List<XmGroupVo>> groupsMap=new HashMap<>();
tips=groupService.checkProductQx(groupsMap,xmProduct,1,user);
tips=groupService.checkProductQx(groupsMap,xmProduct,0,user);
if(!tips.isOk()){ if(!tips.isOk()){
return failed(tips); return failed(tips);
} }
@ -486,7 +486,11 @@ public class XmMenuController {
String mmUserid= (String) xmMenuMap.get("mmUserid"); String mmUserid= (String) xmMenuMap.get("mmUserid");
String mmUsername= (String) xmMenuMap.get("mmUsername"); String mmUsername= (String) xmMenuMap.get("mmUsername");
if(!user.getUserid().equals(mmUserid)){ if(!user.getUserid().equals(mmUserid)){
tips=groupService.checkProductQx(groupsMap,xmProduct,1,user,mmUserid);
tips=groupService.checkProductScopeQx(groupsMap,xmProduct,0,user,mmUserid,mmUsername,null);
if(!tips.isOk()){
return failed(tips);
}
tips=groupService.checkProductTransmitQx(groupsMap,xmProduct,0,user,mmUserid,mmUsername);
if(!tips.isOk()){ if(!tips.isOk()){
return failed(tips); return failed(tips);
} }
@ -496,7 +500,7 @@ public class XmMenuController {
List<XmMenu> noOper=new ArrayList<>(); List<XmMenu> noOper=new ArrayList<>();
Map<String,Tips> noOperTips=new HashMap<>(); Map<String,Tips> noOperTips=new HashMap<>();
for (XmMenu xm : xmMenusDb) { for (XmMenu xm : xmMenusDb) {
tips=groupService.checkProductQx(groupsMap,xmProduct,1,user,xm.getMmUserid());
tips=groupService.checkProductQx(groupsMap,xmProduct,0,user,xm.getMmUserid());
if(tips.isOk()){ if(tips.isOk()){
canOper.add(xm); canOper.add(xm);
}else{ }else{

14
xm-core/src/main/java/com/xm/core/ctrl/XmQuestionController.java

@ -334,6 +334,20 @@ public class XmQuestionController {
return ResponseHelper.failed(fieldName+"-no-edit",fieldName+"不允许修改"); return ResponseHelper.failed(fieldName+"-no-edit",fieldName+"不允许修改");
} }
} }
if(xmQuestionMap.containsKey("handlerUserid")){
String handlerUserid= (String) xmQuestionMap.get("handlerUserid");
String handlerUsername= (String) xmQuestionMap.get("handlerUsername");
XmQuestion xmQuedb=canOper.get(0);
Tips tips1=groupService.checkProductScopeQx(null,productService.getProductFromCache(xmQuedb.getProductId()),1,handlerUserid,handlerUsername,null);
if(!tips1.isOk()){
if(StringUtils.hasText(xmQuedb.getProjectId())){
tips1=groupService.checkProjectScopeQx(projectService.getProjectFromCache(xmQuedb.getProjectId()),handlerUserid,handlerUsername,null);
}
if(!tips1.isOk()){
return failed(tips1);
}
}
}
xmQuestionService.editSomeFields(xmQuestionMap); xmQuestionService.editSomeFields(xmQuestionMap);
String remarks= (String) xmQuestionMap.get("remarks"); String remarks= (String) xmQuestionMap.get("remarks");
String description= (String) xmQuestionMap.get("description"); String description= (String) xmQuestionMap.get("description");

48
xm-core/src/main/java/com/xm/core/service/XmGroupService.java

@ -173,6 +173,9 @@ public class XmGroupService extends BaseService {
} }
public Tips checkProductQx(XmProduct xmProduct,int teamType,User head,String ...memUserids){ public Tips checkProductQx(XmProduct xmProduct,int teamType,User head,String ...memUserids){
Tips tips=new Tips("成功"); Tips tips=new Tips("成功");
if(checkUserIsProductAdm(xmProduct,head.getUserid())){
return tips;
}
Map<String,List<XmGroupVo>> groupsMap=new HashMap<>(); Map<String,List<XmGroupVo>> groupsMap=new HashMap<>();
tips=this.checkProductScopeQx(groupsMap,xmProduct,teamType,head,memUserids); tips=this.checkProductScopeQx(groupsMap,xmProduct,teamType,head,memUserids);
if(!tips.isOk()){ if(!tips.isOk()){
@ -200,6 +203,26 @@ public class XmGroupService extends BaseService {
} }
return this.checkProductTransmitQx(groupsMap,xmProduct,teamType,head.getUserid(),head.getUserid()); return this.checkProductTransmitQx(groupsMap,xmProduct,teamType,head.getUserid(),head.getUserid());
} }
/**
*
* @param groupsMap 产品组缓存数据当需要循环执行时避免多次查询缓存与数据库
* @param xmProduct
* @param teamType 0-需求人员 1-测试人员,2-迭代人员
* @param head
* @return
*/
public Tips checkProductQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,User head,String userid,String username,String branchId){
Tips tips=new Tips("成功");
boolean headIsPm=this.checkUserIsProductAdm(xmProduct,head.getUserid());
if(headIsPm){
return tips;
}
tips=this.checkProductScopeQx(groupsMap,xmProduct,teamType,userid,username,branchId);
if(!tips.isOk()){
return tips;
}
return this.checkProductTransmitQx(groupsMap,xmProduct,teamType,head.getUserid(),head.getUserid());
}
public Tips checkProductQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,User head,String ...memUserids){ public Tips checkProductQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,User head,String ...memUserids){
Tips tips=new Tips("成功"); Tips tips=new Tips("成功");
tips=this.checkProductScopeQx(groupsMap,xmProduct,teamType,head,memUserids); tips=this.checkProductScopeQx(groupsMap,xmProduct,teamType,head,memUserids);
@ -367,6 +390,27 @@ public class XmGroupService extends BaseService {
return groupVoList; return groupVoList;
} }
public Tips checkProductTransmitQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,User head,String memUserid,String memUsername){
Tips tips=new Tips("成功");
String transmitQx= QxTool.getProductTransmitQx(xmProduct.getQxCode(),teamType);
if("0".equals(transmitQx)){//不检查上下级关系
return tips;
}else if("1".equals(transmitQx)){//检查上下级关系
if(StringUtils.isEmpty(memUserid)||head.getUserid().equals(memUserid)){
return tips;
}
List<XmGroupVo> groups=getProductGroupsFromLocalCache(groupsMap,xmProduct.getId());
if(this.checkUserIsOtherUserTeamHeadOrAss(groups, head.getUserid(), memUserid)){
return tips;
}
tips.setFailureMsg("pdqx-transmit-0",
String.format("产品【%s】开启了上下级关系检查,您当前账户【%s】不属于账户【%s】的上级,无权操作。",xmProduct.getId(),head.getUsername(),memUsername));
}
return tips;
}
public Tips checkProductTransmitQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,String headUserid,String ...memUserids){ public Tips checkProductTransmitQx(Map<String,List<XmGroupVo>> groupsMap,XmProduct xmProduct,int teamType,String headUserid,String ...memUserids){
Tips tips=new Tips("成功"); Tips tips=new Tips("成功");
String transmitQx= QxTool.getProductTransmitQx(xmProduct.getQxCode(),teamType); String transmitQx= QxTool.getProductTransmitQx(xmProduct.getQxCode(),teamType);
@ -414,6 +458,10 @@ public class XmGroupService extends BaseService {
} }
public Tips checkProjectQx(XmProject xmProject,User head,String ...memUserids){ public Tips checkProjectQx(XmProject xmProject,User head,String ...memUserids){
Tips tips=new Tips("成功"); Tips tips=new Tips("成功");
boolean headIsPm=this.checkUserIsProjectAdm(xmProject,head.getUserid());
if(headIsPm){
return tips;
}
tips=this.checkProjectScopeQx(xmProject,head,memUserids); tips=this.checkProjectScopeQx(xmProject,head,memUserids);
if(!tips.isOk()){ if(!tips.isOk()){
return tips; return tips;

Loading…
Cancel
Save