Commit aaa0cba2 by Lizh

fix: sys_menu 表无 del_flag 列 + SysUserStatusEnums 修正 + 管理员权限

- SysMenuMapper.xml: 移除 m.del_flag = '0' 过滤(sys_menu 表无此列),改为 m.status='0' + r.status='0'
- SysMenuEntity: 移除不存在的 delFlag 字段
- SysMenuServiceImpl: 移除两处 getDelFlag() 引用
- SysUserStatusEnums.DELETED: code '1' → '2'(数据库 del_flag='2' 表示删除)
- SysLoginServiceImpl: 管理员 userId=1 自动获得 *:*:* 全部权限

Co-Authored-By: Claude <noreply@anthropic.com>
parent edd01401
......@@ -10,7 +10,7 @@ import lombok.Getter;
*/
@Getter
public enum SysUserStatusEnums {
DELETED("1", "已被删除"),
DELETED("2", "已被删除"),
DISABLED("1", "已被停用");
private final String code;
......
......@@ -77,9 +77,16 @@ public class SysLoginServiceImpl implements SysLoginService {
// 4. 构建 LoginUser
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), username);
// 5. 查询权限(返回 List<String>,转为 Set<String>)
List<String> permList = sysMenuDomainService.selectMenuPermsByUserId(user.getUserId());
loginUser.setPermissions(permList != null ? new HashSet<>(permList) : Collections.emptySet());
// 5. 查询权限:管理员拥有全部权限
Set<String> permissions;
if (user.getUserId() == 1L) {
permissions = new HashSet<>();
permissions.add("*:*:*");
} else {
List<String> permList = sysMenuDomainService.selectMenuPermsByUserId(user.getUserId());
permissions = permList != null ? new HashSet<>(permList) : Collections.emptySet();
}
loginUser.setPermissions(permissions);
// 6. 生成 token
String token = tokenHandle.createToken(loginUser);
......
......@@ -42,7 +42,6 @@ public class SysMenuServiceImpl implements SysMenuService {
if (StringUtils.hasText(menu.getStatus())) {
wrapper.eq(SysMenuEntity::getStatus, menu.getStatus());
}
wrapper.eq(SysMenuEntity::getDelFlag, "0");
wrapper.orderByAsc(SysMenuEntity::getParentId, SysMenuEntity::getOrderNum);
List<SysMenuEntity> entities = sysMenuDomainService.list(wrapper);
return BeanMapper.mapper().convertList(entities, SysMenuVO.class);
......@@ -58,7 +57,6 @@ public class SysMenuServiceImpl implements SysMenuService {
public List<TreeSelectVO> treeselect() {
List<SysMenuEntity> allMenus = sysMenuDomainService.list(
new LambdaQueryWrapper<SysMenuEntity>()
.eq(SysMenuEntity::getDelFlag, "0")
.orderByAsc(SysMenuEntity::getParentId, SysMenuEntity::getOrderNum));
return buildMenuTreeSelect(allMenus);
}
......
......@@ -141,10 +141,4 @@ public class SysMenuEntity implements Serializable {
@TableField("remark")
private String remark;
/**
* 删除标记(0正常 1删除)
*/
@TableField("del_flag")
private String delFlag;
}
}
\ No newline at end of file
......@@ -53,14 +53,13 @@
<!-- 根据用户ID查询权限列表 -->
<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
SELECT DISTINCT m.perms
FROM sys_user_role ur
LEFT JOIN sys_role_menu rm ON ur.role_id = rm.role_id
LEFT JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE ur.user_id = #{userId}
AND m.del_flag = '0'
AND m.status = '0'
AND m.perms IS NOT NULL
AND m.perms != ''
FROM sys_menu m
LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id
LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
LEFT JOIN sys_role r ON r.role_id = ur.role_id
WHERE m.status = '0'
AND r.status = '0'
AND ur.user_id = #{userId}
</select>
<!-- 根据用户ID查询菜单树 -->
......@@ -68,7 +67,6 @@
SELECT DISTINCT m.* FROM sys_menu m
WHERE m.menu_type IN ('M', 'C')
AND m.status = '0'
AND m.del_flag = '0'
<if test="userId != 1">
AND m.menu_id IN (
SELECT rm.menu_id FROM sys_role_menu rm
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment