package nckd.jxccl.hr;

import com.alibaba.fastjson.JSONObject;
import com.google.logging.type.HttpRequest;
import kd.bos.flydb.jdbc.client.impl.HttpClient;
import kd.bos.krpc.common.URL;
import kd.bos.util.HttpClientUtils;
import kd.bos.util.StringUtils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author: HLW
 * @Description:
 * @Date: 4/11/2025 下午 4:52
 * @Version: 1.0
 **/

public class ApiClient {
    public static String getToken(String allUri)
    {
        String accessToken = null;

        if(allUri != null) {
            // 请求头
            Map<String, String> header = new HashMap<>();
            header.put("Content-Type", "application/json");
            // 如果需要其他头信息，可以继续添加
            // header.put("Accept", "application/json");

            try {
                // 使用GET方法调用接口，params传null或空字符串
                String json = HttpClientUtils.get(allUri, header, null, 1000000, 1000000);

                if(StringUtils.isNotEmpty(json)) {
                    JSONObject jsonObject = JSONObject.parseObject(json);
                    // 根据实际返回的JSON字段获取token
                    // 如果返回字段是"access_token"
                    accessToken = String.valueOf(jsonObject.get("result"));
                    // 或者如果是其他字段名，比如"token"
                    // accessToken = String.valueOf(jsonObject.get("token"));
                }

            } catch (Exception e) {
                e.printStackTrace(); // 建议添加日志以便调试
                return accessToken;
            }
        }
        return accessToken;
    }

    public static String getPoliticalPartyData(String uri, String sysCode, String accessToken, String code, String jsonDataStr){
        String result = null;

        if(uri != null  && StringUtils.isNotEmpty(sysCode) && StringUtils.isNotEmpty(accessToken)) {
            // 请求头
            Map<String, String> header = new HashMap<>();
            header.put("Content-Type", "application/json");
            header.put("sysCode", sysCode);
            header.put("accessToken", accessToken);
            // 如果需要其他头信息，可以继续添加
            // header.put("Accept", "application/json");

            // 构造Body参数
            JSONObject bodyParams = new JSONObject();
            bodyParams.put("code", code);
            JSONObject jsonData = JSONObject.parseObject(jsonDataStr);
            bodyParams.put("jsonData", jsonData);
            String params = bodyParams.toJSONString();

            try {
                /// 调用POST接口
                String json = HttpClientUtils.postjson(uri, header, params, 1000000, 1000000);

                if(StringUtils.isNotEmpty(json)) {
                    // 如果需要解析特定字段，可以这样：
                     JSONObject jsonObject = JSONObject.parseObject(json);
                     result = String.valueOf(jsonObject.get("result"));
                }

            } catch (Exception e) {
                e.printStackTrace(); // 建议添加日志以便调试
                return result;
            }
        }
        return result;
    }
}
