From 71ddb30d0da365ace07bdbab22f34d01d66b685c Mon Sep 17 00:00:00 2001 From: xiongfeng Date: Thu, 21 Aug 2025 22:27:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1.=E5=BC=95=E5=85=A5sa-token=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A1=86=E6=9E=B6=202.=E5=AE=9E=E7=8E=B0RBAC=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E7=9B=B8=E5=85=B3=E8=A1=A8=E7=BB=93=E6=9E=84=EF=BC=88?= =?UTF-8?q?=E7=94=A8=E6=88=B7-=E6=9D=83=E9=99=90-=E8=8F=9C=E5=8D=95-?= =?UTF-8?q?=E8=A7=92=E8=89=B2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 ++ .../common/utils/ApplicationContextUtils.java | 2 +- .../interceptor/StpInterfaceImpl.java | 37 ++++++++++ .../cn/xf/basedemo/mappers/SysMenuMapper.java | 15 +++++ .../basedemo/mappers/SysPermissionMapper.java | 18 +++++ .../cn/xf/basedemo/mappers/SysRoleMapper.java | 19 ++++++ .../basedemo/mappers/SysRoleMenuMapper.java | 15 +++++ .../mappers/SysRolePermissionMapper.java | 15 +++++ .../basedemo/mappers/SysUserRoleMapper.java | 15 +++++ .../cn/xf/basedemo/model/domain/SysMenu.java | 67 +++++++++++++++++++ .../basedemo/model/domain/SysPermission.java | 57 ++++++++++++++++ .../cn/xf/basedemo/model/domain/SysRole.java | 58 ++++++++++++++++ .../xf/basedemo/model/domain/SysRoleMenu.java | 53 +++++++++++++++ .../model/domain/SysRolePermission.java | 53 +++++++++++++++ .../xf/basedemo/model/domain/SysUserRole.java | 54 +++++++++++++++ .../xf/basedemo/service/SysMenuService.java | 13 ++++ .../service/SysPermissionService.java | 14 ++++ .../basedemo/service/SysRoleMenuService.java | 13 ++++ .../service/SysRolePermissionService.java | 13 ++++ .../xf/basedemo/service/SysRoleService.java | 13 ++++ .../basedemo/service/SysUserRoleService.java | 13 ++++ .../service/impl/SysMenuServiceImpl.java | 18 +++++ .../impl/SysPermissionServiceImpl.java | 18 +++++ .../service/impl/SysRoleMenuServiceImpl.java | 17 +++++ .../impl/SysRolePermissionServiceImpl.java | 18 +++++ .../service/impl/SysRoleServiceImpl.java | 18 +++++ .../service/impl/SysUserRoleServiceImpl.java | 18 +++++ .../service/impl/UserServiceImpl.java | 4 +- src/main/resources/mapper/SysMenuMapper.xml | 26 +++++++ .../resources/mapper/SysPermissionMapper.xml | 31 +++++++++ src/main/resources/mapper/SysRoleMapper.xml | 30 +++++++++ .../resources/mapper/SysRoleMenuMapper.xml | 20 ++++++ .../mapper/SysRolePermissionMapper.xml | 20 ++++++ .../resources/mapper/SysUserRoleMapper.xml | 20 ++++++ 34 files changed, 820 insertions(+), 2 deletions(-) create mode 100644 src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysMenuMapper.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysRoleMenuMapper.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysRolePermissionMapper.java create mode 100644 src/main/java/cn/xf/basedemo/mappers/SysUserRoleMapper.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysMenu.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysPermission.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysRole.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysRoleMenu.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysRolePermission.java create mode 100644 src/main/java/cn/xf/basedemo/model/domain/SysUserRole.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysMenuService.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysPermissionService.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysRoleMenuService.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysRolePermissionService.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysRoleService.java create mode 100644 src/main/java/cn/xf/basedemo/service/SysUserRoleService.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysMenuServiceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysPermissionServiceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysRoleMenuServiceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysRolePermissionServiceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysRoleServiceImpl.java create mode 100644 src/main/java/cn/xf/basedemo/service/impl/SysUserRoleServiceImpl.java create mode 100644 src/main/resources/mapper/SysMenuMapper.xml create mode 100644 src/main/resources/mapper/SysPermissionMapper.xml create mode 100644 src/main/resources/mapper/SysRoleMapper.xml create mode 100644 src/main/resources/mapper/SysRoleMenuMapper.xml create mode 100644 src/main/resources/mapper/SysRolePermissionMapper.xml create mode 100644 src/main/resources/mapper/SysUserRoleMapper.xml diff --git a/pom.xml b/pom.xml index e93dc07..2d3139a 100644 --- a/pom.xml +++ b/pom.xml @@ -170,6 +170,13 @@ 4.40.0.ALL + + + cn.dev33 + sa-token-spring-boot3-starter + 1.44.0 + + diff --git a/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java index ec79a21..4a7801c 100644 --- a/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java +++ b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java @@ -23,7 +23,7 @@ public class ApplicationContextUtils implements ApplicationContextAware { ApplicationContextUtils.context = applicationContext; } - public static ApplicationContext geteContext(){ + public static ApplicationContext getContext(){ return context; } diff --git a/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java b/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java new file mode 100644 index 0000000..c09cdfc --- /dev/null +++ b/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java @@ -0,0 +1,37 @@ +package cn.xf.basedemo.interceptor; + +import cn.dev33.satoken.stp.StpInterface; +import cn.xf.basedemo.common.utils.ApplicationContextUtils; +import cn.xf.basedemo.mappers.SysPermissionMapper; +import cn.xf.basedemo.mappers.SysRoleMapper; +import cn.xf.basedemo.model.domain.SysRole; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Description: 权限加载组件类 + * @ClassName: StpInterfaceImpl + * @Author: xiongfeng + * @Date: 2025/8/18 22:51 + * @Version: 1.0 + */ +@Component +public class StpInterfaceImpl implements StpInterface { + + private SysPermissionMapper sysPermissionMapper= (SysPermissionMapper) ApplicationContextUtils.getBean("SysPermissionMapper"); + private SysRoleMapper sysRoleMapper= (SysRoleMapper) ApplicationContextUtils.getBean("SysRoleMapper"); + + @Override + public List getPermissionList(Object userId, String s) { + //获取登录用户权限数据 + return sysPermissionMapper.getPermissionListByRoleId((Long) userId); + } + + @Override + public List getRoleList(Object userId, String s) { + //获取用户角色数据 + return sysRoleMapper.getRoleListByUserId((Long) userId); + } +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysMenuMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysMenuMapper.java new file mode 100644 index 0000000..89d8439 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysMenuMapper.java @@ -0,0 +1,15 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiongfeng +* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysMenu +*/ +public interface SysMenuMapper extends BaseMapper { + + +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java new file mode 100644 index 0000000..d8a2078 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysPermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** +* @author xiongfeng +* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysPermission +*/ +public interface SysPermissionMapper extends BaseMapper { + + List getPermissionListByRoleId(Long useId); + +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java new file mode 100644 index 0000000..9eee13e --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java @@ -0,0 +1,19 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysRole; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** +* @author xiongfeng +* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysRole +*/ +public interface SysRoleMapper extends BaseMapper { + + List getRoleListByUserId(Long userId); + + +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysRoleMenuMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysRoleMenuMapper.java new file mode 100644 index 0000000..0dc8ef3 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysRoleMenuMapper.java @@ -0,0 +1,15 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysRoleMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiongfeng +* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysRoleMenu +*/ +public interface SysRoleMenuMapper extends BaseMapper { + + +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysRolePermissionMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysRolePermissionMapper.java new file mode 100644 index 0000000..c9ff916 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysRolePermissionMapper.java @@ -0,0 +1,15 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysRolePermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiongfeng +* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysRolePermission +*/ +public interface SysRolePermissionMapper extends BaseMapper { + + +} diff --git a/src/main/java/cn/xf/basedemo/mappers/SysUserRoleMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysUserRoleMapper.java new file mode 100644 index 0000000..fed6270 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/SysUserRoleMapper.java @@ -0,0 +1,15 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.SysUserRole; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiongfeng +* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Mapper +* @createDate 2025-08-19 21:22:03 +* @Entity cn.xf.basedemo.model.domain.SysUserRole +*/ +public interface SysUserRoleMapper extends BaseMapper { + + +} diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysMenu.java b/src/main/java/cn/xf/basedemo/model/domain/SysMenu.java new file mode 100644 index 0000000..dd253c3 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysMenu.java @@ -0,0 +1,67 @@ +package cn.xf.basedemo.model.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 系统菜单表 sys_menu + * @TableName sys_menu + */ +@TableName(value ="sys_menu") +@Data +public class SysMenu implements Serializable { + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 菜单名称(sys_menu.name) + */ + private String name; + + /** + * 前端路由路径(sys_menu.path) + */ + private String path; + + /** + * 父菜单ID(sys_menu.parent_id,树结构) + */ + private Long parent_id; + + /** + * 菜单类型(sys_menu.type),0=目录,1=菜单,2=按钮 + */ + private Integer type; + + /** + * 菜单图标(sys_menu.icon) + */ + private String icon; + + /** + * 创建时间(sys_menu.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_menu.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_menu.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_menu.update_by) + */ + private String update_by; +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysPermission.java b/src/main/java/cn/xf/basedemo/model/domain/SysPermission.java new file mode 100644 index 0000000..807d396 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysPermission.java @@ -0,0 +1,57 @@ +package cn.xf.basedemo.model.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 系统权限表 sys_permission + * @TableName sys_permission + */ +@TableName(value ="sys_permission") +@Data +public class SysPermission implements Serializable { + /** + * 主键ID(sys_permission) + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 权限标识(sys_permission.code),如 user:add、order:delete + */ + private String code; + + /** + * 权限名称(sys_permission.name) + */ + private String name; + + /** + * 所属菜单ID(sys_permission.menu_id) + */ + private Long menu_id; + + /** + * 创建时间(sys_permission.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_permission.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_permission.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_permission.update_by) + */ + private String update_by; +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysRole.java b/src/main/java/cn/xf/basedemo/model/domain/SysRole.java new file mode 100644 index 0000000..5b0bf74 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysRole.java @@ -0,0 +1,58 @@ +package cn.xf.basedemo.model.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 系统角色表 sys_role + * @TableName sys_role + */ +@TableName(value ="sys_role") +@Data +public class SysRole implements Serializable { + /** + * 主键ID(sys_role) + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 角色名称(sys_role.name) + */ + private String name; + + /** + * 角色标识(sys_role.code),如 ADMIN、OPERATOR + */ + private String code; + + /** + * 角色状态(sys_role.status),1=启用,0=禁用 + */ + private Integer status; + + /** + * 创建时间(sys_role.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_role.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_role.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_role.update_by) + */ + private String update_by; + +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysRoleMenu.java b/src/main/java/cn/xf/basedemo/model/domain/SysRoleMenu.java new file mode 100644 index 0000000..9803cf1 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysRoleMenu.java @@ -0,0 +1,53 @@ +package cn.xf.basedemo.model.domain; + +import java.io.Serializable; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 角色菜单关联表 sys_role_menu + * @TableName sys_role_menu + */ +@TableName(value ="sys_role_menu") +@Data +public class SysRoleMenu implements Serializable { + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 角色ID(sys_role_menu.role_id) + */ + private Long role_id; + + /** + * 菜单ID(sys_role_menu.menu_id) + */ + private Long menu_id; + + /** + * 创建时间(sys_role_menu.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_role_menu.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_role_menu.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_role_menu.update_by) + */ + private String update_by; + +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysRolePermission.java b/src/main/java/cn/xf/basedemo/model/domain/SysRolePermission.java new file mode 100644 index 0000000..8b9138c --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysRolePermission.java @@ -0,0 +1,53 @@ +package cn.xf.basedemo.model.domain; + +import java.io.Serializable; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 角色权限关联表 sys_role_permission + * @TableName sys_role_permission + */ +@TableName(value ="sys_role_permission") +@Data +public class SysRolePermission implements Serializable { + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 角色ID(sys_role_permission.role_id) + */ + private Long role_id; + + /** + * 权限ID(sys_role_permission.permission_id) + */ + private Long permission_id; + + /** + * 创建时间(sys_role_permission.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_role_permission.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_role_permission.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_role_permission.update_by) + */ + private String update_by; + +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/model/domain/SysUserRole.java b/src/main/java/cn/xf/basedemo/model/domain/SysUserRole.java new file mode 100644 index 0000000..306e5d0 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/SysUserRole.java @@ -0,0 +1,54 @@ +package cn.xf.basedemo.model.domain; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 用户角色关联表 sys_user_role + * @TableName sys_user_role + */ +@TableName(value ="sys_user_role") +@Data +public class SysUserRole implements Serializable { + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 用户ID(sys_user_role.user_id) + */ + private Long user_id; + + /** + * 角色ID(sys_user_role.role_id) + */ + private Long role_id; + + /** + * 创建时间(sys_user_role.create_time) + */ + private Date create_time; + + /** + * 创建人(sys_user_role.create_by) + */ + private String create_by; + + /** + * 更新时间(sys_user_role.update_time) + */ + private Date update_time; + + /** + * 更新人(sys_user_role.update_by) + */ + private String update_by; + +} \ No newline at end of file diff --git a/src/main/java/cn/xf/basedemo/service/SysMenuService.java b/src/main/java/cn/xf/basedemo/service/SysMenuService.java new file mode 100644 index 0000000..49dec97 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysMenuService.java @@ -0,0 +1,13 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiongfeng +* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysMenuService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/SysPermissionService.java b/src/main/java/cn/xf/basedemo/service/SysPermissionService.java new file mode 100644 index 0000000..20fc92a --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysPermissionService.java @@ -0,0 +1,14 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysPermission; +import com.baomidou.mybatisplus.extension.service.IService; + + +/** +* @author xiongfeng +* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysPermissionService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/SysRoleMenuService.java b/src/main/java/cn/xf/basedemo/service/SysRoleMenuService.java new file mode 100644 index 0000000..1775c5d --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysRoleMenuService.java @@ -0,0 +1,13 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysRoleMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiongfeng +* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysRoleMenuService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/SysRolePermissionService.java b/src/main/java/cn/xf/basedemo/service/SysRolePermissionService.java new file mode 100644 index 0000000..dd60a78 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysRolePermissionService.java @@ -0,0 +1,13 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysRolePermission; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiongfeng +* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysRolePermissionService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/SysRoleService.java b/src/main/java/cn/xf/basedemo/service/SysRoleService.java new file mode 100644 index 0000000..a1eefae --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysRoleService.java @@ -0,0 +1,13 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysRole; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiongfeng +* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysRoleService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/SysUserRoleService.java b/src/main/java/cn/xf/basedemo/service/SysUserRoleService.java new file mode 100644 index 0000000..d8428c4 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/SysUserRoleService.java @@ -0,0 +1,13 @@ +package cn.xf.basedemo.service; + +import cn.xf.basedemo.model.domain.SysUserRole; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiongfeng +* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Service +* @createDate 2025-08-19 21:22:03 +*/ +public interface SysUserRoleService extends IService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysMenuServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysMenuServiceImpl.java new file mode 100644 index 0000000..7f3a565 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysMenuServiceImpl.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysMenu; +import cn.xf.basedemo.service.SysMenuService; +import cn.xf.basedemo.mappers.SysMenuMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysMenuServiceImpl extends ServiceImpl +implements SysMenuService{ + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysPermissionServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysPermissionServiceImpl.java new file mode 100644 index 0000000..49842f0 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysPermissionServiceImpl.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysPermission; +import cn.xf.basedemo.service.SysPermissionService; +import cn.xf.basedemo.mappers.SysPermissionMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysPermissionServiceImpl extends ServiceImpl +implements SysPermissionService{ + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysRoleMenuServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysRoleMenuServiceImpl.java new file mode 100644 index 0000000..4ce9a19 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysRoleMenuServiceImpl.java @@ -0,0 +1,17 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysRoleMenu; +import cn.xf.basedemo.service.SysRoleMenuService; +import cn.xf.basedemo.mappers.SysRoleMenuMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysRoleMenuServiceImpl extends ServiceImpl implements SysRoleMenuService { + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysRolePermissionServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysRolePermissionServiceImpl.java new file mode 100644 index 0000000..644cb66 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysRolePermissionServiceImpl.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysRolePermission; +import cn.xf.basedemo.service.SysRolePermissionService; +import cn.xf.basedemo.mappers.SysRolePermissionMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysRolePermissionServiceImpl extends ServiceImpl +implements SysRolePermissionService{ + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysRoleServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysRoleServiceImpl.java new file mode 100644 index 0000000..5ea8334 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysRoleServiceImpl.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysRole; +import cn.xf.basedemo.service.SysRoleService; +import cn.xf.basedemo.mappers.SysRoleMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysRoleServiceImpl extends ServiceImpl +implements SysRoleService{ + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/SysUserRoleServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/SysUserRoleServiceImpl.java new file mode 100644 index 0000000..033f3d1 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/service/impl/SysUserRoleServiceImpl.java @@ -0,0 +1,18 @@ +package cn.xf.basedemo.service.impl; + +import cn.xf.basedemo.model.domain.SysUserRole; +import cn.xf.basedemo.service.SysUserRoleService; +import cn.xf.basedemo.mappers.SysUserRoleMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +* @author xiongfeng +* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Service实现 +* @createDate 2025-08-19 21:22:03 +*/ +@Service +public class SysUserRoleServiceImpl extends ServiceImpl +implements SysUserRoleService{ + +} diff --git a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java index 7ddc1dd..eff1f8a 100644 --- a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java +++ b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java @@ -1,5 +1,6 @@ package cn.xf.basedemo.service.impl; +import cn.dev33.satoken.stp.StpUtil; import cn.xf.basedemo.common.model.EsBaseModel; import cn.xf.basedemo.common.model.LoginInfo; import cn.xf.basedemo.common.model.LoginUser; @@ -90,7 +91,8 @@ public class UserServiceImpl implements UserService { redisTemplate.opsForValue().set("token:" + token, JSONObject.toJSONString(loginUser), 3600, TimeUnit.SECONDS); redisTemplate.opsForValue().set("user_login_token:" + user.getId(), token, 3600, TimeUnit.SECONDS); - + //登录成功 写入sa-token中 + StpUtil.login(user.getId()); return RetObj.success(loginUser); } diff --git a/src/main/resources/mapper/SysMenuMapper.xml b/src/main/resources/mapper/SysMenuMapper.xml new file mode 100644 index 0000000..85ddb50 --- /dev/null +++ b/src/main/resources/mapper/SysMenuMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + id,name,path, + parent_id,type,icon, + create_time,create_by,update_time, + update_by + + diff --git a/src/main/resources/mapper/SysPermissionMapper.xml b/src/main/resources/mapper/SysPermissionMapper.xml new file mode 100644 index 0000000..d2bc047 --- /dev/null +++ b/src/main/resources/mapper/SysPermissionMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + id,code,name, + menu_id,create_time,create_by, + update_time,update_by + + + + diff --git a/src/main/resources/mapper/SysRoleMapper.xml b/src/main/resources/mapper/SysRoleMapper.xml new file mode 100644 index 0000000..2c92b14 --- /dev/null +++ b/src/main/resources/mapper/SysRoleMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + id,name,code, + status,create_time,create_by, + update_time,update_by + + + + diff --git a/src/main/resources/mapper/SysRoleMenuMapper.xml b/src/main/resources/mapper/SysRoleMenuMapper.xml new file mode 100644 index 0000000..663d0c3 --- /dev/null +++ b/src/main/resources/mapper/SysRoleMenuMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + role_id,menu_id,create_time, + create_by,update_time,update_by + + diff --git a/src/main/resources/mapper/SysRolePermissionMapper.xml b/src/main/resources/mapper/SysRolePermissionMapper.xml new file mode 100644 index 0000000..2b68d70 --- /dev/null +++ b/src/main/resources/mapper/SysRolePermissionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + role_id,permission_id,create_time, + create_by,update_time,update_by + + diff --git a/src/main/resources/mapper/SysUserRoleMapper.xml b/src/main/resources/mapper/SysUserRoleMapper.xml new file mode 100644 index 0000000..30caf1c --- /dev/null +++ b/src/main/resources/mapper/SysUserRoleMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + user_id,role_id,create_time, + create_by,update_time,update_by + + From f0124e608d3d021be5e4982da0dfc195c0665b22 Mon Sep 17 00:00:00 2001 From: xiongfeng Date: Tue, 26 Aug 2025 09:08:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E5=AE=9E=E7=8E=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6=E3=80=81sa-tokan=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E7=B1=BB=E5=AE=9E=E7=8E=B0=20=E5=BA=95?= =?UTF-8?q?=E5=B1=82=E5=BC=82=E5=B8=B8=E6=8D=95=E8=8E=B7=E7=B1=BB=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/GlobalExceptionHandler.java | 5 +- .../exception/GlobalExceptionResolver.java | 53 +++++++++++++++++++ .../common/utils/ApplicationContextUtils.java | 16 +++--- .../xf/basedemo/config/SaTokenConfigure.java | 23 ++++++++ .../controller/business/UserController.java | 9 ++++ .../interceptor/InterceptorConfig.java | 1 + .../interceptor/StpInterfaceImpl.java | 11 ++-- .../basedemo/mappers/SysPermissionMapper.java | 2 + .../cn/xf/basedemo/mappers/SysRoleMapper.java | 2 + 9 files changed, 104 insertions(+), 18 deletions(-) create mode 100644 src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionResolver.java create mode 100644 src/main/java/cn/xf/basedemo/config/SaTokenConfigure.java diff --git a/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionHandler.java b/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionHandler.java index 7ec69a3..45ef3df 100644 --- a/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionHandler.java +++ b/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionHandler.java @@ -21,7 +21,7 @@ import java.util.Map; /** * @Author: xiongfeng * @CreateTime: 2023-11-08 11:48 - * @Description: TODO 全局异常捕获类 + * @Description: TODO 全局异常捕获类(仅 Controller 层异常) * @Version: 1.0 */ @Slf4j @@ -59,7 +59,7 @@ public class GlobalExceptionHandler extends ResponseEntityExceptionHandler{ * @return */ @ExceptionHandler(LoginException.class) - public GenericResponse tokenExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) { + public GenericResponse tokenExceptionHandler(HttpServletRequest request, final LoginException e, HttpServletResponse response) { log.error("token exception", e); LoginException exception = (LoginException) e; response.setStatus(HttpStatus.FORBIDDEN.value()); @@ -95,6 +95,7 @@ public class GlobalExceptionHandler extends ResponseEntityExceptionHandler{ public ResponseEntity exceptionHandler(jakarta.servlet.http.HttpServletRequest request, final Exception e, jakarta.servlet.http.HttpServletResponse response) { Map errors = new HashMap<>(); errors.put("message", e.getMessage()); + log.error("error------{}", e); return ResponseEntity.status(SystemStatus.ERROR.getCode()).body(errors); } diff --git a/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionResolver.java b/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionResolver.java new file mode 100644 index 0000000..a857a81 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/common/exception/GlobalExceptionResolver.java @@ -0,0 +1,53 @@ +package cn.xf.basedemo.common.exception; + +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerExceptionResolver; +import org.springframework.web.servlet.ModelAndView; + +import java.io.IOException; +import java.io.PrintWriter; + +/** + * @Description: 全局异常捕获类(所有异常(包括拦截器、Controller、视图))HandlerExceptionResolver更底层 + * @ClassName: GlobalExceptionResolver + * @Author: xiongfeng + * @Date: 2025/8/23 23:30 + * @Version: 1.0 + */ +@Slf4j +@Component +public class GlobalExceptionResolver implements HandlerExceptionResolver { + @Override + public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { + response.setContentType("application/json;charset=UTF-8"); + + try (PrintWriter writer = response.getWriter()) { + if (ex instanceof LoginException) { + response.setStatus(HttpStatus.FORBIDDEN.value()); + LoginException le = (LoginException) ex; + writer.write(new ObjectMapper().writeValueAsString( + new GenericResponse(le.getCode(), null, le.getMessage()) + )); + } else if (ex instanceof BusinessException) { + BusinessException be = (BusinessException) ex; + response.setStatus(HttpStatus.BAD_REQUEST.value()); + writer.write(new ObjectMapper().writeValueAsString( + new GenericResponse(be.getCode(), null, be.getMessage()) + )); + } else { + response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); + writer.write(new ObjectMapper().writeValueAsString( + new GenericResponse(500, null, "系统异常") + )); + } + } catch (IOException ioEx) { + log.error("写响应失败", ioEx); + } + return new ModelAndView(); + } +} diff --git a/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java index 4a7801c..a677fb8 100644 --- a/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java +++ b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java @@ -15,22 +15,18 @@ import org.springframework.stereotype.Component; @Component public class ApplicationContextUtils implements ApplicationContextAware { //放置在获取bean的时候提示空指针,将其定义为静态变量 - private static ApplicationContext context; + private static ApplicationContext applicationContext; - //类初始化完成之后调用setApplicationContext()方法进行操作 @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - ApplicationContextUtils.context = applicationContext; + ApplicationContextUtils.applicationContext = applicationContext; } - public static ApplicationContext getContext(){ - return context; + public static T getBean(Class clazz) { + return applicationContext.getBean(clazz); } - public static Object getBean(String beanName){ - //在这一步的时候一定要注意,此时可调用这个方法的时候 - //context可能为空,会提示空指针异常,需要将其定义成静态的,这样类加载的时候 - //context就已经存在了 - return context.getBean(beanName); + public static Object getBean(String name) { + return applicationContext.getBean(name); } } diff --git a/src/main/java/cn/xf/basedemo/config/SaTokenConfigure.java b/src/main/java/cn/xf/basedemo/config/SaTokenConfigure.java new file mode 100644 index 0000000..fa44f18 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/config/SaTokenConfigure.java @@ -0,0 +1,23 @@ +package cn.xf.basedemo.config; + +import cn.dev33.satoken.interceptor.SaInterceptor; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @Description: sa token拦截器注册类 + * @ClassName: SaTokenConfigure + * @Author: xiongfeng + * @Date: 2025/8/24 20:30 + * @Version: 1.0 + */ +@Configuration +public class SaTokenConfigure implements WebMvcConfigurer { + // 注册 Sa-Token 拦截器,打开注解式鉴权功能 + @Override + public void addInterceptors(InterceptorRegistry registry) { + // 注册 Sa-Token 拦截器,打开注解式鉴权功能 + registry.addInterceptor(new SaInterceptor()).addPathPatterns("/**"); + } +} diff --git a/src/main/java/cn/xf/basedemo/controller/business/UserController.java b/src/main/java/cn/xf/basedemo/controller/business/UserController.java index 757ab8a..24aa2fe 100644 --- a/src/main/java/cn/xf/basedemo/controller/business/UserController.java +++ b/src/main/java/cn/xf/basedemo/controller/business/UserController.java @@ -1,5 +1,7 @@ package cn.xf.basedemo.controller.business; +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.stp.StpUtil; import cn.xf.basedemo.common.model.LoginUser; import cn.xf.basedemo.common.model.RetObj; import cn.xf.basedemo.interceptor.SessionContext; @@ -34,6 +36,7 @@ public class UserController { @Operation(summary = "用户信息", description = "用户信息") @PostMapping("/info") + @SaCheckPermission("user:info") public RetObj info(){ LoginUser loginUser = SessionContext.getInstance().get(); return RetObj.success(loginUser); @@ -51,4 +54,10 @@ public class UserController { return userService.getEsId(userId); } + @Operation(summary = "获取用户权限数据", description = "用户信息") + @GetMapping("/getPermission") + public RetObj getPermission(){ + return RetObj.success(StpUtil.getPermissionList()); + } + } diff --git a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java index 08bdc00..2c0b13b 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java +++ b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java @@ -1,5 +1,6 @@ package cn.xf.basedemo.interceptor; +import cn.dev33.satoken.interceptor.SaInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; diff --git a/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java b/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java index c09cdfc..a2098d4 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java +++ b/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java @@ -4,8 +4,6 @@ import cn.dev33.satoken.stp.StpInterface; import cn.xf.basedemo.common.utils.ApplicationContextUtils; import cn.xf.basedemo.mappers.SysPermissionMapper; import cn.xf.basedemo.mappers.SysRoleMapper; -import cn.xf.basedemo.model.domain.SysRole; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.stereotype.Component; import java.util.List; @@ -20,13 +18,14 @@ import java.util.List; @Component public class StpInterfaceImpl implements StpInterface { - private SysPermissionMapper sysPermissionMapper= (SysPermissionMapper) ApplicationContextUtils.getBean("SysPermissionMapper"); - private SysRoleMapper sysRoleMapper= (SysRoleMapper) ApplicationContextUtils.getBean("SysRoleMapper"); - + private SysPermissionMapper sysPermissionMapper = ApplicationContextUtils.getBean(SysPermissionMapper.class); + private SysRoleMapper sysRoleMapper = ApplicationContextUtils.getBean(SysRoleMapper.class); @Override public List getPermissionList(Object userId, String s) { //获取登录用户权限数据 - return sysPermissionMapper.getPermissionListByRoleId((Long) userId); + Long aLong = Long.valueOf(userId.toString()); + List permissionList = sysPermissionMapper.getPermissionListByRoleId(aLong); + return permissionList; } @Override diff --git a/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java index d8a2078..cfecd13 100644 --- a/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java +++ b/src/main/java/cn/xf/basedemo/mappers/SysPermissionMapper.java @@ -2,6 +2,7 @@ package cn.xf.basedemo.mappers; import cn.xf.basedemo.model.domain.SysPermission; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; * @createDate 2025-08-19 21:22:03 * @Entity cn.xf.basedemo.model.domain.SysPermission */ +@Mapper public interface SysPermissionMapper extends BaseMapper { List getPermissionListByRoleId(Long useId); diff --git a/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java b/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java index 9eee13e..f8318c4 100644 --- a/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java +++ b/src/main/java/cn/xf/basedemo/mappers/SysRoleMapper.java @@ -2,6 +2,7 @@ package cn.xf.basedemo.mappers; import cn.xf.basedemo.model.domain.SysRole; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; * @createDate 2025-08-19 21:22:03 * @Entity cn.xf.basedemo.model.domain.SysRole */ +@Mapper public interface SysRoleMapper extends BaseMapper { List getRoleListByUserId(Long userId); From ddb14bc3486d59db7950b174b1be395c93e013d5 Mon Sep 17 00:00:00 2001 From: xiongfeng Date: Tue, 26 Aug 2025 22:03:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/xf/basedemo/controller/business/UserController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/cn/xf/basedemo/controller/business/UserController.java b/src/main/java/cn/xf/basedemo/controller/business/UserController.java index 24aa2fe..2c727c9 100644 --- a/src/main/java/cn/xf/basedemo/controller/business/UserController.java +++ b/src/main/java/cn/xf/basedemo/controller/business/UserController.java @@ -1,6 +1,7 @@ package cn.xf.basedemo.controller.business; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaCheckRole; import cn.dev33.satoken.stp.StpUtil; import cn.xf.basedemo.common.model.LoginUser; import cn.xf.basedemo.common.model.RetObj; @@ -36,13 +37,14 @@ public class UserController { @Operation(summary = "用户信息", description = "用户信息") @PostMapping("/info") - @SaCheckPermission("user:info") + @SaCheckPermission("user:info") //权限校验 public RetObj info(){ LoginUser loginUser = SessionContext.getInstance().get(); return RetObj.success(loginUser); } @Operation(summary = "es同步用户信息", description = "用户信息") + @SaCheckRole("admin") //角色校验 @GetMapping("/syncEs") public RetObj syncEs(Long userId){ return userService.syncEs(userId);