mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-13 05:12:07 +08:00
新增多用户配角色接口
This commit is contained in:
+9
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -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);
|
||||
}
|
||||
|
||||
+11
-1
@@ -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);
|
||||
// 计算新增和删除的角色编号
|
||||
|
||||
Reference in New Issue
Block a user