diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java index 3f9be15..53ed2ac 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java @@ -6,25 +6,19 @@ import com.storeroom.modules.dictionary.service.ArchivesDictionaryService; import com.storeroom.modules.dictionary.service.DynamicTableService; import com.storeroom.modules.dictionary.service.FieldService; import com.storeroom.modules.dictionary.service.dto.ArchivesDictionaryDTO; -import com.storeroom.utils.DateUtils; import com.storeroom.utils.StringUtils; import lombok.RequiredArgsConstructor; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceUtils; import org.springframework.stereotype.Service; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; + import javax.sql.DataSource; import java.sql.Connection; -import java.sql.DatabaseMetaData; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -49,14 +43,21 @@ public class DynamicTableImpl implements DynamicTableService { String fileTableName = "file_"+tableName; integerList.add(1); integerList.add(2); - + //先查询类型1和2的数据字段 List fieldList = queryList(integerList); + //插入数据 DynamicInsert(fieldList, archiveTypeId); + //生成表和表名创建表名 DynamicCreateFileTable(fieldList, tableName); + //清楚数组 integerList.clear(); + //查询类型为3的字段 integerList.add(3); + //生成数组 List fileList = queryList(integerList); + //插入数据 DynamicInsert(fileList, archiveTypeId); + //创建表和生成文件表名 DynamicCreateFileTable(fileList, fileTableName); } else { diff --git a/system/src/main/java/com/storeroom/modules/system/domain/Menu.java b/system/src/main/java/com/storeroom/modules/system/domain/Menu.java index 86f3658..71abf0b 100644 --- a/system/src/main/java/com/storeroom/modules/system/domain/Menu.java +++ b/system/src/main/java/com/storeroom/modules/system/domain/Menu.java @@ -71,7 +71,7 @@ public class Menu extends BaseEntity implements Serializable { private Integer subCount = 0; @ApiModelProperty(value = "外链菜单") - private Boolean iFrame; + private Boolean iFrame = false; @Override public boolean equals(Object o) { diff --git a/system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java b/system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java index c672e59..7279dc3 100644 --- a/system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java +++ b/system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java @@ -45,14 +45,14 @@ public class MenuServiceImpl implements MenuService { @Override public List queryAll(MenuQueryCriteria criteria, Boolean isQuery) throws Exception { Sort sort = Sort.by(Sort.Direction.ASC, "menuSort"); - if(Boolean.TRUE.equals(isQuery)){ + if (Boolean.TRUE.equals(isQuery)) { criteria.setPidIsNull(true); List fields = QueryHelp.getAllFields(criteria.getClass(), new ArrayList<>()); for (Field field : fields) { //设置对象的访问权限,保证对private的属性的访问 field.setAccessible(true); Object val = field.get(criteria); - if("pidIsNull".equals(field.getName())){ + if ("pidIsNull".equals(field.getName())) { continue; } if (ObjectUtil.isNotNull(val)) { @@ -61,19 +61,20 @@ public class MenuServiceImpl implements MenuService { } } } - return menuMapper.toDto(menuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),sort)); + return menuMapper.toDto(menuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), sort)); } @Override @Cacheable(key = "'id:' + #p0") public MenuDto findById(long id) { Menu menu = menuRepository.findById(id).orElseGet(Menu::new); - ValidationUtil.isNull(menu.getId(),"Menu","id",id); + ValidationUtil.isNull(menu.getId(), "Menu", "id", id); return menuMapper.toDto(menu); } /** * 用户角色改变时需清理缓存 + * * @param currentUserId / * @return / */ @@ -89,23 +90,23 @@ public class MenuServiceImpl implements MenuService { @Override @Transactional(rollbackFor = Exception.class) public void create(Menu resources) { - if(menuRepository.findByTitle(resources.getTitle()) != null){ - throw new BaseException("title",resources.getTitle()); + if (menuRepository.findByTitle(resources.getTitle()) != null) { + throw new BaseException("title", resources.getTitle()); } - if(StringUtils.isNotBlank(resources.getComponentName())){ - if(menuRepository.findByComponentName(resources.getComponentName()) != null){ - throw new BaseException("componentName",resources.getComponentName()); + if (StringUtils.isNotBlank(resources.getComponentName())) { + if (menuRepository.findByComponentName(resources.getComponentName()) != null) { + throw new BaseException("componentName", resources.getComponentName()); } } - if(resources.getPid().equals(0L)){ + if (resources.getPid().equals(0L)) { resources.setPid(null); } -// if(resources.getIFrame()){ -// String http = "http://", https = "https://"; -// if (!(resources.getPath().toLowerCase().startsWith(http)||resources.getPath().toLowerCase().startsWith(https))) { -// throw new BaseException("外链必须以http://或者https://开头"); -// } -// } + if (resources.getIFrame()) { + String http = "http://", https = "https://"; + if (!(resources.getPath().toLowerCase().startsWith(http) || resources.getPath().toLowerCase().startsWith(https))) { + throw new BaseException("外链必须以http://或者https://开头"); + } + } menuRepository.save(resources); // 计算子节点数目 resources.setSubCount(0); @@ -116,25 +117,27 @@ public class MenuServiceImpl implements MenuService { @Override @Transactional(rollbackFor = Exception.class) public void update(Menu resources) { - if(resources.getId().equals(resources.getPid())) { + if (resources.getId().equals(resources.getPid())) { throw new BaseException("上级不能为自己"); } Menu menu = menuRepository.findById(resources.getId()).orElseGet(Menu::new); - ValidationUtil.isNull(menu.getId(),"Permission","id",resources.getId()); - - if(resources.getIFrame()){ + ValidationUtil.isNull(menu.getId(), "Permission", "id", resources.getId()); + if (resources.getIFrame() == null) { + resources.setIFrame(false); + } + if (resources.getIFrame()) { String http = "http://", https = "https://"; - if (!(resources.getPath().toLowerCase().startsWith(http)||resources.getPath().toLowerCase().startsWith(https))) { + if (!(resources.getPath().toLowerCase().startsWith(http) || resources.getPath().toLowerCase().startsWith(https))) { throw new BaseException("外链必须以http://或者https://开头"); } } Menu menu1 = menuRepository.findByTitle(resources.getTitle()); - if(menu1 != null && !menu1.getId().equals(menu.getId())){ - throw new BaseException("title",resources.getTitle()); + if (menu1 != null && !menu1.getId().equals(menu.getId())) { + throw new BaseException("title", resources.getTitle()); } - if(resources.getPid().equals(0L)){ + if (resources.getPid().equals(0L)) { resources.setPid(null); } @@ -142,10 +145,10 @@ public class MenuServiceImpl implements MenuService { Long oldPid = menu.getPid(); Long newPid = resources.getPid(); - if(StringUtils.isNotBlank(resources.getComponentName())){ + if (StringUtils.isNotBlank(resources.getComponentName())) { menu1 = menuRepository.findByComponentName(resources.getComponentName()); - if(menu1 != null && !menu1.getId().equals(menu.getId())){ - throw new BaseException("componentName",resources.getComponentName()); + if (menu1 != null && !menu1.getId().equals(menu.getId())) { + throw new BaseException("componentName", resources.getComponentName()); } } menu.setTitle(resources.getTitle()); @@ -173,7 +176,7 @@ public class MenuServiceImpl implements MenuService { for (Menu menu : menuList) { menuSet.add(menu); List menus = menuRepository.findByPid(menu.getId()); - if(menus!=null && menus.size()!=0){ + if (menus != null && menus.size() != 0) { getChildMenus(menus, menuSet); } } @@ -195,7 +198,7 @@ public class MenuServiceImpl implements MenuService { @Override public List getMenus(Long pid) { List menus; - if(pid != null && !pid.equals(0L)){ + if (pid != null && !pid.equals(0L)) { menus = menuRepository.findByPid(pid); } else { menus = menuRepository.findByPidIsNull(); @@ -205,7 +208,7 @@ public class MenuServiceImpl implements MenuService { @Override public List getSuperior(MenuDto menuDto, List menus) { - if(menuDto.getPid() == null){ + if (menuDto.getPid() == null) { menus.addAll(menuRepository.findByPidIsNull()); return menuMapper.toDto(menus); } @@ -231,7 +234,7 @@ public class MenuServiceImpl implements MenuService { } } } - if(trees.size() == 0){ + if (trees.size() == 0) { trees = menuDtos.stream().filter(s -> !ids.contains(s.getId())).collect(Collectors.toList()); } return trees; @@ -241,35 +244,35 @@ public class MenuServiceImpl implements MenuService { public List buildMenus(List menuDtos) { List list = new LinkedList<>(); menuDtos.forEach(menuDTO -> { - if (menuDTO!=null){ + if (menuDTO != null) { List menuDtoList = menuDTO.getChildren(); MenuVo menuVo = new MenuVo(); - menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponentName()) ? menuDTO.getComponentName() : menuDTO.getTitle()); + menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponentName()) ? menuDTO.getComponentName() : menuDTO.getTitle()); // 一级目录需要加斜杠,不然会报警告 - menuVo.setPath(menuDTO.getPid() == null ? "/" + menuDTO.getPath() :menuDTO.getPath()); + menuVo.setPath(menuDTO.getPid() == null ? "/" + menuDTO.getPath() : menuDTO.getPath()); menuVo.setHidden(menuDTO.getHidden()); // 如果不是外链 - if(!menuDTO.getIFrame()){ - if(menuDTO.getPid() == null){ - menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent())?"Layout":menuDTO.getComponent()); + if (!menuDTO.getIFrame()) { + if (menuDTO.getPid() == null) { + menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent()) ? "Layout" : menuDTO.getComponent()); // 如果不是一级菜单,并且菜单类型为目录,则代表是多级菜单 - }else if(menuDTO.getType() == 0){ - menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent())?"ParentView":menuDTO.getComponent()); - }else if(StringUtils.isNoneBlank(menuDTO.getComponent())){ + } else if (menuDTO.getType() == 0) { + menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent()) ? "ParentView" : menuDTO.getComponent()); + } else if (StringUtils.isNoneBlank(menuDTO.getComponent())) { menuVo.setComponent(menuDTO.getComponent()); } } - menuVo.setMeta(new MenuMetaVo(menuDTO.getTitle(),menuDTO.getIcon(),!menuDTO.getCache())); - if(CollectionUtil.isNotEmpty(menuDtoList)){ + menuVo.setMeta(new MenuMetaVo(menuDTO.getTitle(), menuDTO.getIcon(), !menuDTO.getCache())); + if (CollectionUtil.isNotEmpty(menuDtoList)) { menuVo.setAlwaysShow(true); menuVo.setRedirect("noredirect"); menuVo.setChildren(buildMenus(menuDtoList)); // 处理是一级菜单并且没有子菜单的情况 - } else if(menuDTO.getPid() == null){ + } else if (menuDTO.getPid() == null) { MenuVo menuVo1 = new MenuVo(); menuVo1.setMeta(menuVo.getMeta()); // 非外链 - if(!menuDTO.getIFrame()){ + if (!menuDTO.getIFrame()) { menuVo1.setPath("index"); menuVo1.setName(menuVo.getName()); menuVo1.setComponent(menuVo.getComponent()); @@ -293,7 +296,7 @@ public class MenuServiceImpl implements MenuService { @Override public Menu findOne(Long id) { Menu menu = menuRepository.findById(id).orElseGet(Menu::new); - ValidationUtil.isNull(menu.getId(),"Menu","id",id); + ValidationUtil.isNull(menu.getId(), "Menu", "id", id); return menu; } @@ -301,7 +304,7 @@ public class MenuServiceImpl implements MenuService { public void download(List menuDtos, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (MenuDto menuDTO : menuDtos) { - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); map.put("菜单标题", menuDTO.getTitle()); map.put("菜单类型", menuDTO.getType() == null ? "目录" : menuDTO.getType() == 1 ? "菜单" : "按钮"); map.put("权限标识", menuDTO.getPermission()); @@ -314,8 +317,8 @@ public class MenuServiceImpl implements MenuService { FileUtil.downloadExcel(list, response); } - private void updateSubCnt(Long menuId){ - if(menuId != null){ + private void updateSubCnt(Long menuId) { + if (menuId != null) { int count = menuRepository.countByPid(menuId); menuRepository.updateSubCntById(count, menuId); } @@ -323,14 +326,15 @@ public class MenuServiceImpl implements MenuService { /** * 清理缓存 + * * @param id 菜单ID */ - public void delCaches(Long id){ + public void delCaches(Long id) { List users = userRepository.findByMenuId(id); redisUtils.del(CacheKey.MENU_ID + id); redisUtils.delByKeys(CacheKey.MENU_USER, users.stream().map(User::getId).collect(Collectors.toSet())); // 清除 Role 缓存 - List roles = roleService.findInMenuId(new ArrayList(){{ + List roles = roleService.findInMenuId(new ArrayList() {{ add(id); }}); redisUtils.delByKeys(CacheKey.ROLE_ID, roles.stream().map(Role::getId).collect(Collectors.toSet()));