1 changed files with 191 additions and 0 deletions
@ -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…
Reference in new issue