背景
一个公司有许多员工,而每个员工对应的权限并不一样,比如经理可以查看所有员工的信息,但是员工就没有这个权限。
后端代码
既然是分页查询,前端需要传入第几页,每页多少条。
Controller层
假设我查第1页,每页展示10条。那么查询start就应该从(1-1)* 10 = 0
开始,
Service层
这里需要2个查询。
1、查询用户表的对应信息,这里用动态sql进行分页。
2、查询满足需求的用户数(因为需要用到总数计算共有多少页)
pageUtils
SQL
查询满足条件的用户,分页:
查询满足条件的用户总数:
鉴权
这里用的是sa-token,AOP方式来鉴权,通过注解就可以完成此功能。
下图是必须要ROOT权限,或者USER:SELECT权限。
加上这个注解后,会自动走到StpInterfaceImpl方法的getPermissionList方法,我这里权限都存在了数据库,所以用dao是去查了数据库,判断你是否有这个权限。
需要引入依赖:
<!--Sa-Token核心库-->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.20.0</version>
</dependency>
yml配置:
sa-token:
# token名称 (同时也是cookie名称)
token-name: token
# token有效期,单位s 默认30天, -1代表永不过期
timeout: 3600
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
allow-concurrent-login: true
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# token风格
token-style: uuid