新增多用户配角色接口

This commit is contained in:
yangsb
2024-04-17 09:26:26 +08:00
parent 92ea05e58f
commit 088d6ea1b1
3 changed files with 24 additions and 1 deletions
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import java.util.Set;
import static com.cf.imes.framework.common.pojo.CommonResult.success;
@@ -80,4 +81,12 @@ public class PermissionController {
return success(true);
}
@Operation(summary = "赋予多用户角色")
@PostMapping("/bath-assign-user-role")
@PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')")
public CommonResult<Boolean> bathAssignUserRole(@Validated @RequestBody List<PermissionAssignUserRoleReqVO> listReqVO) {
permissionService.bathAssignUserRole(listReqVO);
return success(true);
}
}
@@ -1,8 +1,10 @@
package com.cf.imes.module.system.service.permission;
import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import static java.util.Collections.singleton;
@@ -152,4 +154,6 @@ public interface PermissionService {
DeptDataPermissionRespDTO getDeptDataPermission(Long userId);
Set<Long> getRoleMenuListByRoleId2(Set<Long> roleIds);
void bathAssignUserRole(List<PermissionAssignUserRoleReqVO> listReqVO);
}
@@ -12,6 +12,7 @@ import com.cf.imes.framework.organ.core.aop.OrganIgnore;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
import com.cf.imes.module.system.dal.dataobject.permission.MenuDO;
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO;
import com.cf.imes.module.system.dal.dataobject.permission.RoleMenuDO;
@@ -212,6 +213,15 @@ public class PermissionServiceImpl implements PermissionService {
return convertSet(from, RoleMenuDO::getMenuId);
}
@Override
@DSTransactional
public void bathAssignUserRole(List<PermissionAssignUserRoleReqVO> listReqVO) {
Long organId = OrganContextHolder.getOrganId();
listReqVO.forEach(e->{
assignUserRole(e.getUserId(), e.getRoleIds(), organId);
});
}
@Override
@Cacheable(value = RedisKeyConstants.MENU_ROLE_ID_LIST, key = "#menuId")
public Set<Long> getMenuRoleIdListByMenuIdFromCache(Long menuId) {
@@ -235,7 +245,7 @@ public class PermissionServiceImpl implements PermissionService {
@DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换
@CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId")
public void assignUserRole(Long userId, Set<Long> roleIds, Long organId) {
// 获得角色拥有角色编号
// 获得用户拥有角色编号
Set<Long> dbRoleIds = convertSet(userRoleMapper.selectListByUserId(userId),
UserRoleDO::getRoleId);
// 计算新增和删除的角色编号