public Mono<DeleteResult> deleteAdminRoles(@NotEmpty Set<Long> roleIds) {
        try {
            Validator.notEmpty(roleIds, "roleIds");
            Validator.notContains(roleIds,
                    ADMIN_ROLE_ROOT_ID,
                    "The root admin is reserved and cannot be deleted");
        } catch (ResponseException e) {
            return Mono.error(e);
        }
        return adminRoleRepository.deleteByIds(roleIds)
                .map(result -> {
                    // Though the latest records will be synced in the watch callback,
                    // we still need to invalid dirty cache immediately, so the subsequent query
                    // won't get outdated records
                    for (Long id : roleIds) {
                        idToRole.remove(id);
                    }
                    return result;
                });
    }
@param adminService is lazy because: AdminService -> AdminRoleService -> AdminService
turms-service/src/main/java/im/turms/service/domain/admin/service/AdminRoleService.java