Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
map-parent
Commits
b0405913
Commit
b0405913
authored
Dec 06, 2022
by
yangyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
关联关系、4G轨迹提交(湖南)
parent
c3cd21b7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
415 additions
and
140 deletions
+415
-140
common/common_utils/src/main/java/com/founder/commonutils/util/HttpUtil.java
+60
-1
service/publicapi/src/main/java/com/founder/publicapi/controller/SkDataOperation/SkTrailController.java
+4
-4
service/publicapi/src/main/java/com/founder/publicapi/controller/SkInterface/GlgxInterface.java
+351
-135
No files found.
common/common_utils/src/main/java/com/founder/commonutils/util/HttpUtil.java
View file @
b0405913
...
...
@@ -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
;
}
}
service/publicapi/src/main/java/com/founder/publicapi/controller/SkDataOperation/SkTrailController.java
View file @
b0405913
...
...
@@ -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
());
...
...
service/publicapi/src/main/java/com/founder/publicapi/controller/SkInterface/GlgxInterface.java
View file @
b0405913
...
...
@@ -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
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment