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