异步请求获取数据

异步请求获取数据

public JSONObject getResponsiblePersonList() throws Exception {

    String tenantCode = getTenantCode();
    String personUrl = "http://" + factory + "/FactoryModelService/rents/" + tenantCode + "/users";

    // 异步请求获取数据
    CompletableFuture<String> responseFuture = CompletableFuture.supplyAsync(() -> HttpClientUtil.get(personUrl));

    // 解析数据
    CompletableFuture<List<FRPNameAndCode>> dataFuture = responseFuture.thenApply(response -> {
        cn.hutool.json.JSONObject jsonObject = new cn.hutool.json.JSONObject(response);
        cn.hutool.json.JSONObject collectionInfo = jsonObject.getJSONObject("collection");
        JSONArray items = collectionInfo.getJSONArray("items");
        List<FRPNameAndCode> nameAndCodeList = new ArrayList<>();
        for (int i = 0; i < items.size(); i++) {
            cn.hutool.json.JSONObject item = items.getJSONObject(i);
            JSONArray data = item.getJSONArray("data");
            FRPNameAndCode nameAndCode = new FRPNameAndCode();
            for (int j = 0; j < data.size(); j++) {
                cn.hutool.json.JSONObject dataItem = data.getJSONObject(j);
                String name = dataItem.getStr("name");
                String value = dataItem.getStr("value");
                if (name.equals("userCode")) {
                    nameAndCode.setResponsiblePersonCode(value);
                } else if (name.equals("userName")) {
                    nameAndCode.setResponsiblePerson(value);
                }
            }
            nameAndCodeList.add(nameAndCode);
        }
        return nameAndCodeList;
    });

    // 等待异步请求和数据处理完成
    List<FRPNameAndCode> nameAndCodeList = dataFuture.get();
    return JSONObject.fromObject(RestfulTool.buildCollection(nameAndCodeList,
            setPage(nameAndCodeList.size()),request.getRequestURI(),FRPNameAndCode.class));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值