webflux 邮件激活后跳转

68 阅读1分钟
return userRepository.findByTenantIdAndUserId(userVO.getTenantId(), userVO.getUserId())
    .flatMap(c -> Mono.just(Optional.of(c))).defaultIfEmpty(Optional.empty())
    .flatMap(option -> {
        if(option.isPresent()){
            User user = option.get();
            if(user.getUserActive()){
                return Mono.error(new RuntimeException(Constant.USRENAME_HAVE_ACTIVE));
            }
            user.setUserActive(true);
            return userRepository.save(user).flatMap(e->{
                log.info("==============注册成功!重定向");
                response.getHeaders().setLocation(URI.create(applicationAddress+"/register?token="+token));
                response.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
                return response.setComplete();
            });
        }
        return Mono.empty();
    });