/** * 新增角色 * 1.新增角色 * 2.新增角色与权限的关系集合 * @param sysRole * @return */
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService{
@Autowired private SysRoleMenuService sysRoleMenuService;
@Override @CacheEvict(key = ManagerConstants.SYS_ALL_ROLE_KEY) @Transactional(rollbackFor = Exception.class) public Boolean saveSysRole(SysRole sysRole) { // 新增角色 sysRole.setCreateTime(new Date()); sysRole.setCreateUserId(AuthUtils.getLoginUserId()); int i = sysRoleMapper.insert(sysRole); if (i > 0) { // 获取角色id Long roleId = sysRole.getRoleId(); // 新增角色与权限的关系记录 // 获取角色对应的权限id集合 List<Long> menuIdList = sysRole.getMenuIdList(); // 创建角色与权限关系集合对象 List<SysRoleMenu> sysRoleMenuList = new ArrayList<>(); // 判断是否有值 if (CollectionUtil.isNotEmpty(menuIdList) && menuIdList.size() != 0) { // 循环遍历权限id集合 menuIdList.forEach(menuId -> { // 创建角色与权限关系记录 SysRoleMenu sysRoleMenu = new SysRoleMenu(); sysRoleMenu.setRoleId(roleId); sysRoleMenu.setMenuId(menuId); // 收集角色与权限的关系记录 sysRoleMenuList.add(sysRoleMenu); }); // 批量添加角色与权限关系集合 sysRoleMenuService.saveBatch(sysRoleMenuList); } } return i>0; }
}
public interface SysRoleService extends IService<SysRole>{
/** * 新增角色 * @param sysRole * @return */ Boolean/Integer saveSysRole(SysRole sysRole);
}
controller
/** * 新增角色 * @param sysRole 角色对象 * @return */ @ApiOperation("新增角色") @PostMapping @PreAuthorize("hasAuthority('sys:role:save')") public Result<String> saveSysRole(@RequestBody SysRole sysRole) { Boolean saved = sysRoleService.saveSysRole(sysRole); return Result.handle(saved); }
public static Result<String> handle(Boolean flag) { if (flag) { return Result.success(null); } return Result.fail(BusinessEnum.OPERATION_FAIL); }
新增角色
public class SysRole implements Serializable {
@TableField(exist = false) @ApiModelProperty("权限id集合") private List<Long> menuIdList;
}