新增多用户配角色接口

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.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
import java.util.Set; import java.util.Set;
import static com.cf.imes.framework.common.pojo.CommonResult.success; import static com.cf.imes.framework.common.pojo.CommonResult.success;
@@ -80,4 +81,12 @@ public class PermissionController {
return success(true); 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; package com.cf.imes.module.system.service.permission;
import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO; 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.Collection;
import java.util.List;
import java.util.Set; import java.util.Set;
import static java.util.Collections.singleton; import static java.util.Collections.singleton;
@@ -152,4 +154,6 @@ public interface PermissionService {
DeptDataPermissionRespDTO getDeptDataPermission(Long userId); DeptDataPermissionRespDTO getDeptDataPermission(Long userId);
Set<Long> getRoleMenuListByRoleId2(Set<Long> roleIds); 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.context.OrganContextHolder;
import com.cf.imes.framework.organ.core.db.OrganBaseDO; 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.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.MenuDO;
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO; import com.cf.imes.module.system.dal.dataobject.permission.RoleDO;
import com.cf.imes.module.system.dal.dataobject.permission.RoleMenuDO; import com.cf.imes.module.system.dal.dataobject.permission.RoleMenuDO;
@@ -212,6 +213,15 @@ public class PermissionServiceImpl implements PermissionService {
return convertSet(from, RoleMenuDO::getMenuId); 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 @Override
@Cacheable(value = RedisKeyConstants.MENU_ROLE_ID_LIST, key = "#menuId") @Cacheable(value = RedisKeyConstants.MENU_ROLE_ID_LIST, key = "#menuId")
public Set<Long> getMenuRoleIdListByMenuIdFromCache(Long menuId) { public Set<Long> getMenuRoleIdListByMenuIdFromCache(Long menuId) {
@@ -235,7 +245,7 @@ public class PermissionServiceImpl implements PermissionService {
@DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换
@CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId")
public void assignUserRole(Long userId, Set<Long> roleIds, Long organId) { public void assignUserRole(Long userId, Set<Long> roleIds, Long organId) {
// 获得角色拥有角色编号 // 获得用户拥有角色编号
Set<Long> dbRoleIds = convertSet(userRoleMapper.selectListByUserId(userId), Set<Long> dbRoleIds = convertSet(userRoleMapper.selectListByUserId(userId),
UserRoleDO::getRoleId); UserRoleDO::getRoleId);
// 计算新增和删除的角色编号 // 计算新增和删除的角色编号