|
|
@ -1,13 +1,33 @@ |
|
|
package com.zdxt.app.task; |
|
|
package com.zdxt.app.task; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.zdxt.auth.dto.UserBean; |
|
|
import com.zdxt.auth.dto.UserBean; |
|
|
import com.zdxt.auth.feign.UserApi; |
|
|
import com.zdxt.auth.feign.UserApi; |
|
|
|
|
|
import com.zdxt.auth.project.system.user.service.IUserService; |
|
|
|
|
|
import com.zdxt.code.service.ThirdLoginService; |
|
|
import com.zdxt.code.utils.HttpUtil; |
|
|
import com.zdxt.code.utils.HttpUtil; |
|
|
|
|
|
import com.zdxt.common.util.http.HttpUtils; |
|
|
|
|
|
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.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.stereotype.Component; |
|
|
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.*; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @Author: kylin |
|
|
* @Author: kylin |
|
|
@ -18,14 +38,21 @@ import org.springframework.stereotype.Component; |
|
|
@Component("userInfoAndDeptTask") |
|
|
@Component("userInfoAndDeptTask") |
|
|
public class UserInfoAndDeptTask { |
|
|
public class UserInfoAndDeptTask { |
|
|
|
|
|
|
|
|
@Value("${znwg.systemCode}") |
|
|
@Value("${srnwg.systemCode}") |
|
|
private String systemCode; |
|
|
private String systemCode; |
|
|
@Value("${znwg.integrationKey}") |
|
|
@Value("${srnwg.integrationKey}") |
|
|
private String integrationKey; |
|
|
private String integrationKey; |
|
|
@Value("${znwg.url}") |
|
|
@Value("${srnwg.url}") |
|
|
private String znwgUrl; |
|
|
private String znwgUrl; |
|
|
|
|
|
@Value("${srnwg.paasId}") |
|
|
|
|
|
private String paasId; |
|
|
|
|
|
@Value("${srnwg.paasToken}") |
|
|
|
|
|
private String paasToken; |
|
|
|
|
|
|
|
|
@Autowired private UserApi userApi; |
|
|
@Autowired private UserApi userApi; |
|
|
|
|
|
@Autowired private IUserService userService; |
|
|
|
|
|
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(UserInfoAndDeptTask.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void run(){ |
|
|
public void run(){ |
|
|
@ -42,41 +69,140 @@ public class UserInfoAndDeptTask { |
|
|
String destroyTken = ""; |
|
|
String destroyTken = ""; |
|
|
try { |
|
|
try { |
|
|
// 获取 access_token
|
|
|
// 获取 access_token
|
|
|
token = HttpUtil.HttpSendGet(znwgUrl + "/ebus/sfrzhqxglmk/sysPullLogin?systemCode="+systemCode+"&integrationKey="+integrationKey, null); |
|
|
String tokenJson = connect("/ebus/sfrzhqxglmk/sysPullLogin?systemCode="+systemCode+"&integrationKey="+integrationKey); |
|
|
System.out.println("====================== accessToken ======================"); |
|
|
JSONObject tokenObj = JSONObject.parseObject(tokenJson); |
|
|
System.out.println(token); |
|
|
System.out.println("====================== access_token ======================"); |
|
|
System.out.println("====================== accessToken ======================"); |
|
|
System.out.println(tokenObj); |
|
|
|
|
|
System.out.println("====================== access_token ======================"); |
|
|
|
|
|
token = tokenObj.getString("data"); |
|
|
|
|
|
|
|
|
// 获取 用户信息
|
|
|
// 获取 用户信息
|
|
|
userInfo = HttpUtil.HttpSendGet(znwgUrl + "/ebus/sfrzhqxglmk/sysPullTacc?token="+token+"&page=0&pageSize=20&status=0", null); |
|
|
int page = 0; |
|
|
System.out.println("====================== userInfo ======================"); |
|
|
int pageSize = 20; |
|
|
System.out.println(userInfo); |
|
|
List<Map<String, Integer>> sumMap = new ArrayList<>(); |
|
|
System.out.println("====================== userInfo ======================"); |
|
|
while (true) { |
|
|
|
|
|
String userInfoJson = connect("/ebus/sfrzhqxglmk/sysPullTacc?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0"); |
|
|
|
|
|
JSONObject sourceObj = JSONObject.parseObject(userInfoJson); |
|
|
|
|
|
JSONObject tmpJsonObj = sourceObj.getJSONObject("data"); |
|
|
|
|
|
JSONArray dataArr = tmpJsonObj.getJSONArray("data"); |
|
|
|
|
|
if (null == dataArr || dataArr.size()==0) { break; } |
|
|
|
|
|
// System.out.println("用户 : "+ page +" -----------> "+ (null == dataArr || "".equals(dataArr)));
|
|
|
|
|
|
Map<String, Integer> resMap = new HashMap<>(); |
|
|
|
|
|
resMap = userService.addSrzUser(dataArr); |
|
|
|
|
|
sumMap.add(resMap); |
|
|
|
|
|
page++; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int insertNum = 0; |
|
|
|
|
|
int updateNum = 0; |
|
|
|
|
|
for (Map<String, Integer> item : sumMap) { |
|
|
|
|
|
insertNum += item.get("insertNum"); |
|
|
|
|
|
updateNum += item.get("updateNum"); |
|
|
|
|
|
} |
|
|
|
|
|
log.info("新增用户数量 : {} / 更新用户数量 : {}", insertNum, updateNum); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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 ======================");
|
|
|
|
|
|
|
|
|
|
|
|
page = 0; |
|
|
// 获取 部门信息
|
|
|
// 获取 部门信息
|
|
|
deptInfo = HttpUtil.HttpSendGet(znwgUrl + "/ebus/sfrzhqxglmk/sysPullOrg?token="+token+"&page=0&pageSize=20&status=0", null); |
|
|
// while (true) {
|
|
|
System.out.println("====================== userInfo ======================"); |
|
|
// String deptInfoJson = connect("/ebus/sfrzhqxglmk/sysPullOrg?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0");
|
|
|
System.out.println(deptInfo); |
|
|
// JSONObject sourceObj = JSONObject.parseObject(deptInfoJson);
|
|
|
System.out.println("====================== userInfo ======================"); |
|
|
// JSONObject tmpJsonObj = sourceObj.getJSONObject("data");
|
|
|
|
|
|
// JSONArray dataArr = tmpJsonObj.getJSONArray("data");
|
|
|
|
|
|
// if (null == dataArr || dataArr.size()==0) { break; }
|
|
|
|
|
|
// // 插入更新数据库
|
|
|
|
|
|
// System.out.println("部门 : "+ page +" -----------> "+ (null == dataArr || "".equals(dataArr)));
|
|
|
|
|
|
//// userService.addSrzUser(dataArr);
|
|
|
|
|
|
// page++;
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
// 注销token
|
|
|
// 注销token
|
|
|
HttpUtil.HttpSendGet(znwgUrl + "/ebus/sfrzhqxglmk/sysPullLogout?token="+token, null); |
|
|
destroyTken = connect("/ebus/sfrzhqxglmk/sysPullLogout?token="+token); |
|
|
System.out.println("====================== destroyTken ======================"); |
|
|
System.out.println("====================== destroyTken ======================"); |
|
|
System.out.println(destroyTken); |
|
|
System.out.println(destroyTken); |
|
|
System.out.println("====================== destroyTken ======================"); |
|
|
System.out.println("====================== destroyTken ======================"); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
} |
|
|
} |
|
|
JSONObject userObj = JSONObject.parseObject(userInfo); |
|
|
} |
|
|
JSONObject deptObj = JSONObject.parseObject(deptInfo); |
|
|
|
|
|
System.out.println("====================== userInfo ======================"); |
|
|
|
|
|
System.out.println(userObj); |
|
|
|
|
|
System.out.println("====================== userInfo ======================"); |
|
|
public void testRun() { |
|
|
System.out.println("====================== userInfo ======================"); |
|
|
String path = "/uploadPath/userInfo.txt"; // 替换为你的JSON文件路径
|
|
|
System.out.println(deptObj); |
|
|
try { |
|
|
System.out.println("====================== userInfo ======================"); |
|
|
int page = 0; |
|
|
|
|
|
int pageSize = 20; |
|
|
userApi.insertOrUpdateUserResId(convertUser(userObj)); |
|
|
List<Map<String, Integer>> sumMap = new ArrayList<>(); |
|
|
|
|
|
while (true) { |
|
|
|
|
|
String userInfoJson = new String(Files.readAllBytes(Paths.get(path)), StandardCharsets.UTF_8); |
|
|
|
|
|
System.out.println(userInfoJson); |
|
|
|
|
|
JSONObject sourceObj = JSONObject.parseObject(userInfoJson); |
|
|
|
|
|
JSONObject tmpJsonObj = sourceObj.getJSONObject("data"); |
|
|
|
|
|
JSONArray dataArr = tmpJsonObj.getJSONArray("data"); |
|
|
|
|
|
if (null == dataArr || dataArr.size()==0 || page>0) { break; } |
|
|
|
|
|
Map<String, Integer> resMap = new HashMap<>(); |
|
|
|
|
|
resMap = userService.addSrzUser(dataArr); |
|
|
|
|
|
sumMap.add(resMap); |
|
|
|
|
|
page++; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int insertNum = 0; |
|
|
|
|
|
int updateNum = 0; |
|
|
|
|
|
for (Map<String, Integer> item : sumMap) { |
|
|
|
|
|
insertNum += item.get("insertNum"); |
|
|
|
|
|
updateNum += item.get("updateNum"); |
|
|
|
|
|
} |
|
|
|
|
|
log.info("新增用户数量 : {} / 更新用户数量 : {}", insertNum, updateNum); |
|
|
|
|
|
} catch (IOException 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) { |
|
|
private UserBean convertUser(JSONObject userJson) { |
|
|
@ -97,4 +223,33 @@ public class UserInfoAndDeptTask { |
|
|
userBean.setUnits(userJson.getString("units")); |
|
|
userBean.setUnits(userJson.getString("units")); |
|
|
return userBean; |
|
|
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(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|