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 index ff35ace6..2d6a97e3 100644 --- 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 @@ -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 ======================"); diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java index f1e87c9c..c870b5fd 100644 --- a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java +++ b/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 srz_item = iDictDataService.selectDictDataByType("srz_item"); Map 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> 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 resMap = userService.addSrzUser(dataArr); + Map 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 srz_item = iDictDataService.selectDictDataByType("srz_item"); + Map 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> 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 resMap = userService.addSrzUser(dataArr, token); +// sumMap.add(resMap); +// page++; +// } + +// int insertNum = 0; +// int updateNum = 0; +// for (Map 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 resMap = deptService.addSrzDept(dataArr); + Map 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 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")); diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java index b53cf121..2b6a1c84 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java +++ b/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 addSrzDept(JSONArray dataArr) { + public Map 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(); + } } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java index 883da2cc..a4ebdb39 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java +++ b/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 addSrzDept(JSONArray dataArr); + public Map addSrzDept(JSONArray dataArr,String token); /** * 修改保存部门信息 diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java index be2f7f4f..e14da907 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java +++ b/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 addSrzUser(JSONArray dataArr); + Map addSrzUser(JSONArray dataArr, String token); } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java index 47451c79..4d760122 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java +++ b/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 addSrzUser(JSONArray dataArr) { + public Map 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(); + } }