diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/repo/RoleMenuRepository.java b/src/main/java/com/zsc/edu/gateway/modules/system/repo/RoleMenuRepository.java index 08393d6..da0b8f9 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/repo/RoleMenuRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/repo/RoleMenuRepository.java @@ -2,9 +2,15 @@ package com.zsc.edu.gateway.modules.system.repo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zsc.edu.gateway.modules.system.entity.RoleMenu; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.Set; /** * @author Yao */ public interface RoleMenuRepository extends BaseMapper { + @Select("select * from role_menu where role_id = #{roleId}") + Set selectByRoleId(@Param("roleId") Long roleId); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/UserServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/UserServiceImpl.java index 3043aac..1c42e28 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/UserServiceImpl.java @@ -9,11 +9,16 @@ import com.zsc.edu.gateway.modules.system.dto.UserCreateDto; import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdateDto; import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdatePasswordDto; import com.zsc.edu.gateway.modules.system.dto.UserUpdateDto; +import com.zsc.edu.gateway.modules.system.entity.Menu; import com.zsc.edu.gateway.modules.system.entity.Role; +import com.zsc.edu.gateway.modules.system.entity.RoleMenu; import com.zsc.edu.gateway.modules.system.entity.User; import com.zsc.edu.gateway.modules.system.mapper.UserMapper; +import com.zsc.edu.gateway.modules.system.repo.MenuRepository; +import com.zsc.edu.gateway.modules.system.repo.RoleMenuRepository; import com.zsc.edu.gateway.modules.system.repo.RoleRepository; import com.zsc.edu.gateway.modules.system.repo.UserRepository; +import com.zsc.edu.gateway.modules.system.service.MenuService; import com.zsc.edu.gateway.modules.system.service.UserService; import com.zsc.edu.gateway.modules.system.utils.sendMail; import lombok.AllArgsConstructor; @@ -22,7 +27,10 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; /** *

@@ -42,6 +50,9 @@ public class UserServiceImpl extends ServiceImpl implement private final sendMail send; private final UserMapper userMapper; private final RoleRepository roleRepository; + private final RoleMenuRepository RoleMenuRepository; + private final RoleMenuRepository roleMenuRepository; + private final MenuRepository menuRepository; @Override public Boolean create(UserCreateDto dto) { @@ -129,8 +140,13 @@ public class UserServiceImpl extends ServiceImpl implement .update(); userDetails.setRole(role); if (updated) { + // 刷新权限表 + List

menus = menuRepository.selectByRoleId(roleId); + Set permissions = menus.stream().map(Menu::getPermissions).collect(Collectors.toSet()); + userDetails.setPermissions(permissions); SecurityUtil.setUserInfo(userDetails); } return userDetails; } + } diff --git a/src/main/resources/db/gateway/public/sys_role.sql b/src/main/resources/db/gateway/public/sys_role.sql new file mode 100644 index 0000000..77cf3ec --- /dev/null +++ b/src/main/resources/db/gateway/public/sys_role.sql @@ -0,0 +1,45 @@ +create table sys_role +( + id bigint generated by default as identity + constraint _copy_6 + primary key, + name varchar(50) not null, + create_by varchar(50), + update_by varchar(50), + create_time timestamp(6), + update_time timestamp(6), + enabled boolean, + remark varchar(255), + data_scope integer, + create_id bigint, + dept_id bigint +); + +comment on table sys_role is '角色表'; + +comment on column sys_role.id is 'ID'; + +comment on column sys_role.name is '名称'; + +comment on column sys_role.create_by is '创建者'; + +comment on column sys_role.update_by is '更新者'; + +comment on column sys_role.create_time is '创建日期'; + +comment on column sys_role.update_time is '更新时间'; + +comment on column sys_role.enabled is '状态'; + +comment on column sys_role.data_scope is '数据权限范围'; + +comment on column sys_role.create_id is '创建者id'; + +comment on column sys_role.dept_id is '部门权限'; + +alter table sys_role + owner to gitea; + +create index role_name_index + on sys_role (name); +