package com.engine.custom.yunxuetang.util; import com.alibaba.fastjson.JSONObject; import com.engine.custom.yunxuetang.bean.DeptRequestBody; import com.engine.custom.yunxuetang.bean.JobRequestBody; import com.engine.custom.yunxuetang.bean.JobTypeRequestBody; import com.engine.custom.yunxuetang.bean.ResponseData; import okhttp3.OkHttpClient; public class SyncUtil { private static OkHttpClient client =new OkHttpClient(); public static final String tokenUrl = "https://openapi-adel.yunxuetang.cn/token"; public static final String appId = "9eqdtfi6t2f"; public static final String appSecret = "OWZhZWM0MGVjZWFj"; public static final String syncDeptsUrl = "https://openapi-adel.yunxuetang.cn/v1/udp/public/depts/sync"; public static final String syncDelDeptsUrl = "https://openapi-adel.yunxuetang.cn/v1/udp/public/depts/${thirdId}/del"; public static final String syncJobUrl = "https://openapi-adel.yunxuetang.cn/v1/udp/public/positions/sync"; public static final String syncJobTypeUrl = "https://openapi-adel.yunxuetang.cn/v1/udp/public/positioncatalogs/sync"; private String cachedToken; private long tokenExpiryTime; public ResponseData syncDept(DeptRequestBody deptRequestBody) { // String accessToken = HttpClientUtil.getAccessToken(tokenUrl, appId, appSecret); // System.out.println(accessToken); //同步部门 // DeptRequestBody deptRequestBody = new DeptRequestBody(); // deptRequestBody.setName("研发一部子部门1"); // deptRequestBody.setThirdId("2"); // deptRequestBody.setCode(""); // deptRequestBody.setParentThirdId("1"); String bodyStr = JSONObject.toJSONString(deptRequestBody); fetchToken(); String responseData = HttpClientUtil.doPost(syncDeptsUrl, bodyStr, cachedToken); ResponseData jsonObject = JSONObject.parseObject(responseData,ResponseData.class); System.out.println(jsonObject); return jsonObject; } public ResponseData syncDelDept( String id) { fetchToken(); String responseData = HttpClientUtil.doPost(syncDelDeptsUrl.replace("${thirdId}",id), "", cachedToken); ResponseData jsonObject = JSONObject.parseObject(responseData,ResponseData.class); System.out.println(jsonObject); return jsonObject; } public void fetchToken() { // 如果缓存中的令牌为空或即将过期,重新获取 if (cachedToken == null || System.currentTimeMillis() > tokenExpiryTime - (5 * 60 * 1000)) { cachedToken = HttpClientUtil.getAccessToken(tokenUrl, appId, appSecret); // 设置令牌的过期时间,这里是30分钟后 tokenExpiryTime = System.currentTimeMillis() + (30 * 60 * 1000); } } public ResponseData syncJobType(JobTypeRequestBody job) { fetchToken(); String bodyStr = JSONObject.toJSONString(job); fetchToken(); System.out.println(bodyStr); String responseData = HttpClientUtil.doPost(syncJobTypeUrl, bodyStr, cachedToken); ResponseData jsonObject = JSONObject.parseObject(responseData,ResponseData.class); System.out.println(jsonObject); return jsonObject; } public ResponseData syncJobs(JobRequestBody job) { fetchToken(); String bodyStr = JSONObject.toJSONString(job); fetchToken(); System.out.println(bodyStr); String responseData = HttpClientUtil.doPost(syncJobUrl, bodyStr, cachedToken); ResponseData jsonObject = JSONObject.parseObject(responseData,ResponseData.class); System.out.println(jsonObject); return jsonObject; } }