From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期二, 31 三月 2020 13:25:47 +0800 Subject: [PATCH] fix 数据权限 --- src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java | 98 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 68 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java index 25b44b0..6241cd5 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java @@ -14,12 +14,8 @@ import com.highdatas.mdm.mapper.MenuMappingMapper; import com.highdatas.mdm.mapper.TableInfoMapper; import com.highdatas.mdm.pojo.CodeMsg; -import com.highdatas.mdm.pojo.MaintainDataType; import com.highdatas.mdm.pojo.Result; -import com.highdatas.mdm.service.ActivitiService; -import com.highdatas.mdm.service.IMaintainService; -import com.highdatas.mdm.service.IMenuMappingService; -import com.highdatas.mdm.service.ISysMenuService; +import com.highdatas.mdm.service.*; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import com.highdatas.mdm.util.WorkflowUtils; @@ -55,6 +51,10 @@ @Autowired ISysMenuService menuService; + @Autowired + IMaintainFieldService maintainFieldService; + @Autowired + IMasterAuthorService masterAuthorService; public static final String key = "process"; @@ -82,6 +82,14 @@ menuMapping = objectMapper.readValue(json, MenuMapping.class); } catch (JsonProcessingException e) { e.printStackTrace(); + return null; + } + String menuId = menuMapping.getMenuId(); + if (StringUtils.isEmpty(menuId)) { + return null; + } + int cnt = selectCount(new EntityWrapper<MenuMapping>().eq("menu_id", menuId)); + if (cnt != 0) { return null; } //menuMapping.setMaintainFieldId(maintainId); @@ -128,7 +136,6 @@ } else { return null; } - } @Override @@ -142,49 +149,80 @@ e.printStackTrace(); return false; } - //only update no join + + //update menu name + String menuId = menuMapping.getMenuId(); + SysMenu sysMenu = menuService.selectById(menuId); + if (sysMenu == null) { + return false; + } + sysMenu.setName(menuMapping.getName()); + sysMenu.updateById(); + return this.updateById(menuMapping); } @Override public Result getMapping(HttpSession session, String id) { SysMenu sysMenu = menuService.selectById(id); - MaintainDataType dataType = sysMenu.getDataType(); + if (sysMenu == null) { + return Result.error(CodeMsg.SELECT_ERROR); + } String menuType = sysMenu.getMenuType(); - if (!StringUtils.isEmpty(menuType) && menuType.equalsIgnoreCase("DataMenu")) { - Map mapping = menuMappingMapper.getMapping(id); - return Result.success(mapping); - }else if (!StringUtils.isEmpty(menuType) && menuType.equalsIgnoreCase("StructureMenu")) { + if (StringUtils.isEmpty(menuType)) { + return Result.error(CodeMsg.SELECT_ERROR); + } + + if (menuType.equalsIgnoreCase("StructureMenu")) { return Result.success(null); } - Wrapper<MenuMapping> menuWrapper = new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getParentId()); + + Map mapping = menuMappingMapper.getMapping(id); + + Wrapper<MenuMapping> menuWrapper = new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getId()); MenuMapping menuMapping = selectOne(menuWrapper); if (menuMapping == null) { return Result.error(new CodeMsg(10008,"褰撳墠涓婚鏃犵増鏈暟鎹�")); } - String tableName = menuMapping.getTableName(); - Maintain resultMaintain = null; - switch (dataType) { - case beforeData: - resultMaintain = maintainService.getRecentHistoryVersion(tableName); - break; - case afterData: - break; - case currentData: - resultMaintain = maintainService.getNowVersion(tableName); - break; - default: - Result.error(new CodeMsg(10008,"褰撳墠涓婚鏃犵増鏈暟鎹�")); - break; - } - Map<String, Object> mapping = menuMappingMapper.getMapping(sysMenu.getParentId()); + String tableName = menuMapping.getTableName(); + TUser user = (TUser) session.getAttribute(Constant.USER); + + Maintain resultMaintain = masterAuthorService.getMaxVersionMaintain(user.getUserId(), tableName); + if (resultMaintain != null) { + Maintain nowVersion = maintainService.getNowVersion(tableName); + if (nowVersion.getOrderNo().equals(resultMaintain.getOrderNo())) { + mapping.put("maintainType", 0); + }else { + mapping.put("maintainType", 1); + } mapping.put("version", resultMaintain.getVersion()); mapping.put("maintainId", resultMaintain.getId()); } - mapping.put("dataType", sysMenu.getDataType()); return Result.success(mapping); + + } + + @Override + public SysMenu getMenuByTableName(String tableName) { + MenuMapping menuMapping = selectOne(new EntityWrapper<MenuMapping>().eq("table_name", tableName).orderBy("create_time desc")); + if (menuMapping == null) { + return null; + } + String menuId = menuMapping.getMenuId(); + SysMenu sysMenu = menuService.selectById(menuId); + return sysMenu; + } + + @Override + public String getTableNameByMenu(String menuId) { + MenuMapping menuMapping = selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId).orderBy("create_time desc")); + if (menuMapping == null) { + return null; + } + return menuMapping.getTableName(); + } } -- Gitblit v1.8.0