From 39eea58335d940854529f94d46391088ea1875eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sat, 26 Mar 2022 05:33:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmMenuController.java | 54 ++++++++++++++++++- .../com/xm/core/service/XmMenuService.java | 4 ++ .../mapper/xm/core/dao/XmIterationMapper.xml | 4 +- .../mapper/xm/core/dao/XmMenuMapper.xml | 12 +++++ .../mapper/xm/core/dao/XmProductMapper.xml | 43 +++------------ .../mapper/xm/core/dao/XmProjectMapper.xml | 8 +-- 6 files changed, 82 insertions(+), 43 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 288d7a04..6039a7fd 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 @@ -3,6 +3,7 @@ package com.xm.core.ctrl; import com.alibaba.fastjson.JSON; import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; +import com.mdp.core.utils.BaseUtils; import com.mdp.core.utils.NumberUtil; import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.ResponseHelper; @@ -372,8 +373,57 @@ public class XmMenuController { m.put("tips", tips); return m; } - - + + /***/ + @ApiOperation( value = "根据主键修改一条项目菜单表信息",notes="editXmMenu") + @ApiResponses({ + @ApiResponse(code = 200,response=XmMenu.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @HasQx(value = "xm_core_xmMenu_editSomeFields",name = "修改用户需求中的某些字段",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") + @RequestMapping(value="/editSomeFields",method=RequestMethod.POST) + public Map editSomeFields(@RequestBody Map xmMenuMap) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + try{ + List menuIds= (List) xmMenuMap.get("menuIds"); + + if(menuIds==null || menuIds.size()==0){ + ResponseHelper.failed("menuIds-0","menuIds不能为空"); + } + XmMenu xmMenu= BaseUtils.fromMap(xmMenuMap,XmMenu.class); + List xmMenusDb=xmMenuService.selectListByIds(menuIds); + if(xmMenusDb==null ||xmMenusDb.size()==0){ + ResponseHelper.failed("menus-0","该需求已不存在"); + } + List can=new ArrayList<>(); + List no=new ArrayList<>(); + groupService.calcCanOpMenus(xmMenusDb,can,no); + if(can.size()<=0){ + return ResponseHelper.failed("noqx","您无权修改选中的需求。"); + } + Set fields=new HashSet<>(); + fields.add("childrenCnt"); + fields.add("ntype"); + fields.add("pidPaths"); + for (String fieldName : xmMenuMap.keySet()) { + if(fields.contains(fieldName)){ + return ResponseHelper.failed(fieldName+"-no-edit",fieldName+"不允许修改"); + } + } + xmMenuService.editSomeFields(xmMenuMap); + xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"修改产品需求","修改产品需求"+xmMenu.getMenuName(),"", JSON.toJSONString(xmMenu)); + + //m.put("data",xmMenu); + }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; + } /***/ diff --git a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java index 87fd88f3..b888a2cc 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java @@ -301,5 +301,9 @@ public class XmMenuService extends BaseService { super.update("batchChangeParent",map("menuIds",xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList()),"pmenuId",parentMenu.getMenuId(),"parentPidPaths",parentMenu.getPidPaths())); xmMenuStateService.sumParents(parentMenu); } + + public void editSomeFields(Map xmMenuMap) { + super.update("editSomeFields",xmMenuMap); + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmIterationMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmIterationMapper.xml index 2671d16c..429fe4b7 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmIterationMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmIterationMapper.xml @@ -27,9 +27,9 @@ and im.product_id=#{productId} ) - + and exists( select 1 from xm_product_project_link ppl - where ppl.project_id=#{projectId} and ppl.product_id =res.product_id + where ppl.project_id=#{linkProjectId} and ppl.product_id =res.product_id ) diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml index 2b479cfc..753fb353 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml @@ -172,6 +172,18 @@ res.lvl= LENGTH(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.menu_id,',')))-LENGTH(REPLACE(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.menu_id,',')),',',''))-1 + + + + update xm_menu + + + + where menu_id in + + #{item} + + diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml index bfd42a8a..55a862a7 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml @@ -12,15 +12,13 @@ and res.product_name like #{key} - + and exists( select 1 from xm_product_project_link ppl - where ppl.project_id=#{projectId} and ppl.product_id=res.id + where ppl.project_id=#{linkProjectId} and ppl.product_id=res.id ) - - and exists( select 1 from xm_iteration ppl - where ppl.id=#{iterationId} and ppl.product_id=res.id - ) + + and exists( select 1 from xm_iteration ppl where ppl.product_id=res.id and ppl.id=#{linkIterationId} ) and ( exists ( select 1 from xm_group_user gu inner join xm_task t on gu.project_id=t.project_id and t.product_id=res.id where gu.userid=#{compete} and t.product_id=res.id ) @@ -29,6 +27,9 @@ ) and ctime between #{ctimeStart} and #{ctimeEnd} + + and (res.branch_id in( #{platformBranchId},#{myBranchId}) and res.is_tpl='1') + and res.del!="1" @@ -37,36 +38,8 @@ diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMapper.xml index ca29f24c..f1a9d534 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMapper.xml @@ -49,14 +49,14 @@ and exists ( select 1 from xm_my_focus f where f.userid=#{userid} and f.project_id=res.id ) - + and exists( select 1 from xm_product_project_link ppl - where ppl.product_id=#{productId} and ppl.project_id=res.id + where ppl.product_id=#{linkProductId} and ppl.project_id=res.id ) - + and exists( select 1 from xm_iteration ipl inner join xm_product_project_link l on ipl.product_id=l.product_id - where l.project_id =res.id and ipl.id=#{iterationId} + where l.project_id =res.id and ipl.id=#{linkIterationId} ) and res.name like #{key}