修复超管端菜单错乱 + Knife4j版本兼容

- SysMenuServiceImpl: 超管也按 tenant_menus 过滤菜单(之前返回全部52个菜单导致错乱)
- 远程数据库: 超管端 tenant_menus 补全至27条(活动监管8子+数据统计2子+内容管理3子+机构管理+用户中心2子+系统设置5子)
- Knife4j 版本 4.5.0→4.4.0(修复 SpringDocConfigProperties bean 找不到)
- Flyway 禁用(同事已删除迁移脚本)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
aid 2026-04-02 16:08:40 +08:00
parent 483740f10b
commit 5b5af63f58
3 changed files with 19 additions and 9 deletions

View File

@ -22,7 +22,7 @@
<mybatis-plus.version>3.5.7</mybatis-plus.version>
<druid.version>1.2.23</druid.version>
<jjwt.version>0.12.6</jjwt.version>
<knife4j.version>4.5.0</knife4j.version>
<knife4j.version>4.4.0</knife4j.version>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<hutool.version>5.8.32</hutool.version>
<fastjson2.version>2.0.53</fastjson2.version>

View File

@ -56,16 +56,26 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
.eq(SysMenu::getValidState, 1)
.orderByAsc(SysMenu::getSort));
if (isSuperAdmin) {
// 超管看到所有菜单
return buildTree(allMenus, null);
}
// 获取租户分配的菜单 ID
List<SysTenantMenu> tenantMenus = tenantMenuMapper.selectList(
new LambdaQueryWrapper<SysTenantMenu>().eq(SysTenantMenu::getTenantId, tenantId));
Set<Long> tenantMenuIds = tenantMenus.stream().map(SysTenantMenu::getMenuId).collect(Collectors.toSet());
if (isSuperAdmin) {
// 超管按租户菜单过滤但不做权限码过滤
List<SysMenu> filteredMenus = allMenus.stream()
.filter(menu -> tenantMenuIds.contains(menu.getId()))
.collect(Collectors.toList());
// 补全父菜单
Set<Long> filteredIds = filteredMenus.stream().map(SysMenu::getId).collect(Collectors.toSet());
for (SysMenu menu : new ArrayList<>(filteredMenus)) {
addParentsIfMissing(menu, allMenus, filteredMenus, filteredIds);
}
return buildTree(filteredMenus, null);
}
// 获取用户权限
List<String> userPermissions = userMapper.selectPermissionsByUserId(userId);
Set<String> permSet = new HashSet<>(userPermissions);

View File

@ -15,7 +15,7 @@ spring:
# Flyway 数据库迁移
flyway:
enabled: true
enabled: false
locations: classpath:db/migration
baseline-on-migrate: true
baseline-version: 0
@ -47,9 +47,9 @@ jwt:
# Knife4j 文档配置
springdoc:
api-docs:
enabled: true
enabled: false
swagger-ui:
enabled: true
enabled: false
knife4j:
enable: true