From 1f5c475f88ec218d45fe91ea88c7a77ead7e96cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Thu, 19 May 2022 15:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E5=8F=8A=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmMenuController.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java index 8c592533..63a4ae48 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java @@ -13,6 +13,7 @@ import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.xm.core.PubTool; import com.xm.core.entity.XmMenu; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmTask; import com.xm.core.queue.XmMenuSumParentsPushService; import com.xm.core.service.*; @@ -255,10 +256,24 @@ public class XmMenuController { xmMenu.setMmUserid(user.getUserid()); xmMenu.setMmUsername(user.getUsername()); } - XmMenu parentMenu= menuOperQxService.getUserCanOpMenuById(xmMenu.getPmenuId(),user.getUserid(),false); - if(parentMenu==null){ - return ResponseHelper.failed("noqx","您无权新增需求。"); + if(!StringUtils.hasText(xmMenu.getPmenuId())|| "0".equals(xmMenu.getPmenuId())){ + if(!"1".equals(xmMenu.getDclass())){ + return ResponseHelper.failed("dclass-not-1","一级需求目录只能是史诗"); + } + } + if(StringUtils.hasText(xmMenu.getPmenuId()) && !xmMenu.getPmenuId().equals("0")){ + XmMenu parentMenu= menuOperQxService.getUserCanOpMenuById(xmMenu.getPmenuId(),user.getUserid(),false); + if(parentMenu==null){ + return ResponseHelper.failed("noqx","您无权新增需求。"); + } + }else{ + XmProduct xmProduct=productService.getProductFromCache(xmMenu.getProductId()); + if(!this.menuOperQxService.checkIsProductAdmOrAss(xmProduct,user.getUserid())){ + return ResponseHelper.failed("noqx","产品级管理人员(产品经理、产品助理等)才能创建史诗。"); + }; } + + xmMenuService.parentIdPathsCalcBeforeSave(xmMenu); xmMenu.setStatus("0"); xmMenu.setChildrenCnt(0);