mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-06-23 04:22:43 +08:00
user_role && role_permission中间表的服务优化
This commit is contained in:
parent
9883faf3d1
commit
e34fb3bad0
@ -5,29 +5,24 @@ import org.springframework.stereotype.Component;
|
|||||||
import xyz.playedu.api.constant.BackendConstant;
|
import xyz.playedu.api.constant.BackendConstant;
|
||||||
import xyz.playedu.api.domain.AdminRole;
|
import xyz.playedu.api.domain.AdminRole;
|
||||||
import xyz.playedu.api.service.AdminPermissionService;
|
import xyz.playedu.api.service.AdminPermissionService;
|
||||||
import xyz.playedu.api.service.AdminRolePermissionService;
|
|
||||||
import xyz.playedu.api.service.AdminRoleService;
|
import xyz.playedu.api.service.AdminRoleService;
|
||||||
import xyz.playedu.api.service.AdminUserRoleService;
|
import xyz.playedu.api.service.AdminUserService;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class BackendBus {
|
public class BackendBus {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AdminUserRoleService adminUserRoleService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AdminRolePermissionService rolePermissionService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdminPermissionService permissionService;
|
private AdminPermissionService permissionService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdminRoleService adminRoleService;
|
private AdminRoleService adminRoleService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdminUserService adminUserService;
|
||||||
|
|
||||||
public static boolean inUnAuthWhitelist(String uri) {
|
public static boolean inUnAuthWhitelist(String uri) {
|
||||||
for (int i = 0; i < BackendConstant.UN_AUTH_URI_WHITELIST.length; i++) {
|
for (int i = 0; i < BackendConstant.UN_AUTH_URI_WHITELIST.length; i++) {
|
||||||
if (uri.equals(BackendConstant.UN_AUTH_URI_WHITELIST[i])) {
|
if (uri.equals(BackendConstant.UN_AUTH_URI_WHITELIST[i])) {
|
||||||
@ -42,7 +37,7 @@ public class BackendBus {
|
|||||||
AdminRole superRole = adminRoleService.getBySlug(BackendConstant.SUPER_ADMIN_ROLE);
|
AdminRole superRole = adminRoleService.getBySlug(BackendConstant.SUPER_ADMIN_ROLE);
|
||||||
|
|
||||||
HashMap<String, Boolean> permissions = new HashMap<>();
|
HashMap<String, Boolean> permissions = new HashMap<>();
|
||||||
List<Integer> roleIds = adminUserRoleService.getRoleIdsByUserId(userId);
|
List<Integer> roleIds = adminUserService.getRoleIdsByUserId(userId);
|
||||||
if (roleIds.size() == 0) {
|
if (roleIds.size() == 0) {
|
||||||
return permissions;
|
return permissions;
|
||||||
}
|
}
|
||||||
@ -52,7 +47,7 @@ public class BackendBus {
|
|||||||
if (roleIds.contains(superRole.getId())) {//包含超级管理角色的话返回全部权限
|
if (roleIds.contains(superRole.getId())) {//包含超级管理角色的话返回全部权限
|
||||||
permissionIds = permissionService.allIds();
|
permissionIds = permissionService.allIds();
|
||||||
} else {//根据相应的roleIds读取权限
|
} else {//根据相应的roleIds读取权限
|
||||||
permissionIds = rolePermissionService.getPermissionIdsByRoleIds(roleIds);
|
permissionIds = adminRoleService.getPermissionIdsByRoleIds(roleIds);
|
||||||
if (permissionIds.size() == 0) {
|
if (permissionIds.size() == 0) {
|
||||||
return permissions;
|
return permissions;
|
||||||
}
|
}
|
||||||
|
@ -29,4 +29,7 @@ public interface AdminRoleService extends IService<AdminRole> {
|
|||||||
|
|
||||||
List<Integer> getPermissionIdsByRoleId(Integer roleId);
|
List<Integer> getPermissionIdsByRoleId(Integer roleId);
|
||||||
|
|
||||||
|
List<Integer> getPermissionIdsByRoleIds(List<Integer> roleIds);
|
||||||
|
|
||||||
|
void removeRelatePermissionByRoleId(Integer roleId);
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,6 @@ public interface AdminUserService extends IService<AdminUser> {
|
|||||||
void updateWithRoleIds(AdminUser user, String name, String email, String password, Integer isBanLogin, Integer[] roleIds) throws ServiceException;
|
void updateWithRoleIds(AdminUser user, String name, String email, String password, Integer isBanLogin, Integer[] roleIds) throws ServiceException;
|
||||||
|
|
||||||
void removeWithRoleIds(Integer userId);
|
void removeWithRoleIds(Integer userId);
|
||||||
|
|
||||||
|
void removeRelateRolesByUserId(Integer userId);
|
||||||
}
|
}
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
package xyz.playedu.api.service.impl;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import xyz.playedu.api.domain.AdminRole;
|
|
||||||
import xyz.playedu.api.domain.AdminRolePermission;
|
|
||||||
import xyz.playedu.api.service.AdminRolePermissionService;
|
|
||||||
import xyz.playedu.api.mapper.AdminRolePermissionMapper;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author tengteng
|
|
||||||
* @description 针对表【admin_role_permission】的数据库操作Service实现
|
|
||||||
* @createDate 2023-02-21 16:07:01
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class AdminRolePermissionServiceImpl extends ServiceImpl<AdminRolePermissionMapper, AdminRolePermission> implements AdminRolePermissionService {
|
|
||||||
@Override
|
|
||||||
public void removeByRoleId(Integer roleId) {
|
|
||||||
remove(query().getWrapper().eq("role_id", roleId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Integer> getPermissionIdsByRoleIds(List<Integer> roleIds) {
|
|
||||||
List<AdminRolePermission> rolePermissions = list(query().getWrapper().in("role_id", roleIds));
|
|
||||||
List<Integer> ids = new ArrayList<>();
|
|
||||||
for (AdminRolePermission rolePermission : rolePermissions) {
|
|
||||||
ids.add(rolePermission.getPermId());
|
|
||||||
}
|
|
||||||
return ids;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Integer> getPermissionIdsByRoleId(Integer roleId) {
|
|
||||||
List<AdminRolePermission> rolePermissions = list(query().getWrapper().eq("role_id", roleId));
|
|
||||||
List<Integer> ids = new ArrayList<>();
|
|
||||||
for (AdminRolePermission rolePermission : rolePermissions) {
|
|
||||||
ids.add(rolePermission.getPermId());
|
|
||||||
}
|
|
||||||
return ids;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
|||||||
package xyz.playedu.api.service.impl;
|
package xyz.playedu.api.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import xyz.playedu.api.domain.AdminRole;
|
import xyz.playedu.api.domain.AdminRole;
|
||||||
import xyz.playedu.api.domain.AdminRolePermission;
|
import xyz.playedu.api.domain.AdminRolePermission;
|
||||||
import xyz.playedu.api.exception.NotFoundException;
|
import xyz.playedu.api.exception.NotFoundException;
|
||||||
import xyz.playedu.api.service.AdminRolePermissionService;
|
import xyz.playedu.api.service.internal.AdminRolePermissionService;
|
||||||
import xyz.playedu.api.service.AdminRoleService;
|
import xyz.playedu.api.service.AdminRoleService;
|
||||||
import xyz.playedu.api.mapper.AdminRoleMapper;
|
import xyz.playedu.api.mapper.AdminRoleMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -66,7 +67,7 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resetRelatePermissions(AdminRole role, Integer[] permissionIds) {
|
public void resetRelatePermissions(AdminRole role, Integer[] permissionIds) {
|
||||||
rolePermissionService.removeByRoleId(role.getId());
|
removeRelatePermissionByRoleId(role.getId());
|
||||||
relatePermissions(role, permissionIds);
|
relatePermissions(role, permissionIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,13 +96,36 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void removeWithPermissions(AdminRole role) {
|
public void removeWithPermissions(AdminRole role) {
|
||||||
rolePermissionService.removeByRoleId(role.getId());
|
removeRelatePermissionByRoleId(role.getId());
|
||||||
removeById(role.getId());
|
removeById(role.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Integer> getPermissionIdsByRoleId(Integer roleId) {
|
public List<Integer> getPermissionIdsByRoleId(Integer roleId) {
|
||||||
return rolePermissionService.getPermissionIdsByRoleId(roleId);
|
QueryWrapper<AdminRolePermission> wrapper = rolePermissionService.query().getWrapper().eq("role_id", roleId);
|
||||||
|
List<AdminRolePermission> rolePermissions = rolePermissionService.list(wrapper);
|
||||||
|
List<Integer> ids = new ArrayList<>();
|
||||||
|
for (AdminRolePermission rolePermission : rolePermissions) {
|
||||||
|
ids.add(rolePermission.getPermId());
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Integer> getPermissionIdsByRoleIds(List<Integer> roleIds) {
|
||||||
|
QueryWrapper<AdminRolePermission> wrapper = rolePermissionService.query().getWrapper().in("role_id", roleIds);
|
||||||
|
List<AdminRolePermission> rolePermissions = rolePermissionService.list(wrapper);
|
||||||
|
List<Integer> ids = new ArrayList<>();
|
||||||
|
for (AdminRolePermission rolePermission : rolePermissions) {
|
||||||
|
ids.add(rolePermission.getPermId());
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeRelatePermissionByRoleId(Integer roleId) {
|
||||||
|
QueryWrapper<AdminRolePermission> wrapper = rolePermissionService.query().getWrapper().eq("role_id", roleId);
|
||||||
|
rolePermissionService.remove(wrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
package xyz.playedu.api.service.impl;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import xyz.playedu.api.domain.AdminUserRole;
|
|
||||||
import xyz.playedu.api.service.AdminUserRoleService;
|
|
||||||
import xyz.playedu.api.mapper.AdminUserRoleMapper;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author tengteng
|
|
||||||
* @description 针对表【admin_user_role】的数据库操作Service实现
|
|
||||||
* @createDate 2023-02-21 16:25:43
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class AdminUserRoleServiceImpl extends ServiceImpl<AdminUserRoleMapper, AdminUserRole> implements AdminUserRoleService {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeByUserId(Integer userId) {
|
|
||||||
remove(query().getWrapper().eq("admin_id", userId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Integer> getRoleIdsByUserId(Integer userId) {
|
|
||||||
List<AdminUserRole> userRoles = list(query().getWrapper().eq("admin_id", userId));
|
|
||||||
List<Integer> ids = new ArrayList<>();
|
|
||||||
for (AdminUserRole userRole : userRoles) {
|
|
||||||
ids.add(userRole.getRoleId());
|
|
||||||
}
|
|
||||||
return ids;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,11 +10,10 @@ import xyz.playedu.api.domain.AdminUser;
|
|||||||
import xyz.playedu.api.domain.AdminUserRole;
|
import xyz.playedu.api.domain.AdminUserRole;
|
||||||
import xyz.playedu.api.exception.NotFoundException;
|
import xyz.playedu.api.exception.NotFoundException;
|
||||||
import xyz.playedu.api.exception.ServiceException;
|
import xyz.playedu.api.exception.ServiceException;
|
||||||
import xyz.playedu.api.service.AdminUserRoleService;
|
import xyz.playedu.api.service.internal.AdminUserRoleService;
|
||||||
import xyz.playedu.api.service.AdminUserService;
|
import xyz.playedu.api.service.AdminUserService;
|
||||||
import xyz.playedu.api.mapper.AdminUserMapper;
|
import xyz.playedu.api.mapper.AdminUserMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import xyz.playedu.api.types.JsonResponse;
|
|
||||||
import xyz.playedu.api.types.paginate.AdminUserPaginateFilter;
|
import xyz.playedu.api.types.paginate.AdminUserPaginateFilter;
|
||||||
import xyz.playedu.api.types.paginate.PaginationResult;
|
import xyz.playedu.api.types.paginate.PaginationResult;
|
||||||
import xyz.playedu.api.util.HelperUtil;
|
import xyz.playedu.api.util.HelperUtil;
|
||||||
@ -111,13 +110,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resetRelateRoles(AdminUser user, Integer[] roleIds) {
|
public void resetRelateRoles(AdminUser user, Integer[] roleIds) {
|
||||||
userRoleService.removeByUserId(user.getId());
|
removeRelateRolesByUserId(user.getId());
|
||||||
relateRoles(user, roleIds);
|
relateRoles(user, roleIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Integer> getRoleIdsByUserId(Integer userId) {
|
public List<Integer> getRoleIdsByUserId(Integer userId) {
|
||||||
return userRoleService.getRoleIdsByUserId(userId);
|
QueryWrapper<AdminUserRole> wrapper = userRoleService.query().getWrapper().eq("admin_id", userId);
|
||||||
|
List<AdminUserRole> userRoles = userRoleService.list(wrapper);
|
||||||
|
List<Integer> ids = new ArrayList<>();
|
||||||
|
for (AdminUserRole userRole : userRoles) {
|
||||||
|
ids.add(userRole.getRoleId());
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -153,9 +158,15 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void removeWithRoleIds(Integer userId) {
|
public void removeWithRoleIds(Integer userId) {
|
||||||
userRoleService.removeByUserId(userId);
|
removeRelateRolesByUserId(userId);
|
||||||
removeById(userId);
|
removeById(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeRelateRolesByUserId(Integer userId) {
|
||||||
|
QueryWrapper<AdminUserRole> wrapper = userRoleService.query().getWrapper().eq("admin_id", userId);
|
||||||
|
userRoleService.remove(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package xyz.playedu.api.service.impl.internal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import xyz.playedu.api.domain.AdminRolePermission;
|
||||||
|
import xyz.playedu.api.service.internal.AdminRolePermissionService;
|
||||||
|
import xyz.playedu.api.mapper.AdminRolePermissionMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tengteng
|
||||||
|
* @description 针对表【admin_role_permission】的数据库操作Service实现
|
||||||
|
* @createDate 2023-02-21 16:07:01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AdminRolePermissionServiceImpl extends ServiceImpl<AdminRolePermissionMapper, AdminRolePermission> implements AdminRolePermissionService {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
|||||||
|
package xyz.playedu.api.service.impl.internal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import xyz.playedu.api.domain.AdminUserRole;
|
||||||
|
import xyz.playedu.api.service.internal.AdminUserRoleService;
|
||||||
|
import xyz.playedu.api.mapper.AdminUserRoleMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tengteng
|
||||||
|
* @description 针对表【admin_user_role】的数据库操作Service实现
|
||||||
|
* @createDate 2023-02-21 16:25:43
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AdminUserRoleServiceImpl extends ServiceImpl<AdminUserRoleMapper, AdminUserRole> implements AdminUserRoleService {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,12 +1,8 @@
|
|||||||
package xyz.playedu.api.service;
|
package xyz.playedu.api.service.internal;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import xyz.playedu.api.domain.AdminRolePermission;
|
import xyz.playedu.api.domain.AdminRolePermission;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tengteng
|
* @author tengteng
|
||||||
* @description 针对表【admin_role_permission】的数据库操作Service
|
* @description 针对表【admin_role_permission】的数据库操作Service
|
||||||
@ -14,10 +10,4 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public interface AdminRolePermissionService extends IService<AdminRolePermission> {
|
public interface AdminRolePermissionService extends IService<AdminRolePermission> {
|
||||||
|
|
||||||
void removeByRoleId(Integer roleId);
|
|
||||||
|
|
||||||
List<Integer> getPermissionIdsByRoleIds(List<Integer> roleIds);
|
|
||||||
|
|
||||||
List<Integer> getPermissionIdsByRoleId(Integer roleId);
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package xyz.playedu.api.service;
|
package xyz.playedu.api.service.internal;
|
||||||
|
|
||||||
import xyz.playedu.api.domain.AdminUserRole;
|
import xyz.playedu.api.domain.AdminUserRole;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -11,9 +11,4 @@ import java.util.List;
|
|||||||
* @createDate 2023-02-21 16:25:43
|
* @createDate 2023-02-21 16:25:43
|
||||||
*/
|
*/
|
||||||
public interface AdminUserRoleService extends IService<AdminUserRole> {
|
public interface AdminUserRoleService extends IService<AdminUserRole> {
|
||||||
|
|
||||||
void removeByUserId(Integer userId);
|
|
||||||
|
|
||||||
List<Integer> getRoleIdsByUserId(Integer userId);
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user