Browse Source

专门用来看同步数据返回的json的自定义任务

v2
蟑螂恶霸 2 years ago
parent
commit
359062ca01
  1. 191
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/LockUserInfoAndDeptTask.java

191
lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/LockUserInfoAndDeptTask.java

@ -0,0 +1,191 @@
package com.zdxt.app.task;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.zdxt.auth.dto.UserBean;
import com.zdxt.auth.feign.UserApi;
import com.zdxt.auth.project.system.dept.service.IDeptService;
import com.zdxt.auth.project.system.dict.service.IDictDataService;
import com.zdxt.auth.project.system.user.service.IUserService;
import com.zdxt.domain.auth.DictData;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.MessageDigest;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: kylin
* @Date: 2024/5/9 2:58 下午
* @Version: 1.0
* @Desc: TODO
*/
@Component("lockUserInfoAndDeptTask")
public class LockUserInfoAndDeptTask {
@Value("${srnwg.systemCode}")
private String systemCode;
@Value("${srnwg.integrationKey}")
private String integrationKey;
@Value("${srnwg.url}")
private String znwgUrl;
@Value("${srnwg.paasId}")
private String paasId;
@Value("${srnwg.paasToken}")
private String paasToken;
@Autowired private UserApi userApi;
@Autowired private IUserService userService;
@Autowired private IDeptService deptService;
@Autowired
private IDictDataService iDictDataService;
public static Map<String,String> params = new HashMap<>();
private static final Logger log = LoggerFactory.getLogger(LockUserInfoAndDeptTask.class);
public void run(){
this.lockUserInfoAndDept();
}
/**
* 预警任务
*/
public void lockUserInfoAndDept(){
String token = "";
String destroyTken = "";
try {
// 获取 access_token
String tokenJson = connect("/ebus/sfrzhqxglmk/sysPullLogin?systemCode="+systemCode+"&integrationKey="+integrationKey);
JSONObject tokenObj = JSONObject.parseObject(tokenJson);
System.out.println("====================== access_token ======================");
System.out.println(tokenObj);
System.out.println("====================== access_token ======================");
token = tokenObj.getString("data");
// 获取 用户信息
int page = 0;
int pageSize = 200;
String userInfoJson = connect("/ebus/sfrzhqxglmk/sysPullTacc?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0");
System.out.println("====================== userInfoJson ======================");
System.out.println(userInfoJson);
System.out.println("====================== userInfoJson ======================");
String deptInfoJson = connect("/ebus/sfrzhqxglmk/sysPullOrg?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0");
System.out.println("====================== deptInfoJson ======================");
System.out.println(deptInfoJson);
System.out.println("====================== deptInfoJson ======================");
// 注销token
destroyTken = connect("/ebus/sfrzhqxglmk/sysPullLogout?token="+token);
System.out.println("====================== destroyTken ======================");
System.out.println(destroyTken);
System.out.println("====================== destroyTken ======================");
} catch (Exception e) {
e.printStackTrace();
}
}
private String connect(String apiPath) {
//各种参数
try {
// String params = "{\"uid\":\"5b07b3de672c4e999c4b04f4\"}"; //请求接⼝的参数
String params = ""; //请求接⼝的参数
long now = new Date().getTime();
String timestamp = Long.toString((long) Math.floor(now / 1000));
String nonce = Long.toHexString(now) + "-" + Long.toHexString((long) Math.floor(Math.random() * 0xFFFFFF));
String signature = toSHA256(timestamp + paasToken + nonce + timestamp);
//创建CloseableHttpClient
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(znwgUrl + apiPath);
httpPost.setHeader("x-tif-paasid", paasId);
httpPost.setHeader("x-tif-timestamp", timestamp);
httpPost.setHeader("x-tif-signature", signature);
httpPost.setHeader("x-tif-nonce", nonce);
httpPost.setHeader("Content-Type", "application/json");
httpPost.setHeader("Cache-Control", "no-cache");
HttpEntity entity = new StringEntity(params);
httpPost.setEntity(entity);
CloseableHttpResponse response = client.execute(httpPost);
return EntityUtils.toString(response.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private UserBean convertUser(JSONObject userJson) {
UserBean userBean = new UserBean();
userBean.setFullname(userJson.getString("fullname"));
userBean.setTaskId(userJson.getString("taskId"));
userBean.setSystemId(userJson.getString("systemId"));
userBean.setEffectOn(userJson.getString("effectOn"));
userBean.setIsDeleted(userJson.getString("isDeleted"));
userBean.setIsDisabled(userJson.getString("isDisabled"));
userBean.setCreateAt(userJson.getString("createAt"));
userBean.setUpdateAt(userJson.getString("updateAt"));
userBean.setGuid(userJson.getString("guid"));
userBean.setMobileNumber(userJson.getString("mobileNumber"));
userBean.setCertificateNumber(userJson.getString("certificateNumber"));
userBean.setSrzUserid(userJson.getString("srzUserid"));
userBean.setIsMappingPerson(userJson.getString("isMappingPerson"));
userBean.setUnits(userJson.getString("units"));
return userBean;
}
private String toSHA256(String str) throws Exception {
MessageDigest messageDigest;
String encodeStr = "";
try {
messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(str.getBytes("UTF-8"));
encodeStr = byte2Hex(messageDigest.digest());
} catch (Exception e) {
throw e;
}
return encodeStr;
}
// byte转换成16进制
private String byte2Hex(byte[] bytes) {
StringBuffer stringBuffer = new StringBuffer();
String temp = null;
for (int i = 0; i < bytes.length; i++) {
temp = Integer.toHexString(bytes[i] & 0xFF);
if (temp.length() == 1) {
stringBuffer.append("0");
}
stringBuffer.append(temp);
}
return stringBuffer.toString();
}
}
Loading…
Cancel
Save