@RequiresPermissions("system:user:list")
声明该注解下的方法调用者必须要符合
表sys_menu 字段 perms 权限标识 其中的menu_id 必须要在sys_role_menu 中的role_id 的sys_user_role 中的 user_id 吻合
这是大权限下的细分权限
也可以使用
@RequiresRoles("qywx")
符合 表 sys_role 字段 role_key 的role_id 与表 sys_user_role 的userid 匹配即可
这是单独的大权限
分地区 分角色的 数据管理 mapper
<sql id="selectAppCallphonelogVo2">
select a.*
from app_callphonelog a
left join sys_dept d on a.dept_id = d.dept_id
</sql>
<!-- <sql id="sqlDeleteTime">-->
<!-- and deleteTime = 0-->
<!-- </sql>-->
<select id="selectAppCallphonelogList" parameterType="AppCallphonelog" resultMap="AppCallphonelogResult">
<include refid="selectAppCallphonelogVo2"/>
<where>
<if test="id != null ">and a.id = #{id}</if>
<if test="uid != null ">and a.uid = #{uid}</if>
<if test="phoneBody != null and phoneBody != ''">and a.phone_body = #{phoneBody}</if>
<if test="callStartTime != null and callStartTime != ''">and a.call_start_time = #{callStartTime}</if>
<if test="createTime != null ">and a.create_time = #{createTime}</if>
and delete_time = 0
</where>
<!-- 部门数据范围过滤 -->
${params.dataScope}
ORDER BY id desc
</select>
业务上增加一行aop切面代码即可
@Override
@DataScope(deptAlias = "d")
public List<AppCallphonelog> selectAppCallphonelogList(AppCallphonelog appCallphonelog)
{
return appCallphonelogMapper.selectAppCallphonelogList(appCallphonelog);
}
这篇博客探讨了在Java后端开发中如何实现细粒度的权限控制,通过@RequiresPermissions和@RequiresRoles注解进行权限校验。同时,文章详细介绍了如何结合数据范围过滤实现按部门对数据的访问限制,通过AOP切面进一步完善权限管理。此外,还展示了SQL查询示例,展示了如何在Mapper中根据用户角色和部门信息筛选数据。
2045

被折叠的 条评论
为什么被折叠?



