Browse Source

提交拉取市认证数据接口

v2
chenrui 2 years ago
parent
commit
68441ba5ae
  1. 2
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/LockUserInfoAndDeptTask.java
  2. 107
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java
  3. 86
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java
  4. 2
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java
  5. 2
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java
  6. 96
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java

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

@ -83,7 +83,7 @@ public class LockUserInfoAndDeptTask {
// 获取 用户信息
int page = 0;
int pageSize = 200;
int pageSize = 10;
String userInfoJson = connect("/ebus/sfrzhqxglmk/sysPullTacc?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0");
System.out.println("====================== userInfoJson ======================");

107
lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java

@ -66,13 +66,13 @@ public class UserInfoAndDeptTask {
public void run(){
this.userInfoAndDept();
this.userInfo();
}
/**
* 预警任务
*/
public void userInfoAndDept(){
public void userInfo(){
List<DictData> srz_item = iDictDataService.selectDictDataByType("srz_item");
Map<String,String> map = srz_item.stream().collect(Collectors.toMap(DictData::getDictLabel,DictData::getDictValue));
@ -94,7 +94,7 @@ public class UserInfoAndDeptTask {
// 获取 用户信息
int page = 0;
int pageSize = 20;
int pageSize = 500;
List<Map<String, Integer>> sumMap = new ArrayList<>();
while (true) {
String userInfoJson = connect("/ebus/sfrzhqxglmk/sysPullTacc?token="+token+"&page="+page+"&pageSize="+pageSize+"&status=0");
@ -106,7 +106,7 @@ public class UserInfoAndDeptTask {
}
JSONArray dataArr = tmpJsonObj.getJSONArray("data");
if (null == dataArr || dataArr.size()==0) { break; }
Map<String, Integer> resMap = userService.addSrzUser(dataArr);
Map<String, Integer> resMap = userService.addSrzUser(dataArr, token);
sumMap.add(resMap);
page++;
}
@ -119,6 +119,62 @@ public class UserInfoAndDeptTask {
}
log.info("新增用户数量 : {} / 更新用户数量 : {}", insertNum, updateNum);
// 注销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();
}
}
public void dept(){
List<DictData> srz_item = iDictDataService.selectDictDataByType("srz_item");
Map<String,String> map = srz_item.stream().collect(Collectors.toMap(DictData::getDictLabel,DictData::getDictValue));
if(MapUtil.isNotEmpty(map)){
params = map;
}
String token = "";
String userInfo = "";
String deptInfo = "";
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 = 500;
List<Map<String, Integer>> sumMap = new ArrayList<>();
// 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");
// if(null==tmpJsonObj) {
// log.info("=====================> tmpJsonObj 为空");
// break;
// }
// JSONArray dataArr = tmpJsonObj.getJSONArray("data");
// if (null == dataArr || dataArr.size()==0) { break; }
// Map<String, Integer> resMap = userService.addSrzUser(dataArr, token);
// 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 ======================");
@ -130,6 +186,8 @@ public class UserInfoAndDeptTask {
// System.out.println(deptInfoJson);
// System.out.println("====================== deptInfoJson ======================");
int insertNum = 0;
int updateNum = 0;
page = 0;
// 获取 部门信息
while (true) {
@ -143,7 +201,7 @@ public class UserInfoAndDeptTask {
JSONArray dataArr = tmpJsonObj.getJSONArray("data");
if (null == dataArr || dataArr.size()==0) { break; }
// 插入更新数据库
Map<String, Integer> resMap = deptService.addSrzDept(dataArr);
Map<String, Integer> resMap = deptService.addSrzDept(dataArr,token);
sumMap.add(resMap);
page++;
}
@ -180,7 +238,7 @@ public class UserInfoAndDeptTask {
JSONArray dataArr = tmpJsonObj.getJSONArray("data");
if (null == dataArr || dataArr.size()==0 || page>0) { break; }
Map<String, Integer> resMap = new HashMap<>();
resMap = userService.addSrzUser(dataArr);
// resMap = userService.addSrzUser(dataArr);
// resMap = deptService.addSrzDept(dataArr);
sumMap.add(resMap);
page++;
@ -234,6 +292,43 @@ public class UserInfoAndDeptTask {
return null;
}
private String connect(String apiPath, String params) {
//各种参数
try {
// String params = "{\"uid\":\"5b07b3de672c4e999c4b04f4\"}"; //请求接⼝的参数
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"));

86
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java

@ -15,11 +15,21 @@ import com.zdxt.domain.auth.SysTenant;
import com.zdxt.domain.auth.User;
import org.apache.commons.collections.map.HashedMap;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -34,7 +44,12 @@ public class DeptServiceImpl implements IDeptService
@Autowired
private DeptMapper deptMapper;
@Value("${srnwg.url}")
private String znwgUrl;
@Value("${srnwg.paasId}")
private String paasId;
@Value("${srnwg.paasToken}")
private String paasToken;
/**
* 修改保存部门信息
@ -417,12 +432,16 @@ public class DeptServiceImpl implements IDeptService
@Override
public Map<String, Integer> addSrzDept(JSONArray dataArr) {
public Map<String, Integer> addSrzDept(JSONArray dataArr,String token) {
int insertNum = 0;
int updateNum = 0;
for (int i = 0; i < dataArr.size(); i++) {
JSONObject jsonObject = dataArr.getJSONObject(i);
if (StringUtils.isEmpty(jsonObject.getString("organizationId"))) { continue; }
// 返回每条拉取的成功情况
String taskId = jsonObject.getString("taskId");
String params = "{\"token\":\""+token+"\",[{\"taskId\":\""+taskId+"\",\"result\":\"SUCCESS\"}]}";
connect("/ebus/sfrzhqxglmk/sysDoneTacc", params);
Dept dept = new Dept();
dept.setDeptId(jsonObject.getString("organizationId"));
dept.setParentId(jsonObject.getString("parentId"));
@ -477,4 +496,67 @@ public class DeptServiceImpl implements IDeptService
public int updateAncestorsById(Dept dept) {
return deptMapper.updateAncestorsById(dept);
}
private String connect(String apiPath, String params) {
//各种参数
try {
// String params = "{\"uid\":\"5b07b3de672c4e999c4b04f4\"}"; //请求接⼝的参数
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 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();
}
}

2
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java

@ -95,7 +95,7 @@ public interface IDeptService
* @return 结果
*/
public int insertDept(Dept dept);
public Map<String, Integer> addSrzDept(JSONArray dataArr);
public Map<String, Integer> addSrzDept(JSONArray dataArr,String token);
/**
* 修改保存部门信息

2
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java

@ -222,5 +222,5 @@ public interface IUserService
* @param dataArr
* @return
*/
Map<String, Integer> addSrzUser(JSONArray dataArr);
Map<String, Integer> addSrzUser(JSONArray dataArr, String token);
}

96
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java

@ -23,6 +23,13 @@ import com.zdxt.common.annotation.DataScope;
import com.zdxt.common.util.IdCardCryptoUtil;
import com.zdxt.domain.auth.*;
import org.apache.commons.collections.map.HashedMap;
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.apache.shiro.crypto.hash.Md5Hash;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -31,8 +38,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.security.MessageDigest;
import java.util.*;
import com.zdxt.auth.project.system.user.mapper.UserMapper;
import com.zdxt.auth.project.system.user.mapper.UserPostMapper;
import com.zdxt.auth.project.system.user.mapper.UserRoleMapper;
@ -44,7 +52,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 用户 业务层处理
@ -613,15 +620,25 @@ public class UserServiceImpl implements IUserService {
}
@Override
public Map<String, Integer> addSrzUser(JSONArray dataArr) {
public Map<String, Integer> addSrzUser(JSONArray dataArr, String token) {
int insertNum = 0;
int updateNum = 0;
for (int i = 0; i < dataArr.size(); i++) {
JSONObject jsonObject = dataArr.getJSONObject(i);
// 通过登录名判断用户是否存在
// checkLoginNameUnique(jsonObject.getString("username"));
if (StringUtils.isEmpty(jsonObject.getString("username"))) { continue; }
try {
// 返回每条拉取的成功情况
String taskId = jsonObject.getString("taskId");
String params = "{\"token\":\""+token+"\",[{\"taskId\":\""+taskId+"\",\"result\":\"SUCCESS\"}]}";
connect("/ebus/sfrzhqxglmk/sysDoneTacc", params);
}catch (Exception e){
log.info("用户数据下拉完成异常,异常任务id:{}",jsonObject.getString("taskId"));
e.printStackTrace();
}
User user = new User();
user.setDeptId(jsonObject.getString("organizationId"));
user.setOrganizationId(jsonObject.getString("organizationId"));
@ -678,4 +695,73 @@ public class UserServiceImpl implements IUserService {
resMap.put("updateNum", updateNum);
return resMap;
}
@Value("${srnwg.url}")
private String znwgUrl;
@Value("${srnwg.paasId}")
private String paasId;
@Value("${srnwg.paasToken}")
private String paasToken;
private String connect(String apiPath, String params) {
//各种参数
try {
// String params = "{\"uid\":\"5b07b3de672c4e999c4b04f4\"}"; //请求接⼝的参数
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 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