delete from sys_user_role where user_id=#{userId}
select count(1) from sys_user_role where role_id=#{roleId}
select
case when
'1' = t.data_scope then 1
when
'2' = t.data_scope then
ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (select dept_id from sys_role_dept where role_id = t.role_id) order by data_sort desc limit 1), 0)
when
'3' = t.data_scope then
ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (select dept_id from sys_user where user_id = #{userId}) order by data_sort desc limit 1), 0)
when
'4' = t.data_scope then
ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (SELECT dept_id FROM sys_dept WHERE find_in_set((select dept_id from sys_user where user_id = #{userId}), ancestors)) order by data_sort desc limit 1), 0)
else 0 end
from (select role_id, data_scope from sys_role where role_id = (select role_id from sys_user_role where user_id = #{userId} limit 1) ) t
select
case when '1' = t.data_scope then 1
when '2' = t.data_scope then
(
select
case when a.count > 0
then 1 else 2 end
from (select count(1) count from sys_role_dept where role_id = (select ur.role_id from sys_user_role ur left join sys_role r on ur.role_id = r.role_id where ur.user_id = #{userId} order by r.data_scope limit 1) and dept_id in (select dept_id from sys_dept where parent_id = 0)) a
)
else 2 end
from
(select role_id, data_scope from sys_role where role_id = (select ur.role_id from sys_user_role ur left join sys_role r on ur.role_id = r.role_id where ur.user_id = #{userId} order by r.data_scope limit 1)) t
delete from sys_user_role where user_id in
#{userId}
insert into sys_user_role(user_id, role_id) values
(#{item.userId},#{item.roleId})
delete from sys_user_role where user_id=#{userId} and role_id=#{roleId}
delete from sys_user_role where role_id=#{roleId} and user_id in
#{userId}