Browse Source

新增注释

master
刘力 3 years ago
parent
commit
d7df81023d
  1. 19
      archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java
  2. 2
      system/src/main/java/com/storeroom/modules/system/domain/Menu.java
  3. 102
      system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java

19
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.DynamicTableService;
import com.storeroom.modules.dictionary.service.FieldService; import com.storeroom.modules.dictionary.service.FieldService;
import com.storeroom.modules.dictionary.service.dto.ArchivesDictionaryDTO; import com.storeroom.modules.dictionary.service.dto.ArchivesDictionaryDTO;
import com.storeroom.utils.DateUtils;
import com.storeroom.utils.StringUtils; import com.storeroom.utils.StringUtils;
import lombok.RequiredArgsConstructor; 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.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceUtils; import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -49,14 +43,21 @@ public class DynamicTableImpl implements DynamicTableService {
String fileTableName = "file_"+tableName; String fileTableName = "file_"+tableName;
integerList.add(1); integerList.add(1);
integerList.add(2); integerList.add(2);
//先查询类型1和2的数据字段
List<FieldVO> fieldList = queryList(integerList); List<FieldVO> fieldList = queryList(integerList);
//插入数据
DynamicInsert(fieldList, archiveTypeId); DynamicInsert(fieldList, archiveTypeId);
//生成表和表名创建表名
DynamicCreateFileTable(fieldList, tableName); DynamicCreateFileTable(fieldList, tableName);
//清楚数组
integerList.clear(); integerList.clear();
//查询类型为3的字段
integerList.add(3); integerList.add(3);
//生成数组
List<FieldVO> fileList = queryList(integerList); List<FieldVO> fileList = queryList(integerList);
//插入数据
DynamicInsert(fileList, archiveTypeId); DynamicInsert(fileList, archiveTypeId);
//创建表和生成文件表名
DynamicCreateFileTable(fileList, fileTableName); DynamicCreateFileTable(fileList, fileTableName);
} else { } else {

2
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; private Integer subCount = 0;
@ApiModelProperty(value = "外链菜单") @ApiModelProperty(value = "外链菜单")
private Boolean iFrame;
private Boolean iFrame = false;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {

102
system/src/main/java/com/storeroom/modules/system/service/impl/MenuServiceImpl.java

@ -45,14 +45,14 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
public List<MenuDto> queryAll(MenuQueryCriteria criteria, Boolean isQuery) throws Exception { public List<MenuDto> queryAll(MenuQueryCriteria criteria, Boolean isQuery) throws Exception {
Sort sort = Sort.by(Sort.Direction.ASC, "menuSort"); Sort sort = Sort.by(Sort.Direction.ASC, "menuSort");
if(Boolean.TRUE.equals(isQuery)){
if (Boolean.TRUE.equals(isQuery)) {
criteria.setPidIsNull(true); criteria.setPidIsNull(true);
List<Field> fields = QueryHelp.getAllFields(criteria.getClass(), new ArrayList<>()); List<Field> fields = QueryHelp.getAllFields(criteria.getClass(), new ArrayList<>());
for (Field field : fields) { for (Field field : fields) {
//设置对象的访问权限保证对private的属性的访问 //设置对象的访问权限保证对private的属性的访问
field.setAccessible(true); field.setAccessible(true);
Object val = field.get(criteria); Object val = field.get(criteria);
if("pidIsNull".equals(field.getName())){
if ("pidIsNull".equals(field.getName())) {
continue; continue;
} }
if (ObjectUtil.isNotNull(val)) { 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 @Override
@Cacheable(key = "'id:' + #p0") @Cacheable(key = "'id:' + #p0")
public MenuDto findById(long id) { public MenuDto findById(long id) {
Menu menu = menuRepository.findById(id).orElseGet(Menu::new); 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); return menuMapper.toDto(menu);
} }
/** /**
* 用户角色改变时需清理缓存 * 用户角色改变时需清理缓存
*
* @param currentUserId / * @param currentUserId /
* @return / * @return /
*/ */
@ -89,23 +90,23 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void create(Menu resources) { 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); 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); menuRepository.save(resources);
// 计算子节点数目 // 计算子节点数目
resources.setSubCount(0); resources.setSubCount(0);
@ -116,25 +117,27 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(Menu resources) { public void update(Menu resources) {
if(resources.getId().equals(resources.getPid())) {
if (resources.getId().equals(resources.getPid())) {
throw new BaseException("上级不能为自己"); throw new BaseException("上级不能为自己");
} }
Menu menu = menuRepository.findById(resources.getId()).orElseGet(Menu::new); 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://"; 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://开头"); throw new BaseException("外链必须以http://或者https://开头");
} }
} }
Menu menu1 = menuRepository.findByTitle(resources.getTitle()); 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); resources.setPid(null);
} }
@ -142,10 +145,10 @@ public class MenuServiceImpl implements MenuService {
Long oldPid = menu.getPid(); Long oldPid = menu.getPid();
Long newPid = resources.getPid(); Long newPid = resources.getPid();
if(StringUtils.isNotBlank(resources.getComponentName())){
if (StringUtils.isNotBlank(resources.getComponentName())) {
menu1 = menuRepository.findByComponentName(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()); menu.setTitle(resources.getTitle());
@ -173,7 +176,7 @@ public class MenuServiceImpl implements MenuService {
for (Menu menu : menuList) { for (Menu menu : menuList) {
menuSet.add(menu); menuSet.add(menu);
List<Menu> menus = menuRepository.findByPid(menu.getId()); List<Menu> menus = menuRepository.findByPid(menu.getId());
if(menus!=null && menus.size()!=0){
if (menus != null && menus.size() != 0) {
getChildMenus(menus, menuSet); getChildMenus(menus, menuSet);
} }
} }
@ -195,7 +198,7 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
public List<MenuDto> getMenus(Long pid) { public List<MenuDto> getMenus(Long pid) {
List<Menu> menus; List<Menu> menus;
if(pid != null && !pid.equals(0L)){
if (pid != null && !pid.equals(0L)) {
menus = menuRepository.findByPid(pid); menus = menuRepository.findByPid(pid);
} else { } else {
menus = menuRepository.findByPidIsNull(); menus = menuRepository.findByPidIsNull();
@ -205,7 +208,7 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
public List<MenuDto> getSuperior(MenuDto menuDto, List<Menu> menus) { public List<MenuDto> getSuperior(MenuDto menuDto, List<Menu> menus) {
if(menuDto.getPid() == null){
if (menuDto.getPid() == null) {
menus.addAll(menuRepository.findByPidIsNull()); menus.addAll(menuRepository.findByPidIsNull());
return menuMapper.toDto(menus); 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()); trees = menuDtos.stream().filter(s -> !ids.contains(s.getId())).collect(Collectors.toList());
} }
return trees; return trees;
@ -241,35 +244,35 @@ public class MenuServiceImpl implements MenuService {
public List<MenuVo> buildMenus(List<MenuDto> menuDtos) { public List<MenuVo> buildMenus(List<MenuDto> menuDtos) {
List<MenuVo> list = new LinkedList<>(); List<MenuVo> list = new LinkedList<>();
menuDtos.forEach(menuDTO -> { menuDtos.forEach(menuDTO -> {
if (menuDTO!=null){
if (menuDTO != null) {
List<MenuDto> menuDtoList = menuDTO.getChildren(); List<MenuDto> menuDtoList = menuDTO.getChildren();
MenuVo menuVo = new MenuVo(); 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()); 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.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.setAlwaysShow(true);
menuVo.setRedirect("noredirect"); menuVo.setRedirect("noredirect");
menuVo.setChildren(buildMenus(menuDtoList)); menuVo.setChildren(buildMenus(menuDtoList));
// 处理是一级菜单并且没有子菜单的情况 // 处理是一级菜单并且没有子菜单的情况
} else if(menuDTO.getPid() == null){
} else if (menuDTO.getPid() == null) {
MenuVo menuVo1 = new MenuVo(); MenuVo menuVo1 = new MenuVo();
menuVo1.setMeta(menuVo.getMeta()); menuVo1.setMeta(menuVo.getMeta());
// 非外链 // 非外链
if(!menuDTO.getIFrame()){
if (!menuDTO.getIFrame()) {
menuVo1.setPath("index"); menuVo1.setPath("index");
menuVo1.setName(menuVo.getName()); menuVo1.setName(menuVo.getName());
menuVo1.setComponent(menuVo.getComponent()); menuVo1.setComponent(menuVo.getComponent());
@ -293,7 +296,7 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
public Menu findOne(Long id) { public Menu findOne(Long id) {
Menu menu = menuRepository.findById(id).orElseGet(Menu::new); Menu menu = menuRepository.findById(id).orElseGet(Menu::new);
ValidationUtil.isNull(menu.getId(),"Menu","id",id);
ValidationUtil.isNull(menu.getId(), "Menu", "id", id);
return menu; return menu;
} }
@ -301,7 +304,7 @@ public class MenuServiceImpl implements MenuService {
public void download(List<MenuDto> menuDtos, HttpServletResponse response) throws IOException { public void download(List<MenuDto> menuDtos, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
for (MenuDto menuDTO : menuDtos) { for (MenuDto menuDTO : menuDtos) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("菜单标题", menuDTO.getTitle()); map.put("菜单标题", menuDTO.getTitle());
map.put("菜单类型", menuDTO.getType() == null ? "目录" : menuDTO.getType() == 1 ? "菜单" : "按钮"); map.put("菜单类型", menuDTO.getType() == null ? "目录" : menuDTO.getType() == 1 ? "菜单" : "按钮");
map.put("权限标识", menuDTO.getPermission()); map.put("权限标识", menuDTO.getPermission());
@ -314,8 +317,8 @@ public class MenuServiceImpl implements MenuService {
FileUtil.downloadExcel(list, response); 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); int count = menuRepository.countByPid(menuId);
menuRepository.updateSubCntById(count, menuId); menuRepository.updateSubCntById(count, menuId);
} }
@ -323,14 +326,15 @@ public class MenuServiceImpl implements MenuService {
/** /**
* 清理缓存 * 清理缓存
*
* @param id 菜单ID * @param id 菜单ID
*/ */
public void delCaches(Long id){
public void delCaches(Long id) {
List<User> users = userRepository.findByMenuId(id); List<User> users = userRepository.findByMenuId(id);
redisUtils.del(CacheKey.MENU_ID + id); redisUtils.del(CacheKey.MENU_ID + id);
redisUtils.delByKeys(CacheKey.MENU_USER, users.stream().map(User::getId).collect(Collectors.toSet())); redisUtils.delByKeys(CacheKey.MENU_USER, users.stream().map(User::getId).collect(Collectors.toSet()));
// 清除 Role 缓存 // 清除 Role 缓存
List<Role> roles = roleService.findInMenuId(new ArrayList<Long>(){{
List<Role> roles = roleService.findInMenuId(new ArrayList<Long>() {{
add(id); add(id);
}}); }});
redisUtils.delByKeys(CacheKey.ROLE_ID, roles.stream().map(Role::getId).collect(Collectors.toSet())); redisUtils.delByKeys(CacheKey.ROLE_ID, roles.stream().map(Role::getId).collect(Collectors.toSet()));

Loading…
Cancel
Save