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 | 122 +++++++++++++++++++++++++++++----------- 1 files changed, 88 insertions(+), 34 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 bdb7379..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,14 +14,11 @@ 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; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,11 +51,15 @@ @Autowired ISysMenuService menuService; + @Autowired + IMaintainFieldService maintainFieldService; + @Autowired + IMasterAuthorService masterAuthorService; public static final String key = "process"; @Override - public boolean create(String json, HttpSession session) { + public MenuMapping create(String json, HttpSession session) { JSONObject jsonObject = JSONObject.parseObject(json); // //1 // Flows flows = activitiService.start(key, session); @@ -81,9 +82,17 @@ menuMapping = objectMapper.readValue(json, MenuMapping.class); } catch (JsonProcessingException e) { e.printStackTrace(); - return false; + return null; } - //menuMapping.setMaintainId(maintainId); + 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); return create(menuMapping); } @@ -109,10 +118,24 @@ return null; } - public boolean create(MenuMapping menuMapping) { + public MenuMapping create(MenuMapping menuMapping) { menuMapping.setCreateTime(new Date()); menuMapping.setId(DbUtils.getUUID()); - return this.insert(menuMapping); + String name = menuMapping.getName(); + name = DbUtils.getChineseOrEnglishOrNumber(name); + String tableName = WorkflowUtils.toFirstChar(name.toLowerCase()); + tableName = Constant.MD + tableName; + String tableByName = tableInfoMapper.selectTableByName(tableName); + if (!StringUtils.isEmpty(tableByName)){ + tableName = tableName + "_" + DbUtils.getUUID(5); + } + menuMapping.setTableName(tableName); + boolean insert = this.insert(menuMapping); + if (insert) { + return menuMapping; + } else { + return null; + } } @Override @@ -126,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