class GetUserIdByUnionIdRequest extends ApiRequest<Mono<GetUserIdByUnionIdRequest.UserUnionInfoResponse>> {

    private final String unionId;

    @Override
    public Mono<UserUnionInfoResponse> execute(WebClient client) {
        return doRequest(client);
    }

    private Mono<UserUnionInfoResponse> doRequest(WebClient client) {<FILL_FUNCTION_BODY>}

    @Getter
    @Setter
    public static class UserUnionInfoResponse extends ApiResponse {

        @JsonProperty
        @JsonAlias("result")
        private Result result;

        @Getter
        @Setter
        public static class Result {

            @JsonProperty
            @JsonAlias("contact_type")
            private int contactType;

            @JsonProperty
            @JsonAlias("userid")
            private String userId;
        }

    }
}


        Map<String, Object> body = new HashMap<>();
        body.put("unionid", unionId);
        return client
            .post()
            .uri("/topapi/user/getbyunionid")
            .bodyValue(body)
            .retrieve()
            .bodyToMono(UserUnionInfoResponse.class)
            .doOnNext(rep -> {
                if (rep.getResult() == null) {
                    throw new BusinessException(rep.getErrorMessage());
                }
            });
    
<methods>public non-sealed void <init>() ,public abstract Mono<org.jetlinks.community.notify.dingtalk.corp.request.GetUserIdByUnionIdRequest.UserUnionInfoResponse> execute(org.springframework.web.reactive.function.client.WebClient) <variables>