Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
f7e0b2d6
Commit
f7e0b2d6
authored
Sep 24, 2021
by
李成龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增海康视频对接接口
parent
27d16e8a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
91 additions
and
29 deletions
+91
-29
VideoOriginalController.java
...eejoin/amos/video/controller/VideoOriginalController.java
+7
-1
VideoOriginalDto.java
...ain/java/com/yeejoin/amos/video/dto/VideoOriginalDto.java
+18
-0
EsVideoOriginal.java
...n/java/com/yeejoin/amos/video/entity/EsVideoOriginal.java
+15
-1
VideoOriginalServiceImpl.java
...oin/amos/video/service/impl/VideoOriginalServiceImpl.java
+46
-24
application-dev.properties
...utils-video/src/main/resources/application-dev.properties
+4
-3
application.properties
...oot-utils-video/src/main/resources/application.properties
+1
-0
No files found.
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/controller/VideoOriginalController.java
View file @
f7e0b2d6
...
...
@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
...
...
@@ -16,6 +15,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.video.dto.VideoOriginalDto
;
import
com.yeejoin.amos.video.entity.EsVideoOriginal
;
import
com.yeejoin.amos.video.service.impl.VideoOriginalServiceImpl
;
import
io.swagger.annotations.Api
;
...
...
@@ -59,4 +59,10 @@ public class VideoOriginalController extends BaseController {
public
ResponseModel
<
String
>
videoUrlByIndexCode
(
@PathVariable
String
indexCode
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
qeueryByIndexCode
(
indexCode
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据indexCode获取视频状态"
,
notes
=
"根据indexCode获取视频状态"
)
@GetMapping
(
value
=
"/refresh/status/{indexCode}"
)
public
ResponseModel
<
List
<
EsVideoOriginal
>>
refreshStatusByIndexCode
(
@PathVariable
String
indexCode
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
qeueryStatusByIndexCode
(
indexCode
));
}
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/dto/VideoOriginalDto.java
View file @
f7e0b2d6
package
com
.
yeejoin
.
amos
.
video
.
dto
;
import
org.springframework.data.elasticsearch.annotations.Field
;
import
org.springframework.data.elasticsearch.annotations.FieldType
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
...
...
@@ -29,4 +32,19 @@ public class VideoOriginalDto extends BaseDto {
@ApiModelProperty
(
value
=
"视频厂商类型"
)
private
String
type
;
/**
* 视频IP
*/
@ApiModelProperty
(
value
=
"视频IP"
)
private
String
ip
;
/**
* 视频port
*/
@ApiModelProperty
(
value
=
"视频Port"
)
private
String
port
;
/**
* 视频状态
*/
@ApiModelProperty
(
value
=
"视频status"
)
private
String
status
;
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/entity/EsVideoOriginal.java
View file @
f7e0b2d6
...
...
@@ -33,7 +33,21 @@ public class EsVideoOriginal {
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
indexCode
;
/**
* 视频IP
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
ip
;
/**
* 视频port
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
port
;
/**
* 视频状态
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
status
;
/**
* 原始数据
*/
...
...
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/service/impl/VideoOriginalServiceImpl.java
View file @
f7e0b2d6
...
...
@@ -19,7 +19,6 @@ import org.springframework.web.client.RestTemplate;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.video.dao.IVideoOriginalRepository
;
...
...
@@ -43,7 +42,6 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
private
RestTemplate
restTemplate
;
@Autowired
private
IVideoOriginalRepository
iVideoOriginalRepository
;
@Value
(
"${biz.hk.video.url}"
)
private
String
hkVideoUrl
;
@Value
(
"${biz.hk.video.APPkey}"
)
...
...
@@ -52,6 +50,8 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
private
String
hkVideoAPPsecret
;
@Value
(
"${biz.hk.video.csv}"
)
private
String
hkVideoCsv
;
@Value
(
"${biz.hk.video.status.csv}"
)
private
String
hkVideoStatusCsv
;
private
final
String
protocol
=
"hls"
;
private
final
static
String
HK
=
"HK"
;
@PostConstruct
...
...
@@ -64,20 +64,10 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
*/
public
Boolean
initEs
(
String
userId
,
String
userName
,
Boolean
db
)
{
iVideoOriginalRepository
.
deleteAll
();
// HttpHeaders headers = new HttpHeaders();
// headers.add("Content-Type", "application/json");
// SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
// factory.setConnectTimeout(30000);
// factory.setReadTimeout(30000);
// restTemplate.setRequestFactory(factory);
String
objectStr
=
new
StringBuilder
().
append
(
"{\"httpMethod\":\"GET\",\"path\":\"/api/resource/v1/csv/downloadcsv/{csvFileName}\",\"headers\":{},\"query\":{},\"parameter\":{\"csvFileName\":\""
)
.
append
(
hkVideoCsv
).
append
(
"\"},\"mock\":false,\"appKey\":\""
).
append
(
hkVideoAPPkey
)
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
// JSONObject obj = JSONObject.parseObject(objectStr);
// HttpEntity<JSONObject> request = new HttpEntity<>(obj, headers); // 组装
// logger.info("开始查询海康视频数据"+objectStr);
// ResponseEntity<String> response = restTemplate.exchange(hkVideoUrl, HttpMethod.POST, request, String.class);
ResponseEntity
<
String
>
response
=
getVideoData
(
objectStr
);
String
ss
=
response
.
getBody
();
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
...
...
@@ -89,6 +79,8 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
String
[]
strstr
=
originalStr
.
split
(
","
);
String
cn
=
strstr
[
0
];
String
indexCode
=
strstr
[
1
];
String
ip
=
strstr
[
9
];
String
port
=
strstr
[
10
];
if
(!
cn
.
equals
(
"cn"
)
&&
!
indexCode
.
equals
(
"indexCode"
))
{
EsVideoOriginal
videoOriginal
=
new
EsVideoOriginal
();
videoOriginal
.
setCn
(
cn
);
...
...
@@ -96,6 +88,8 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
videoOriginal
.
setOriginalData
(
originalStr
);
videoOriginal
.
setRecUserId
(
userId
);
videoOriginal
.
setRecUserName
(
userName
);
videoOriginal
.
setIp
(
ip
);
videoOriginal
.
setPort
(
port
);
videoOriginal
.
setType
(
HK
);
videoOriginal
.
setRecDate
(
DateUtils
.
getDateNowString
());
resultData
.
add
(
videoOriginal
);
...
...
@@ -115,11 +109,13 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
List
<
VideoOriginalDto
>
videoOriginalDtoList
=
new
ArrayList
<
VideoOriginalDto
>();
if
(
cn
.
equals
(
"all"
))
{
Iterable
<
EsVideoOriginal
>
it
=
iVideoOriginalRepository
.
findAll
();
logger
.
info
(
"查询所有HK视频:"
+
it
.
iterator
().
hashCode
());
for
(
EsVideoOriginal
videoOriginal
:
it
)
{
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
}
}
else
{
List
<
EsVideoOriginal
>
videoOriginalList
=
iVideoOriginalRepository
.
findByCnLike
(
cn
);
List
<
EsVideoOriginal
>
videoOriginalList
=
iVideoOriginalRepository
.
findByCnLike
(
cn
);
logger
.
info
(
"查询'"
+
cn
+
"'HK视频:"
+
videoOriginalList
.
size
());
for
(
EsVideoOriginal
videoOriginal
:
videoOriginalList
)
{
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
}
...
...
@@ -130,24 +126,15 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
VideoOriginalDto
videoOriginalDto
=
new
VideoOriginalDto
();
videoOriginalDto
.
setCn
(
videoOriginal
.
getCn
());
videoOriginalDto
.
setIndexCode
(
videoOriginal
.
getIndexCode
());
videoOriginalDto
.
setIp
(
videoOriginal
.
getIp
());
videoOriginalDto
.
setPort
(
videoOriginal
.
getPort
());
videoOriginalDto
.
setType
(
HK
);
return
videoOriginalDto
;
}
public
String
qeueryByIndexCode
(
String
indexCode
)
{
// // TODO Auto-generated method stub
// HttpHeaders headers = new HttpHeaders();
// headers.add("Content-Type", "application/json");
// SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
// factory.setConnectTimeout(30000);
// factory.setReadTimeout(30000);
// restTemplate.setRequestFactory(factory);
String
objectStr
=
new
StringBuilder
().
append
(
"{\"httpMethod\":\"POST\",\"path\":\"/api/video/v1/cameras/previewURLs\",\"headers\":{},\"query\":{},\"parameter\":{},\"body\":{\"indexCode\":\""
)
.
append
(
indexCode
).
append
(
"\",\"netZoneCode\":\"0\",\"transmode\":1,\"streamType\":0,\"protocol\":\""
).
append
(
protocol
).
append
(
"\"},\"contentType\":\"application/json;charset=UTF-8\",\"mock\":false,\"appKey\":\""
).
append
(
hkVideoAPPkey
)
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
// JSONObject obj = JSONObject.parseObject(objectStr);
// HttpEntity<JSONObject> request = new HttpEntity<>(obj, headers); // 组装
// logger.info("开始查询海康视频播放地址"+objectStr);
// ResponseEntity<String> response = restTemplate.exchange(hkVideoUrl, HttpMethod.POST, request, String.class);
ResponseEntity
<
String
>
response
=
getVideoData
(
objectStr
);
String
ss
=
response
.
getBody
();
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
...
...
@@ -206,4 +193,38 @@ public class VideoOriginalServiceImpl extends BaseService<VideoOriginalDto, Vide
}
return
result
;
}
public
List
<
EsVideoOriginal
>
qeueryStatusByIndexCode
(
String
indexCode
)
{
// TODO Auto-generated method stub
String
objectStr
=
new
StringBuilder
().
append
(
"{\"httpMethod\":\"GET\",\"path\":\"/api/resource/v1/csv/downloadcsv/{csvFileName}\",\"headers\":{},\"query\":{},\"parameter\":{\"csvFileName\":\""
)
.
append
(
hkVideoStatusCsv
).
append
(
"\"},\"mock\":false,\"appKey\":\""
).
append
(
hkVideoAPPkey
)
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
ResponseEntity
<
String
>
response
=
getVideoData
(
objectStr
);
String
ss
=
response
.
getBody
();
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
String
sss
=
obj1
.
get
(
"response"
).
toString
();
logger
.
info
(
"完成海康视频状态数据查询:长度:"
+
sss
.
length
());
String
[]
str
=
sss
.
split
(
"\n"
);
List
<
EsVideoOriginal
>
resultData
=
new
ArrayList
<
EsVideoOriginal
>();
for
(
String
originalStr
:
str
)
{
System
.
out
.
println
(
originalStr
);
String
[]
strstr
=
originalStr
.
split
(
","
);
String
cn
=
strstr
[
8
];
String
indexCodes
=
strstr
[
0
];
String
status
=
strstr
[
2
];
if
(!
cn
.
equals
(
"cn"
)
&&
!
indexCodes
.
equals
(
"indexCode"
)&&
indexCodes
.
equals
(
indexCode
))
{
EsVideoOriginal
videoOriginal
=
new
EsVideoOriginal
();
videoOriginal
.
setCn
(
cn
);
videoOriginal
.
setIndexCode
(
indexCodes
);
videoOriginal
.
setStatus
(
status
);
logger
.
info
(
"返回海康视频状态:"
+
status
);
videoOriginal
.
setType
(
HK
);
videoOriginal
.
setRecDate
(
DateUtils
.
getDateNowString
());
resultData
.
add
(
videoOriginal
);
}
}
logger
.
info
(
"返回海康视频状态对象长度:"
+
resultData
.
size
());
return
resultData
;
}
}
\ No newline at end of file
amos-boot-utils/amos-boot-utils-video/src/main/resources/application-dev.properties
View file @
f7e0b2d6
...
...
@@ -12,7 +12,7 @@ spring.redis.host=172.16.10.85
spring.redis.port
=
6379
spring.redis.password
=
amos2019Redis
## ES properties:
biz.elasticsearch.address
=
172.16.
3.39
biz.elasticsearch.address
=
172.16.
10.66
spring.data.elasticsearch.cluster-name
=
elasticsearch
spring.data.elasticsearch.cluster-nodes
=
${biz.elasticsearch.address}:9300
spring.elasticsearch.rest.uris
=
http://${biz.elasticsearch.address}:9200
...
...
@@ -21,4 +21,5 @@ spring.elasticsearch.rest.uris=http://${biz.elasticsearch.address}:9200
biz.hk.video.url
=
http://11.11.16.12:9017/artemis-web/debug
biz.hk.video.APPkey
=
25907430
biz.hk.video.APPsecret
=
RJj3WmSNdQuyX0yCR02b
biz.hk.video.csv
=
otherDomainCameraFull_1.csv
\ No newline at end of file
biz.hk.video.csv
=
otherDomainCameraFull_1.csv
biz.hk.video.status.csv
=
otherDomainCameraStatusFull_1.csv
\ No newline at end of file
amos-boot-utils/amos-boot-utils-video/src/main/resources/application.properties
View file @
f7e0b2d6
...
...
@@ -2,6 +2,7 @@ spring.application.name=VIDEO
server.servlet.context-path
=
/video
server.port
=
7900
spring.profiles.active
=
dev
logging.config
=
classpath:logback-${spring.profiles.active}.xml
## redis失效时间
redis.cache.failure.time
=
10800
## DB properties:
...
...
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