fix:修改iFrame字段为iframe,iFrame偶尔导致@setting注解读取失败问题
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package org.nl.common.domain.constant;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2022/12/26 9:29 上午
|
||||
*/
|
||||
public class DictConstantPool {
|
||||
|
||||
public static final String DICT_SYS_CODE = "system_type";
|
||||
public static final String DICT_SYS_NAME = "所属系统";
|
||||
}
|
||||
@@ -79,7 +79,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
menuDto.setIcon(json.getString("icon"));
|
||||
|
||||
menuDto.setSubCount(json.getInteger("sub_count"));
|
||||
menuDto.setIFrame("1".equals(json.getString("i_frame")));
|
||||
menuDto.setIframe("1".equals(json.getString("i_frame")));
|
||||
menuDto.setCache("1".equals(json.getString("cache")));
|
||||
menuDto.setHidden("1".equals(json.getString("hidden")));
|
||||
menuDto.setComponentName(json.getString("component_name"));
|
||||
@@ -197,7 +197,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
throw new BadRequestException("上级不能为自己");
|
||||
}
|
||||
|
||||
if (newMenu.getIFrame()) {
|
||||
if (newMenu.getIframe()) {
|
||||
String http = "http://", https = "https://";
|
||||
if (!(newMenu.getPath().toLowerCase().startsWith(http) || newMenu.getPath().toLowerCase().startsWith(https))) {
|
||||
throw new BadRequestException("外链必须以http://或者https://开头");
|
||||
@@ -326,7 +326,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
menuVo.setPath(ObjectUtil.isEmpty(menuDTO.getPid()) ? "/" + menuDTO.getPath() : menuDTO.getPath());
|
||||
menuVo.setHidden(menuDTO.getHidden());
|
||||
// 如果不是外链
|
||||
if (!menuDTO.getIFrame()) {
|
||||
if (!menuDTO.getIframe()) {
|
||||
if (ObjectUtil.isEmpty(menuDTO.getPid())) {
|
||||
menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent()) ? "Layout" : menuDTO.getComponent());
|
||||
} else if (!ObjectUtil.isEmpty(menuDTO.getPid()) && "0".equals(menuDTO.getType())) {
|
||||
@@ -346,7 +346,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
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());
|
||||
|
||||
@@ -97,7 +97,7 @@ public class SysMenuController {
|
||||
@ApiOperation("新增菜单")
|
||||
@PostMapping
|
||||
@SaCheckPermission("menu:add")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody SysMenu form) {
|
||||
public ResponseEntity<Object> create(@RequestBody SysMenu form) {
|
||||
iSysMenuService.create(form);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class SysMenu implements Serializable {
|
||||
/**
|
||||
* 是否外链
|
||||
*/
|
||||
private Boolean iFrame;
|
||||
private Boolean iframe;
|
||||
|
||||
/**
|
||||
* 是否缓存
|
||||
|
||||
@@ -46,7 +46,7 @@ public class MenuDto extends BaseDTO implements Serializable {
|
||||
|
||||
private Integer subCount;
|
||||
|
||||
private Boolean iFrame;
|
||||
private Boolean iframe;
|
||||
|
||||
|
||||
private Boolean cache;
|
||||
|
||||
@@ -6,9 +6,11 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.constant.DictConstantPool;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.common.utils.SecurityUtils;
|
||||
@@ -21,7 +23,6 @@ import org.nl.system.service.dict.dao.mapper.SysDictMapper;
|
||||
import org.nl.system.service.menu.dto.MenuDto;
|
||||
import org.nl.system.service.menu.ISysMenuService;
|
||||
import org.nl.system.service.menu.dao.SysMenu;
|
||||
import org.nl.system.service.menu.dto.MenuQuery;
|
||||
import org.nl.system.service.menu.dao.mapper.SysMenuMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -41,6 +42,7 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements ISysMenuService {
|
||||
|
||||
private final SysMenuMapper baseMapper;
|
||||
private final SysDictMapper sysDictMapper;
|
||||
|
||||
@@ -107,16 +109,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void create(SysMenu resources) {
|
||||
if (resources.getPid().equals("0")) {
|
||||
resources.setPid(null);
|
||||
}
|
||||
if (resources.getIFrame()) {
|
||||
|
||||
if (resources.getIframe()) {
|
||||
String http = "http://", https = "https://";
|
||||
if (!(resources.getPath().toLowerCase().startsWith(http) || resources.getPath().toLowerCase().startsWith(https))) {
|
||||
throw new BadRequestException("外链必须以http://或者https://开头");
|
||||
}
|
||||
}
|
||||
resources.setMenuId(IdUtil.getStringId());
|
||||
if (resources.getPid().equals("0")) {
|
||||
resources.setPid(null);
|
||||
addSystemTypeDict(resources);
|
||||
}
|
||||
updateRootSystemType(resources);
|
||||
baseMapper.insert(resources);
|
||||
// 计算子节点数目
|
||||
resources.setSubCount(0);
|
||||
@@ -124,15 +129,52 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
updateSubCnt(resources.getPid());
|
||||
}
|
||||
|
||||
private void addSystemTypeDict(SysMenu resources) {
|
||||
Dict dict = sysDictMapper.selectOne(new QueryWrapper<Dict>().eq("code", DictConstantPool.DICT_SYS_CODE).orderByDesc("value").last("limit 1"));
|
||||
Integer currentType = dict!=null?Integer.valueOf(dict.getValue())+1:1;
|
||||
Dict currentSysType = new Dict();
|
||||
currentSysType.setDictId(IdUtil.getStringId());
|
||||
currentSysType.setCode(DictConstantPool.DICT_SYS_CODE);
|
||||
currentSysType.setName(DictConstantPool.DICT_SYS_NAME);
|
||||
currentSysType.setLabel(resources.getTitle());
|
||||
currentSysType.setValue(String.valueOf(currentType));
|
||||
currentSysType.setPara1(resources.getMenuId());
|
||||
sysDictMapper.insert(currentSysType);
|
||||
resources.setSystemType(String.valueOf(currentType));
|
||||
}
|
||||
private void updateRootSystemType(SysMenu sysMenu) {
|
||||
String rootMenuId = this.findRootMenuId(sysMenu.getMenuId());
|
||||
if (sysMenu.getMenuId().equals(rootMenuId)){
|
||||
return;
|
||||
}
|
||||
SysMenu rootMenu = this.findById(rootMenuId);
|
||||
sysMenu.setSystemType(rootMenu.getSystemType());
|
||||
}
|
||||
private String findRootMenuId(String menuId) {
|
||||
SysMenu sysMenu = this.findById(menuId);
|
||||
String pid = sysMenu.getPid();
|
||||
if (StrUtil.isEmpty(pid)) {
|
||||
return menuId;
|
||||
} else {
|
||||
return findRootMenuId(pid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(Set<SysMenu> menuSet) {
|
||||
List<String> pids = Lists.newArrayList();
|
||||
for (SysMenu menu : menuSet) {
|
||||
//解绑菜单
|
||||
baseMapper.untiedMenu(menu.getMenuId());
|
||||
baseMapper.deleteById(menu.getMenuId());
|
||||
updateSubCnt(menu.getPid());
|
||||
String pid = menu.getPid();
|
||||
if (StringUtils.isNotEmpty(pid)){
|
||||
pids.add(pid);
|
||||
}
|
||||
updateSubCnt(pid);
|
||||
}
|
||||
sysDictMapper.delete(new QueryWrapper<Dict>().in("para1", pids).eq("code", DictConstantPool.DICT_SYS_CODE));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -142,7 +184,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
throw new BadRequestException("上级不能为自己");
|
||||
}
|
||||
SysMenu menu = baseMapper.selectById(resources.getMenuId());
|
||||
if (resources.getIFrame()) {
|
||||
if (resources.getIframe()) {
|
||||
String http = "http://", https = "https://";
|
||||
if (!(resources.getPath().toLowerCase().startsWith(http) || resources.getPath().toLowerCase().startsWith(https))) {
|
||||
throw new BadRequestException("外链必须以http://或者https://开头");
|
||||
@@ -150,6 +192,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
}
|
||||
if (resources.getPid().equals("0")) {
|
||||
resources.setPid(null);
|
||||
addSystemTypeDict(resources);
|
||||
}
|
||||
|
||||
// 记录的父节点ID
|
||||
@@ -159,7 +202,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
menu.setComponent(resources.getComponent());
|
||||
menu.setPath(resources.getPath());
|
||||
menu.setIcon(resources.getIcon());
|
||||
menu.setIFrame(resources.getIFrame());
|
||||
menu.setIframe(resources.getIframe());
|
||||
menu.setPid(resources.getPid());
|
||||
menu.setMenuSort(resources.getMenuSort());
|
||||
menu.setCache(resources.getCache());
|
||||
@@ -205,7 +248,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
menuVo.setPath(ObjectUtil.isEmpty(menuDTO.getPid()) ? "/" + menuDTO.getPath() : menuDTO.getPath());
|
||||
menuVo.setHidden(menuDTO.getHidden());
|
||||
// 如果不是外链
|
||||
if (!menuDTO.getIFrame()) {
|
||||
if (!menuDTO.getIframe()) {
|
||||
if (ObjectUtil.isEmpty(menuDTO.getPid())) {
|
||||
menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent()) ? "Layout" : menuDTO.getComponent());
|
||||
} else if (!ObjectUtil.isEmpty(menuDTO.getPid()) && "0".equals(menuDTO.getType())) {
|
||||
@@ -225,7 +268,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
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());
|
||||
@@ -297,7 +340,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
menuDto.setComponent(entity.getComponent());
|
||||
menuDto.setPid(entity.getPid());
|
||||
menuDto.setSubCount(entity.getSubCount());
|
||||
menuDto.setIFrame(entity.getIFrame());
|
||||
menuDto.setIframe(entity.getIframe());
|
||||
menuDto.setCache(entity.getCache());
|
||||
menuDto.setHidden(entity.getHidden());
|
||||
menuDto.setComponentName(entity.getComponentName());
|
||||
@@ -317,7 +360,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
|
||||
@Override
|
||||
public List<MenuVo> buildMenus(String systemType) {
|
||||
Dict dict = sysDictMapper.selectOne(new QueryWrapper<Dict>().eq("code", "system_type").eq("value", systemType));
|
||||
Dict dict = sysDictMapper.selectOne(new QueryWrapper<Dict>().eq("code", DictConstantPool.DICT_SYS_CODE).eq("value", systemType));
|
||||
if (dict == null || StringUtils.isEmpty(dict.getPara1())){
|
||||
throw new BadRequestException("获取对应的系统菜单不存在");
|
||||
}
|
||||
@@ -342,7 +385,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
menuVo.setPath(pid.equals(menuDTO.getPid())? "/" + menuDTO.getPath() : menuDTO.getPath());
|
||||
menuVo.setHidden(menuDTO.getHidden());
|
||||
// 如果不是外链
|
||||
if (!menuDTO.getIFrame()) {
|
||||
if (!menuDTO.getIframe()) {
|
||||
if (pid.equals(menuDTO.getPid())) {
|
||||
menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent()) ? "Layout" : menuDTO.getComponent());
|
||||
} else if (!pid.equals(menuDTO.getPid()) && "0".equals(menuDTO.getType())) {
|
||||
@@ -362,7 +405,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
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());
|
||||
|
||||
Reference in New Issue
Block a user