Commit b0405913 by yangyang

关联关系、4G轨迹提交(湖南)

parent c3cd21b7
......@@ -2,9 +2,11 @@ package com.founder.commonutils.util;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
......@@ -27,7 +29,19 @@ import java.util.*;
import java.util.Map.Entry;
public class HttpUtil {
private static RequestConfig requestConfig = null;
private static String tokenPath="";
static{
// 设置请求和传输超时时间
//setConnectTimeout:设置连接超时时间,单位毫秒。
//setSocketTimeout:请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。
//setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间,单位毫秒
requestConfig = RequestConfig.custom().setSocketTimeout(60000)
.setConnectTimeout(60000)
.setConnectionRequestTimeout(60000)
.setStaleConnectionCheckEnabled(true)
.build();
}
/**
* 获取网安数据
* @param url
......@@ -397,4 +411,49 @@ public class HttpUtil {
public static boolean ckeckEmpty(String string) {
return (null == string) || ("".equals(string));
}
/**
* 请求的参数类型为json
* @param url
* @param json
* @return {username:"",pass:""}
*/
public static String doPostJsonHunan(String url,Map<String, String> headers,String json) throws Exception {
// post请求返回结果
CloseableHttpClient httpClient = HttpClients.createDefault();
String jsonResult = null;
System.out.println(url);
HttpPost httpPost = new HttpPost(url);
// 设置请求和传输超时时间
httpPost.setConfig(requestConfig);
if(headers != null) {
for (String key : headers.keySet()) {
httpPost.setHeader(key, headers.get(key));
}
}
try{
//设置参数解决中文乱码
if (null != json){
StringEntity entity = new StringEntity(json,"utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
//发送请求
CloseableHttpResponse result = httpClient.execute(httpPost);
if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
// 读取服务器返回的json数据(然后解析)
jsonResult = EntityUtils.toString(result.getEntity(), "utf-8");
}else{
return null;
}
}catch (Exception e){
e.printStackTrace();
throw new Exception();
}finally{
httpPost.releaseConnection();
}
return jsonResult;
}
}
......@@ -197,7 +197,7 @@ public class SkTrailController extends ApiController implements ExcelControllerI
public MapRestResult query(@RequestBody SkTrailParam sktrailParam,HttpServletRequest request) {
List<SkTrailVO> list = new ArrayList<>();
// 根据标识号查看是否为演示数据 演示数据直接走数据库
/*if(SkTextUtilServiceImpl.queryText(sktrailParam.getLikeValue()).size()>0){
if(SkTextUtilServiceImpl.queryText(sktrailParam.getLikeValue()).size()>0){
//分页
Page page = new Page(sktrailParam.getPage(), sktrailParam.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
......@@ -226,7 +226,7 @@ public class SkTrailController extends ApiController implements ExcelControllerI
for (SkTrail skTrail : records) {
list.add(new SkTrailVO(skTrail, findByBh(skTrail.getObjectvalue(),skTrail.getObjecttype())));
}
}*/
}
// 真实API
if(sktrailParam.getLikeField().equals("wbgj")){
list = interfaceAPI.getWbXx(sktrailParam.getLikeValue(),sktrailParam.getKssj(),sktrailParam.getJssj(),request,sktrailParam.getPage(),sktrailParam.getPageSize());
......@@ -519,7 +519,7 @@ public class SkTrailController extends ApiController implements ExcelControllerI
public void export(HttpServletResponse response,@RequestBody SkTrailParam sktrailParam,HttpServletRequest request)throws Exception{
List<SkTrailVO> list = new ArrayList<>();
// 根据标识号查看是否为演示数据 演示数据直接走数据库
/*if(SkTextUtilServiceImpl.queryText(sktrailParam.getLikeValue()).size()>0){
if(SkTextUtilServiceImpl.queryText(sktrailParam.getLikeValue()).size()>0){
//分页
Page page = new Page(sktrailParam.getPage(), sktrailParam.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
......@@ -543,7 +543,7 @@ public class SkTrailController extends ApiController implements ExcelControllerI
for (SkTrail skTrail : records) {
list.add(new SkTrailVO(skTrail, findByBh(skTrail.getObjectvalue(),skTrail.getObjecttype())));
}
}*/
}
// 真实API
if(sktrailParam.getLikeField().equals("wbgj")){
list = interfaceAPI.getWbXx(sktrailParam.getLikeValue(),sktrailParam.getKssj(),sktrailParam.getJssj(),request,sktrailParam.getPage(),sktrailParam.getPageSize());
......
......@@ -8,11 +8,20 @@ import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.vo.response.SkRelatedResultInterFace;
import com.founder.commonutils.model.vo.response.SkRelatedResultVO;
import com.founder.commonutils.util.HttpClient;
import com.founder.commonutils.util.HttpUtil;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
......@@ -27,58 +36,53 @@ public class GlgxInterface {
private String SjxxByzjhm;// 通过证件号码获取手机信息
@Value("${ZjhmBysjhm}")
private String ZjhmBysjhm;// 通过手机获取证件号码信息
@Autowired
private StringRedisTemplate redisTemplate;
public MapRestResult getXsSfXx(String objectType, String objectValue) {
/*01:车牌号码 02:证件号码 03:手机号码 05:IMSI 06:QQ 07:微信 08:IMEI*/
// 车牌号能够查出手机号还有身份证号码
if(objectType.equals("01")){
/*01:车牌号码 02:证件号码 03:手机号码 05:IMSI 06:QQ 07:微信 08:IMEI*/
// 车牌号能够查出手机号还有身份证号码
if (objectType.equals("01")) {
List<SkRelatedResultInterFace> listResult = new ArrayList<>();
try{
// 车牌号码查询车主信息
HttpClient httpClientCar = new HttpClient();
JSONObject paramsCar = new JSONObject();
paramsCar.put("cphm",objectValue);
JSONObject resultCar = httpClientCar.doPostJsonHunan(hunanUrl+ ZjhmBycphm,paramsCar.toJSONString());
if(resultCar==null){
ArrayList<SkRelatedResultInterFace> res = new ArrayList<>();
return MapRestResult.build(200,"没有对应的数据!",0,res);
}
if(resultCar!=null){
if("success".equals(resultCar.getString("status"))){
try {
// 车牌号码查询车主信息
HttpClient httpClientCar = new HttpClient();
JSONObject paramsCar = new JSONObject();
paramsCar.put("cphm", objectValue);
JSONObject resultCar = httpClientCar.doPostJsonHunan(hunanUrl + ZjhmBycphm, paramsCar.toJSONString());
if (resultCar == null) {
ArrayList<SkRelatedResultInterFace> res = new ArrayList<>();
return MapRestResult.build(200, "没有对应的数据!", 0, res);
}
if (resultCar != null) {
if ("success".equals(resultCar.getString("status"))) {
JSONArray jsonArrayCar = JSONObject.parseObject(resultCar.get("data").toString()).getJSONArray("rows");
if(jsonArrayCar.size()>0){
if (jsonArrayCar.size() > 0) {
// 拿到djrq最近定检日期 最新的车主证件号码
jsonArrayCar = jSONArraySort(jsonArrayCar,"djrq");
jsonArrayCar = jSONArraySort(jsonArrayCar, "djrq");
JSONObject obj = jsonArrayCar.getJSONObject(0);
SkRelatedResultInterFace peopleInfo = new SkRelatedResultInterFace();
peopleInfo.setObjectType("02");
peopleInfo.setObjectValue(obj.getString("zjhm"));
// 拿到djrq最近定检日期 最新的车主证件号码再去查询手机号
HttpClient httpClientPhone = new HttpClient();
JSONObject paramsPhone = new JSONObject();
paramsPhone.put("zjhm",obj.getString("zjhm"));
JSONObject resultPhone = httpClientPhone.doPostJsonHunan(hunanUrl+ SjxxByzjhm,paramsPhone.toJSONString());
if(null!=resultPhone){ // 解析返回结果
if("success".equals(resultPhone.getString("status"))){
JSONArray jsonArrayPhone = JSONObject.parseObject(resultPhone.get("data").toString()).getJSONArray("rows");
if(jsonArrayPhone.size()>0){
for(int i=0;i<jsonArrayPhone.size();i++){
JSONObject objPhone = jsonArrayPhone.getJSONObject(i);
if(Arrays.asList("1","0","2").contains(obj.getString("status"))) {// 用户状态(1:在用,0:欠费停机,2:停机,3:注销,9:其它)
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("03");
phoneInfo.setObjectValue(objPhone.getString("phoneNo"));
listResult.add(phoneInfo);
}
}
// 拿到手机号11位
if(listResult.size()>0){
listResult = listResult.stream().filter(sms -> (
sms.getObjectValue().length()==11)).collect(Collectors.toList()); }
JSONArray jsonArrayPhone = getJzxx(obj.getString("zjhm"), "zjhm");
if (jsonArrayPhone.size() > 0) {
for (int i = 0; i < jsonArrayPhone.size(); i++) {
JSONObject objPhone = jsonArrayPhone.getJSONObject(i);
if (Arrays.asList("1", "0", "2").contains(obj.getString("status"))) {// 用户状态(1:在用,0:欠费停机,2:停机,3:注销,9:其它)
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("03");
phoneInfo.setObjectValue(objPhone.getString("phoneNo"));
listResult.add(phoneInfo);
}
}
// 拿到手机号11位
if (listResult.size() > 0) {
listResult = listResult.stream().filter(sms -> (
sms.getObjectValue().length() == 11)).collect(Collectors.toList());
}
}
SkRelatedResultInterFace self = new SkRelatedResultInterFace();
self.setObjectType(objectType);
......@@ -93,119 +97,104 @@ public class GlgxInterface {
skRelatedResultVO.setObjectvalue(objectValue);
skRelatedResultVO.setResult(JSON.toJSONString(peopleInfo));
newList.add(skRelatedResultVO);
return MapRestResult.build(200,"成功获取关联信息!",1,newList);
return MapRestResult.build(200, "成功获取关联信息!", 1, newList);
}
}
}
}catch (Exception e){
return MapRestResult.error("关联关系接口错误!"+e);
}
} catch (Exception e) {
return MapRestResult.error("关联关系接口错误!" + e);
}
}else if(objectType.equals("03")){
} else if (objectType.equals("03")) {
//手机号能够了查到身份证号还有车牌号
List<SkRelatedResultInterFace> listResult = new ArrayList<>();
try{
try {
// 手机号码查询机主信息
HttpClient httpClientCar = new HttpClient();
JSONObject paramsCar = new JSONObject();
paramsCar.put("sjhm",objectValue);
JSONObject resultPhone = httpClientCar.doPostJsonHunan(hunanUrl+ ZjhmBysjhm,paramsCar.toJSONString());
if(resultPhone==null){
JSONArray jsonArrayPhone = getJzxx(objectValue, "sjhm");
if (jsonArrayPhone.size() == 0) {
ArrayList<SkRelatedResultInterFace> res = new ArrayList<>();
return MapRestResult.build(200,"没有对应的数据!",0,res);
return MapRestResult.build(200, "没有对应的数据!", 0, res);
}
if(resultPhone!=null){
if("success".equals(resultPhone.getString("status"))){
JSONArray jsonArrayPhone = JSONObject.parseObject(resultPhone.get("data").toString()).getJSONArray("rows");
if(jsonArrayPhone.size()>0){
// 业务受理时间 最新的机主证件号码
jsonArrayPhone = jSONArraySort(jsonArrayPhone,"openDate");
JSONObject obj = jsonArrayPhone.getJSONObject(0);
SkRelatedResultInterFace peopleInfo = new SkRelatedResultInterFace();
peopleInfo.setObjectType("02");
peopleInfo.setObjectValue(obj.getString("idCard"));
if (jsonArrayPhone.size() > 0) {
// 业务受理时间 最新的机主证件号码
jsonArrayPhone = jSONArraySort(jsonArrayPhone, "openDate");
JSONObject obj = jsonArrayPhone.getJSONObject(0);
SkRelatedResultInterFace peopleInfo = new SkRelatedResultInterFace();
peopleInfo.setObjectType("02");
peopleInfo.setObjectValue(obj.getString("idCard"));
// 拿到djrq业务受理时间 最新的机主证件号码再去查询车牌号
HttpClient httpClientPhone = new HttpClient();
JSONObject paramsPhone = new JSONObject();
paramsPhone.put("zjhm",obj.getString("idCard"));
JSONObject resultCar = httpClientPhone.doPostJsonHunan(hunanUrl+ cphmByZjhm,paramsPhone.toJSONString());
if(null!=resultCar){ // 解析返回结果
if("success".equals(resultCar.getString("status"))){
JSONArray jsonArrayCar = JSONObject.parseObject(resultCar.get("data").toString()).getJSONArray("rows");
if(jsonArrayCar.size()>0){
for(int i=0;i<jsonArrayCar.size();i++){
JSONObject objPhone = jsonArrayCar.getJSONObject(i);
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("01");
phoneInfo.setObjectValue(objPhone.getString("hphm"));
listResult.add(phoneInfo);
}
}
// 拿到djrq业务受理时间 最新的机主证件号码再去查询车牌号
HttpClient httpClientPhone = new HttpClient();
JSONObject paramsPhone = new JSONObject();
paramsPhone.put("zjhm", obj.getString("idCard"));
JSONObject resultCar = httpClientPhone.doPostJsonHunan(hunanUrl + cphmByZjhm, paramsPhone.toJSONString());
if (null != resultCar) { // 解析返回结果
if ("success".equals(resultCar.getString("status"))) {
JSONArray jsonArrayCar = JSONObject.parseObject(resultCar.get("data").toString()).getJSONArray("rows");
if (jsonArrayCar.size() > 0) {
for (int i = 0; i < jsonArrayCar.size(); i++) {
JSONObject objPhone = jsonArrayCar.getJSONObject(i);
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("01");
phoneInfo.setObjectValue(objPhone.getString("hphm"));
listResult.add(phoneInfo);
}
}
SkRelatedResultInterFace self = new SkRelatedResultInterFace();
self.setObjectType(objectType);
self.setObjectValue(objectValue);
listResult.add(self);
peopleInfo.setChildren(listResult);
// 返回结果数据 与前端一致
List<SkRelatedResultVO> newList = new ArrayList<>();
SkRelatedResultVO skRelatedResultVO = new SkRelatedResultVO();
skRelatedResultVO.setObjecttype(objectType);
skRelatedResultVO.setObjectvalue(objectValue);
skRelatedResultVO.setResult(JSON.toJSONString(peopleInfo));
newList.add(skRelatedResultVO);
return MapRestResult.build(200,"成功获取关联信息!",1,newList);
}
}
SkRelatedResultInterFace self = new SkRelatedResultInterFace();
self.setObjectType(objectType);
self.setObjectValue(objectValue);
listResult.add(self);
peopleInfo.setChildren(listResult);
// 返回结果数据 与前端一致
List<SkRelatedResultVO> newList = new ArrayList<>();
SkRelatedResultVO skRelatedResultVO = new SkRelatedResultVO();
skRelatedResultVO.setObjecttype(objectType);
skRelatedResultVO.setObjectvalue(objectValue);
skRelatedResultVO.setResult(JSON.toJSONString(peopleInfo));
newList.add(skRelatedResultVO);
return MapRestResult.build(200, "成功获取关联信息!", 1, newList);
}
}catch (Exception e){
return MapRestResult.error("关联关系接口错误!"+e);
} catch (Exception e) {
return MapRestResult.error("关联关系接口错误!" + e);
}
}else if(objectType.equals("02")){
} else if (objectType.equals("02")) {
List<SkRelatedResultInterFace> listResult = new ArrayList<>();
try {
//身份证号查询出来车牌号还有手机号
if(null==objectValue){
if (null == objectValue) {
return MapRestResult.error("无法查询此标识号值");
}
// 机主
HttpClient httpClientPhone = new HttpClient();
JSONObject paramsPhone = new JSONObject();
paramsPhone.put("zjhm",objectValue);
JSONObject resultPhone = httpClientPhone.doPostJsonHunan(hunanUrl+ SjxxByzjhm,paramsPhone.toJSONString());
if(null!=resultPhone){ // 解析返回结果
if("success".equals(resultPhone.getString("status"))){
JSONArray jsonArray = JSONObject.parseObject(resultPhone.get("data").toString()).getJSONArray("rows");
if(jsonArray.size()>0){
for(int i=0;i<jsonArray.size();i++){
JSONObject obj = jsonArray.getJSONObject(i);
if(Arrays.asList("1","0","2").contains(obj.getString("status"))) {// 用户状态(1:在用,0:欠费停机,2:停机,3:注销,9:其它)
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("03");
phoneInfo.setObjectValue(obj.getString("phoneNo"));
listResult.add(phoneInfo);
}
}
// 拿到手机号11位
if(listResult.size()>0){
listResult = listResult.stream().filter(sms -> (
sms.getObjectValue().length()==11)).collect(Collectors.toList()); }
// 解析返回结果
JSONArray jsonArrayPhone = getJzxx(objectValue, "zjhm");
if (jsonArrayPhone.size() > 0) {
for (int i = 0; i < jsonArrayPhone.size(); i++) {
JSONObject obj = jsonArrayPhone.getJSONObject(i);
if (Arrays.asList("1", "0", "2").contains(obj.getString("status"))) {// 用户状态(1:在用,0:欠费停机,2:停机,3:注销,9:其它)
SkRelatedResultInterFace phoneInfo = new SkRelatedResultInterFace();
phoneInfo.setObjectType("03");
phoneInfo.setObjectValue(obj.getString("phoneNo"));
listResult.add(phoneInfo);
}
}
// 拿到手机号11位
if (listResult.size() > 0) {
listResult = listResult.stream().filter(sms -> (
sms.getObjectValue().length() == 11)).collect(Collectors.toList());
}
}
// 车主
HttpClient httpClientCar = new HttpClient();
JSONObject paramsCar = new JSONObject();
paramsCar.put("zjhm",objectValue);
JSONObject resultCar = httpClientCar.doPostJsonHunan(hunanUrl+ cphmByZjhm,paramsCar.toJSONString());
if(null!=resultCar){ // 解析返回结果
if("success".equals(resultCar.getString("status"))){
paramsCar.put("zjhm", objectValue);
JSONObject resultCar = httpClientCar.doPostJsonHunan(hunanUrl + cphmByZjhm, paramsCar.toJSONString());
if (null != resultCar) { // 解析返回结果
if ("success".equals(resultCar.getString("status"))) {
JSONArray jsonArray = JSONObject.parseObject(resultCar.get("data").toString()).getJSONArray("rows");
if(jsonArray.size()>0){
for(int i=0;i<jsonArray.size();i++){
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
SkRelatedResultInterFace carInfo = new SkRelatedResultInterFace();
carInfo.setObjectType("01");
......@@ -217,7 +206,7 @@ public class GlgxInterface {
}
}
if(listResult.size()>0){
if (listResult.size() > 0) {
SkRelatedResultInterFace self = new SkRelatedResultInterFace();
self.setObjectType(objectType);
self.setObjectValue(objectValue);
......@@ -229,28 +218,29 @@ public class GlgxInterface {
skRelatedResultVO.setObjectvalue(objectValue);
skRelatedResultVO.setResult(JSON.toJSONString(self));
newList.add(skRelatedResultVO);
return MapRestResult.build(200,"成功获取关联信息!",1,newList);
return MapRestResult.build(200, "成功获取关联信息!", 1, newList);
}
} catch (Exception e) {
e.printStackTrace();
return MapRestResult.error("关联关系接口错误!"+e);
return MapRestResult.error("关联关系接口错误!" + e);
}
}else{
} else {
return MapRestResult.error("无法查询此标识号类型");
}
ArrayList<SkRelatedResultInterFace> res = new ArrayList<>();
return MapRestResult.build(200,"成功获取关联关系信息(无数据)!",0, res);
return MapRestResult.build(200, "成功获取关联关系信息(无数据)!", 0, res);
}
/**
* 功能描述: JSONArray根据时间字段排序
* @author FengChaoTao
* @date 2022/4/6 18:06
*
* @param
* @return json
* @author FengChaoTao
* @date 2022/4/6 18:06
*/
public static JSONArray jSONArraySort(JSONArray json,String zd){
if(json.size()==0){
public static JSONArray jSONArraySort(JSONArray json, String zd) {
if (json.size() == 0) {
return json;
}
List<Object> list = json.stream().sorted((d1, d2) -> {
......@@ -259,8 +249,8 @@ public class GlgxInterface {
//先把Object转为JSONObject,这样就可以用r1.get("需要排序的字段名")获取到某个字段值
JSONObject r1 = (JSONObject) JSONObject.toJSON(d1);
JSONObject r2 = (JSONObject) JSONObject.toJSON(d2);
Date dt1 = format.parse(objTurnStr(r1.get(zd)));
Date dt2 = format.parse(objTurnStr(r2.get(zd)));
Date dt1 = format.parse(String.valueOf(r1.get(zd)));
Date dt2 = format.parse(String.valueOf(r2.get(zd)));
return Long.compare(dt2.getTime(), dt1.getTime());
} catch (Exception e) {
e.printStackTrace();
......@@ -279,4 +269,230 @@ public class GlgxInterface {
return null;
}
}
// 机主网技
public JSONArray getJzxx(String objectValue, String type) throws Exception {
String redisKey = "SK:PHONE:" + objectValue;
if (redisTemplate.hasKey(redisKey)) {
String str = redisTemplate.opsForValue().get(redisKey);
JSONArray allList = JSONArray.parseArray(str);
return allList;
}
String params = "";
// 证件号拿手机号
if (type.equals("zjhm")) {
params = URLEncoder.encode(initConditionByZjhm(objectValue), "UTF-8");
} else if (type.equals("sjhm")) { // 手机拿证件
params = URLEncoder.encode(initConditionBySjhm(objectValue), "UTF-8");
}
Map<String, String> headers = initHttpXmlHeads();
String bodyJson = "{\n" +
" \"app_header\": {},\n" +
" \"app_body\": {}}";
String resultToken = "";
resultToken = HttpUtil.doPostJsonHunan("http://65.26.10.200:8581/GatewayMsg/proxy/invoke/?SenderID=C43-00000005&ServiceID=S43-00000548&EndUser=李德书,432326197503264512,430000290000&InfoType=KHCX&InfoSet=" + params, headers, bodyJson);
System.out.println(resultToken);
JSONArray list = new JSONArray();
JSONArray listResult = new JSONArray();
if (null != resultToken) {
JSONObject jsonObject = xmltoJson(resultToken);
System.out.println(jsonObject.toJSONString());
JSONObject results = jsonObject.getJSONObject("Result");
JSONObject datas = results.getJSONObject("Datas");
JSONObject ottoMsg = datas.getJSONObject("OTTOMsg");
JSONObject uqs = ottoMsg.getJSONObject("uqs");
JSONObject rs = uqs.getJSONObject("response");
JSONObject userInfos = uqs.getJSONObject("userInfos");
list = userInfos.getJSONArray("userInfo");
}
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
JSONObject job = list.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
// 得到 每个对象中的属性值
// String phoneNo=job.getString("phoneNo"); //电话号码
// String provLatnId=job.getString("provLatnId"); //用户地域标识
// String userName=job.getString("userName"); //用户姓名
// String status=job.getString("status"); //用户状态
// String setuPaddr=job.getString("SETUPaddr"); //安装地址
// String certTypeId=job.getString("certTypeId"); //证件类型
// String idCard=job.getString("idCard"); //证件号码
// String openDate=job.getString("openDate"); //业务受理时间
// String address=job.getString("address");//客户地址
listResult.add(job);
}
}
if (listResult.size() > 0) {
if (redisTemplate.hasKey(redisKey)) {
redisTemplate.delete(redisKey);
}
redisTemplate.opsForValue().set(redisKey, JSON.toJSONString(listResult), 1L, TimeUnit.DAYS);
}
return listResult;
}
private HashMap<String, String> initHttpXmlHeads() {
HashMap<String, String> headParams = new HashMap<String, String>();
headParams.put("Content-Type", "application/json;charset=UTF-8");
headParams.put("sender_id", "C90-43000019");
headParams.put("service_id", "S90-43000025");
headParams.put("timeout", "60");
headParams.put("end_user.name", "%e6%b5%8b%e8%af%95");
headParams.put("end_user.id_card", "431224198909105410");
headParams.put("end_user.department", "430000000000 ");
headParams.put("end_user.certificate", "BH9527");
headParams.put("end_user.device_id", "65.28.39.213");
headParams.put("timestamp", "20200910100312114");
headParams.put("sign", "1e2de989cd49f72bde081f84a4b2c47a;1614653654000");
return headParams;
}
/**
* 手机号码机主查询参数,证件号码查询
*
* @param zjhm
* @return
*/
private String initConditionByZjhm(String zjhm) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>KHCX_65.28.39.173_20200825172913_1111</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"KHCX\" carrier=\"YD\">YDKHCX</DbSource><Fields Count=\"1\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>idCard</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + zjhm + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
/**
* 手机号码机主查询参数
*
* @param sjhm
* @return
*/
private String initConditionBySjhm(String sjhm) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>KHCX_65.28.39.173_20200825172913_1234</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"KHCX\" carrier=\"YD\">YDKHCX</DbSource><Fields Count=\"1\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>PHONE_NUM</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + sjhm + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
/**
* 将xml转换为JSON对象
*
* @param xml xml字符串
* @return
* @throws Exception
*/
public static JSONObject xmltoJson(String xml) throws Exception {
JSONObject jsonObject = new JSONObject();
Document document = DocumentHelper.parseText(xml);
//获取根节点元素对象
Element root = document.getRootElement();
iterateNodes(root, jsonObject);
return jsonObject;
}
/**
* 遍历元素
*
* @param node 元素
* @param json 将元素遍历完成之后放的JSON对象
*/
@SuppressWarnings("unchecked")
public static void iterateNodes(Element node, JSONObject json) {
//获取当前元素的名称
String nodeName = node.getName();
//判断已遍历的JSON中是否已经有了该元素的名称
if (json.containsKey(nodeName)) {
//该元素在同级下有多个
Object Object = json.get(nodeName);
JSONArray array = null;
if (Object instanceof JSONArray) {
array = (JSONArray) Object;
} else {
array = new JSONArray();
array.add(Object);
}
//获取该元素下所有子元素
List<Element> listElement = node.elements();
if (listElement.isEmpty()) {
//该元素无子元素,获取元素的值
String nodeValue = node.getTextTrim();
array.add(nodeValue);
json.put(nodeName, array);
return;
}
//有子元素
JSONObject newJson = new JSONObject();
//遍历所有子元素
for (Element e : listElement) {
//递归
iterateNodes(e, newJson);
}
array.add(newJson);
json.put(nodeName, array);
return;
}
//该元素同级下第一次遍历
//获取该元素下所有子元素
List<Element> listElement = node.elements();
if (listElement.isEmpty()) {
//该元素无子元素,获取元素的值
String nodeValue = node.getTextTrim();
json.put(nodeName, nodeValue);
return;
}
//有子节点,新建一个JSONObject来存储该节点下子节点的值
JSONObject object = new JSONObject();
//遍历所有一级子节点
for (Element e : listElement) {
//递归
iterateNodes(e, object);
}
json.put(nodeName, object);
return;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment