diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/LockUserInfoAndDeptTask.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/LockUserInfoAndDeptTask.java new file mode 100644 index 00000000..ff35ace6 --- /dev/null +++ b/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 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(); + } +}