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
01afe459
Commit
01afe459
authored
Sep 06, 2021
by
李成龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交对接视频模块
parent
659da7b2
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
209 additions
and
123 deletions
+209
-123
ElasticSearchClientConfig.java
.../yeejoin/amos/video/config/ElasticSearchClientConfig.java
+9
-12
VideoOriginalController.java
...eejoin/amos/video/controller/VideoOriginalController.java
+14
-7
IVideoOriginalRepository.java
.../com/yeejoin/amos/video/dao/IVideoOriginalRepository.java
+3
-3
VideoOriginalDto.java
...ain/java/com/yeejoin/amos/video/dto/VideoOriginalDto.java
+4
-3
EsVideoOriginal.java
...n/java/com/yeejoin/amos/video/entity/EsVideoOriginal.java
+54
-0
VideoOriginal.java
...ain/java/com/yeejoin/amos/video/entity/VideoOriginal.java
+21
-22
IVideoOriginalService.java
...com/yeejoin/amos/video/service/IVideoOriginalService.java
+5
-0
VideoOriginalServiceImpl.java
...oin/amos/video/service/impl/VideoOriginalServiceImpl.java
+99
-76
No files found.
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/config/ElasticSearchClientConfig.java
View file @
01afe459
...
@@ -29,12 +29,12 @@ public class ElasticSearchClientConfig {
...
@@ -29,12 +29,12 @@ public class ElasticSearchClientConfig {
@Qualifier
(
"highLevelClient"
)
@Qualifier
(
"highLevelClient"
)
public
RestHighLevelClient
restHighLevelClient
()
{
public
RestHighLevelClient
restHighLevelClient
()
{
String
auth
=
Base64
.
encodeBase64String
((
"elastic:es123456"
).
getBytes
());
try
{
try
{
String
url
=
uris
.
replace
(
"http://"
,
""
);
String
url
=
uris
.
replace
(
"http://"
,
""
);
final
String
[]
parts
=
StringUtils
.
split
(
url
,
":"
);
final
String
[]
parts
=
StringUtils
.
split
(
url
,
":"
);
HttpHost
httpHost
=
new
HttpHost
(
parts
[
0
],
Integer
.
parseInt
(
parts
[
1
]),
"http"
);
HttpHost
httpHost
=
new
HttpHost
(
parts
[
0
],
Integer
.
parseInt
(
parts
[
1
]),
"http"
);
RestClientBuilder
builder
=
RestClient
.
builder
(
httpHost
);
RestClientBuilder
builder
=
RestClient
.
builder
(
httpHost
);
//增加安全配置,使用kibana,勿删
final
CredentialsProvider
credentialsProvider
=
new
BasicCredentialsProvider
();
final
CredentialsProvider
credentialsProvider
=
new
BasicCredentialsProvider
();
credentialsProvider
.
setCredentials
(
AuthScope
.
ANY
,
new
UsernamePasswordCredentials
(
"elastic"
,
"es123456"
));
credentialsProvider
.
setCredentials
(
AuthScope
.
ANY
,
new
UsernamePasswordCredentials
(
"elastic"
,
"es123456"
));
builder
.
setRequestConfigCallback
(
new
RestClientBuilder
.
RequestConfigCallback
()
{
builder
.
setRequestConfigCallback
(
new
RestClientBuilder
.
RequestConfigCallback
()
{
...
@@ -46,17 +46,14 @@ public class ElasticSearchClientConfig {
...
@@ -46,17 +46,14 @@ public class ElasticSearchClientConfig {
.
setSocketTimeout
(
6000
*
1000
);
// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
.
setSocketTimeout
(
6000
*
1000
);
// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
}
}
});
// 调整最大重试超时时间(默认为30秒).setMaxRetryTimeoutMillis(60000);
});
// 调整最大重试超时时间(默认为30秒).setMaxRetryTimeoutMillis(60000);
builder
.
setHttpClientConfigCallback
(
new
RestClientBuilder
.
HttpClientConfigCallback
()
{
//增加安全配置,使用kibana,勿删
@Override
// builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public
HttpAsyncClientBuilder
customizeHttpClient
(
HttpAsyncClientBuilder
httpClientBuilder
)
{
// @Override
httpClientBuilder
.
disableAuthCaching
();
// public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return
httpClientBuilder
.
setDefaultCredentialsProvider
(
credentialsProvider
);
// httpClientBuilder.disableAuthCaching();
}
// return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
});
// }
// });
// builder.setDefaultHeaders(new BasicHeader[] {
// new BasicHeader("Authorization","Basic"+auth)
// });
return
new
RestHighLevelClient
(
builder
);
return
new
RestHighLevelClient
(
builder
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
IllegalStateException
(
"Invalid ES nodes "
+
"property '"
+
uris
+
"'"
,
e
);
throw
new
IllegalStateException
(
"Invalid ES nodes "
+
"property '"
+
uris
+
"'"
,
e
);
...
...
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/controller/VideoOriginalController.java
View file @
01afe459
...
@@ -5,6 +5,8 @@ import java.util.List;
...
@@ -5,6 +5,8 @@ import java.util.List;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
...
@@ -13,9 +15,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...
@@ -13,9 +15,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.video.dao.impl.VideoOriginalServiceImpl
;
import
com.yeejoin.amos.video.dto.VideoOriginalDto
;
import
com.yeejoin.amos.video.dto.VideoOriginalDto
;
import
com.yeejoin.amos.video.
entity.VideoOrigina
l
;
import
com.yeejoin.amos.video.
service.impl.VideoOriginalServiceImp
l
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -34,14 +35,20 @@ public class VideoOriginalController extends BaseController {
...
@@ -34,14 +35,20 @@ public class VideoOriginalController extends BaseController {
@Autowired
@Autowired
private
VideoOriginalServiceImpl
videoOriginalServiceImpl
;
private
VideoOriginalServiceImpl
videoOriginalServiceImpl
;
@
Ge
tMapping
(
"/hk/init"
)
@
Pos
tMapping
(
"/hk/init"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"
GET"
,
value
=
"构建海康原始视频数据"
,
notes
=
"构建海康原始视频数据
"
)
@ApiOperation
(
httpMethod
=
"
POST"
,
value
=
"构建海康原始视频数据"
,
notes
=
"构建海康原始视频数据,db参数为true时,同时保存到数据库
"
)
public
ResponseModel
<
Boolean
>
hkInit
Data
(
)
{
public
ResponseModel
<
Boolean
>
hkInit
EsData
(
Boolean
db
)
{
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
initEs
(
""
,
""
));
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
initEs
(
""
,
""
,
db
));
}
}
// @PostMapping("/hk/db/init")
// @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth=false)
// @ApiOperation(httpMethod = "POST", value = "构建海康原始视频数据", notes = "构建海康原始视频数据")
// public ResponseModel<Boolean> hkInitDBData() {
// return ResponseHelper.buildResponse(videoOriginalServiceImpl.initDB("", ""));
// }
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"按视频名称查询视频节点
"
,
notes
=
"按视频名称查询视频节点
"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"按视频名称查询视频节点
'"
,
notes
=
"按视频名称查询视频节点,'all参数为查询所有
"
)
@GetMapping
(
value
=
"/list/video/{cn}"
)
@GetMapping
(
value
=
"/list/video/{cn}"
)
public
ResponseModel
<
List
<
VideoOriginalDto
>>
videoBySimilar
(
@PathVariable
String
cn
)
throws
Exception
{
public
ResponseModel
<
List
<
VideoOriginalDto
>>
videoBySimilar
(
@PathVariable
String
cn
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
qeueryByKeys
(
cn
));
return
ResponseHelper
.
buildResponse
(
videoOriginalServiceImpl
.
qeueryByKeys
(
cn
));
...
...
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/dao/IVideoOriginalRepository.java
View file @
01afe459
...
@@ -5,7 +5,7 @@ import java.util.List;
...
@@ -5,7 +5,7 @@ import java.util.List;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
com.yeejoin.amos.video.entity.VideoOriginal
;
import
com.yeejoin.amos.video.entity.
Es
VideoOriginal
;
/**
/**
* 模板表接口类
* 模板表接口类
...
@@ -14,8 +14,8 @@ import com.yeejoin.amos.video.entity.VideoOriginal;
...
@@ -14,8 +14,8 @@ import com.yeejoin.amos.video.entity.VideoOriginal;
* @date 2021-09-01
* @date 2021-09-01
*/
*/
@Repository
@Repository
public
interface
IVideoOriginalRepository
extends
PagingAndSortingRepository
<
VideoOriginal
,
String
>
{
public
interface
IVideoOriginalRepository
extends
PagingAndSortingRepository
<
Es
VideoOriginal
,
String
>
{
List
<
VideoOriginal
>
findByCnLike
(
String
cn
);
List
<
Es
VideoOriginal
>
findByCnLike
(
String
cn
);
}
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/dto/VideoOriginalDto.java
View file @
01afe459
package
com
.
yeejoin
.
amos
.
video
.
dto
;
package
com
.
yeejoin
.
amos
.
video
.
dto
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
/**
/**
* 模板表
* 模板表
...
@@ -27,5 +27,6 @@ public class VideoOriginalDto extends BaseDto {
...
@@ -27,5 +27,6 @@ public class VideoOriginalDto extends BaseDto {
@ApiModelProperty
(
value
=
"视频代码"
)
@ApiModelProperty
(
value
=
"视频代码"
)
private
String
indexCode
;
private
String
indexCode
;
@ApiModelProperty
(
value
=
"视频厂商类型"
)
private
String
type
;
}
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/entity/EsVideoOriginal.java
0 → 100644
View file @
01afe459
package
com
.
yeejoin
.
amos
.
video
.
entity
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.elasticsearch.annotations.Document
;
import
org.springframework.data.elasticsearch.annotations.Field
;
import
org.springframework.data.elasticsearch.annotations.FieldType
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 模板表
*
* @author system_generator
* @date 2021-09-01
*/
@Data
@Accessors
(
chain
=
true
)
@Document
(
indexName
=
"video"
,
type
=
"videoOriginal"
,
shards
=
1
,
replicas
=
0
)
public
class
EsVideoOriginal
{
/** 主键 */
@Id
private
String
sequenceNbr
;
/**
* 视频名称
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
cn
;
/**
* 视频代码
*/
@Field
(
type
=
FieldType
.
Text
)
private
String
indexCode
;
/**
* 原始数据
*/
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
private
String
originalData
;
/**
* 视频厂商类型
*/
@Field
(
type
=
FieldType
.
Keyword
,
index
=
false
)
private
String
type
;
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
private
String
recDate
;
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
private
String
recUserId
;
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
private
String
recUserName
;
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/entity/VideoOriginal.java
View file @
01afe459
package
com
.
yeejoin
.
amos
.
video
.
entity
;
package
com
.
yeejoin
.
amos
.
video
.
entity
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.elasticsearch.annotations.Document
;
import
org.springframework.data.elasticsearch.annotations.Field
;
import
org.springframework.data.elasticsearch.annotations.FieldType
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
/**
/**
...
@@ -17,35 +16,35 @@ import lombok.experimental.Accessors;
...
@@ -17,35 +16,35 @@ import lombok.experimental.Accessors;
* @date 2021-09-01
* @date 2021-09-01
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@Document
(
indexName
=
"video"
,
type
=
"videoOriginal"
,
shards
=
1
,
replicas
=
0
)
@TableName
(
"cb_video_original"
)
public
class
VideoOriginal
{
@ApiModel
(
value
=
"VideoOriginal对象"
,
description
=
"视频原始数据"
)
/** 主键 */
public
class
VideoOriginal
extends
BaseEntity
{
@Id
/**
private
String
sequenceNbr
;
*
*/
private
static
final
long
serialVersionUID
=
1L
;
/**
/**
* 视频名称
* 视频名称
*/
*/
@
Field
(
type
=
FieldType
.
Keyword
)
@
ApiModelProperty
(
value
=
"视频名称"
)
private
String
cn
;
private
String
cn
;
/**
/**
* 视频代码
* 视频代码
*/
*/
@
Field
(
type
=
FieldType
.
Text
)
@
ApiModelProperty
(
value
=
"视频名称"
)
private
String
indexCode
;
private
String
indexCode
;
/**
/**
* 原始数据
* 原始数据
*/
*/
@
Field
(
type
=
FieldType
.
Text
,
index
=
false
)
@
ApiModelProperty
(
value
=
"视频名称"
)
private
String
originalData
;
private
String
originalData
;
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
/**
private
String
recDate
;
* 视频厂商类型
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
*/
private
String
recUserId
;
@ApiModelProperty
(
value
=
"视频厂商类型"
)
@Field
(
type
=
FieldType
.
Text
,
index
=
false
)
private
String
type
;
private
String
recUserName
;
}
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/service/IVideoOriginalService.java
0 → 100644
View file @
01afe459
package
com
.
yeejoin
.
amos
.
video
.
service
;
public
interface
IVideoOriginalService
{
}
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/
dao
/impl/VideoOriginalServiceImpl.java
→
amos-boot-utils/amos-boot-utils-video/src/main/java/com/yeejoin/amos/video/
service
/impl/VideoOriginalServiceImpl.java
View file @
01afe459
package
com
.
yeejoin
.
amos
.
video
.
dao
.
impl
;
package
com
.
yeejoin
.
amos
.
video
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Spliterator
;
import
java.util.stream.StreamSupport
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
org.apache.commons.compress.utils.Lists
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.FuzzyQueryBuilder
;
import
org.elasticsearch.index.query.MatchQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.elasticsearch.core.ElasticsearchOperations
;
import
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate
;
import
org.springframework.data.elasticsearch.core.SearchHit
;
import
org.springframework.data.elasticsearch.core.SearchHits
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQuery
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpMethod
;
...
@@ -29,14 +16,18 @@ import org.springframework.http.ResponseEntity;
...
@@ -29,14 +16,18 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
com.alibaba.fastjson.JSONObject
;
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.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.video.dao.IVideoOriginalRepository
;
import
com.yeejoin.amos.video.dao.IVideoOriginalRepository
;
import
com.yeejoin.amos.video.dto.VideoOriginalDto
;
import
com.yeejoin.amos.video.dto.VideoOriginalDto
;
import
com.yeejoin.amos.video.entity.EsVideoOriginal
;
import
com.yeejoin.amos.video.entity.VideoOriginal
;
import
com.yeejoin.amos.video.entity.VideoOriginal
;
import
com.yeejoin.amos.video.mapper.VideoOriginalMapper
;
//import net.sf.json.JSONObject
;
import
com.yeejoin.amos.video.service.IVideoOriginalService
;
/**
/**
* 模板表服务实现类
* 模板表服务实现类
...
@@ -45,15 +36,13 @@ import com.yeejoin.amos.video.entity.VideoOriginal;
...
@@ -45,15 +36,13 @@ import com.yeejoin.amos.video.entity.VideoOriginal;
* @date 2021-09-01
* @date 2021-09-01
*/
*/
@Service
@Service
public
class
VideoOriginalServiceImpl
{
public
class
VideoOriginalServiceImpl
extends
BaseService
<
VideoOriginalDto
,
VideoOriginal
,
VideoOriginalMapper
>
implements
IVideoOriginalService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
VideoOriginalServiceImpl
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
VideoOriginalServiceImpl
.
class
);
@Autowired
@Autowired
private
RestTemplate
restTemplate
;
private
RestTemplate
restTemplate
;
@Autowired
@Autowired
private
IVideoOriginalRepository
iVideoOriginalRepository
;
private
IVideoOriginalRepository
iVideoOriginalRepository
;
@Autowired
private
ElasticsearchRestTemplate
elasticsearchTemplate
;
@Value
(
"${biz.hk.video.url}"
)
@Value
(
"${biz.hk.video.url}"
)
private
String
hkVideoUrl
;
private
String
hkVideoUrl
;
...
@@ -64,124 +53,157 @@ public class VideoOriginalServiceImpl {
...
@@ -64,124 +53,157 @@ public class VideoOriginalServiceImpl {
@Value
(
"${biz.hk.video.csv}"
)
@Value
(
"${biz.hk.video.csv}"
)
private
String
hkVideoCsv
;
private
String
hkVideoCsv
;
private
final
String
protocol
=
"hls"
;
private
final
String
protocol
=
"hls"
;
private
final
static
String
HK
=
"HK"
;
@PostConstruct
@PostConstruct
public
void
init
()
{
public
void
init
()
{
// 初始化ES,重建索引
// initEs();
}
}
/**
/**
* 重建索引
* 重建索引
* @param db
*/
*/
public
Boolean
initEs
(
String
userId
,
String
userName
)
{
public
Boolean
initEs
(
String
userId
,
String
userName
,
Boolean
db
)
{
// iVideoOriginalRepository.deleteAll();
iVideoOriginalRepository
.
deleteAll
();
HttpHeaders
headers
=
new
HttpHeaders
();
// HttpHeaders headers = new HttpHeaders();
headers
.
add
(
"Content-Type"
,
"application/json"
);
// headers.add("Content-Type", "application/json");
SimpleClientHttpRequestFactory
factory
=
new
SimpleClientHttpRequestFactory
();
// SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory
.
setConnectTimeout
(
30000
);
// factory.setConnectTimeout(30000);
factory
.
setReadTimeout
(
30000
);
// factory.setReadTimeout(30000);
restTemplate
.
setRequestFactory
(
factory
);
// restTemplate.setRequestFactory(factory);
// String objectStr = "{\"httpMethod\":\"GET\",\"path\":\"/api/resource/v1/csv/downloadcsv/{csvFileName}\",\"headers\":{},\"query\":{},\"parameter\":{\"csvFileName\":\"otherDomainCameraFull_1.csv\"},\"mock\":false,\"appKey\":\"25907430\",\"appSecret\":\"RJj3WmSNdQuyX0yCR02b\"}";
String
objectStr
=
new
StringBuilder
().
append
(
String
objectStr
=
new
StringBuilder
().
append
(
"{\"httpMethod\":\"GET\",\"path\":\"/api/resource/v1/csv/downloadcsv/{csvFileName}\",\"headers\":{},\"query\":{},\"parameter\":{\"csvFileName\":\""
)
"{\"httpMethod\":\"GET\",\"path\":\"/api/resource/v1/csv/downloadcsv/{csvFileName}\",\"headers\":{},\"query\":{},\"parameter\":{\"csvFileName\":\""
)
.
append
(
hkVideoCsv
).
append
(
"\"},\"mock\":false,\"appKey\":\""
).
append
(
hkVideoAPPkey
)
.
append
(
hkVideoCsv
).
append
(
"\"},\"mock\":false,\"appKey\":\""
).
append
(
hkVideoAPPkey
)
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
JSONObject
obj
=
JSONObject
.
parseObject
(
objectStr
);
// JSONObject obj = JSONObject.parseObject(objectStr);
HttpEntity
<
JSONObject
>
request
=
new
HttpEntity
<>(
obj
,
headers
);
// 组装
// HttpEntity<JSONObject> request = new HttpEntity<>(obj, headers); // 组装
logger
.
info
(
"开始查询海康视频数据"
+
objectStr
);
// logger.info("开始查询海康视频数据"+objectStr);
ResponseEntity
<
String
>
response
=
restTemplate
.
exchange
(
hkVideoUrl
,
HttpMethod
.
POST
,
request
,
String
.
class
);
// ResponseEntity<String> response = restTemplate.exchange(hkVideoUrl, HttpMethod.POST, request, String.class);
ResponseEntity
<
String
>
response
=
getVideoData
(
objectStr
);
String
ss
=
response
.
getBody
();
String
ss
=
response
.
getBody
();
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
String
sss
=
obj1
.
get
(
"response"
).
toString
();
String
sss
=
obj1
.
get
(
"response"
).
toString
();
logger
.
info
(
"完成海康视频数据查询:长度:"
+
sss
.
length
());
logger
.
info
(
"完成海康视频数据查询:长度:"
+
sss
.
length
());
String
[]
str
=
sss
.
split
(
"\n"
);
String
[]
str
=
sss
.
split
(
"\n"
);
List
<
VideoOriginal
>
resultData
=
new
ArrayList
<
VideoOriginal
>();
List
<
EsVideoOriginal
>
resultData
=
new
ArrayList
<
Es
VideoOriginal
>();
for
(
String
originalStr
:
str
)
{
for
(
String
originalStr
:
str
)
{
String
[]
strstr
=
originalStr
.
split
(
","
);
String
[]
strstr
=
originalStr
.
split
(
","
);
String
cn
=
strstr
[
0
];
String
cn
=
strstr
[
0
];
String
indexCode
=
strstr
[
1
];
String
indexCode
=
strstr
[
1
];
if
(!
cn
.
equals
(
"cn"
)
&&
!
indexCode
.
equals
(
"indexCode"
))
{
if
(!
cn
.
equals
(
"cn"
)
&&
!
indexCode
.
equals
(
"indexCode"
))
{
VideoOriginal
videoOriginal
=
new
VideoOriginal
();
EsVideoOriginal
videoOriginal
=
new
Es
VideoOriginal
();
videoOriginal
.
setCn
(
cn
);
videoOriginal
.
setCn
(
cn
);
videoOriginal
.
setIndexCode
(
indexCode
);
videoOriginal
.
setIndexCode
(
indexCode
);
videoOriginal
.
setOriginalData
(
originalStr
);
videoOriginal
.
setOriginalData
(
originalStr
);
videoOriginal
.
setRecUserId
(
userId
);
videoOriginal
.
setRecUserId
(
userId
);
videoOriginal
.
setRecUserName
(
userName
);
videoOriginal
.
setRecUserName
(
userName
);
videoOriginal
.
setType
(
HK
);
videoOriginal
.
setRecDate
(
DateUtils
.
getDateNowString
());
videoOriginal
.
setRecDate
(
DateUtils
.
getDateNowString
());
resultData
.
add
(
videoOriginal
);
resultData
.
add
(
videoOriginal
);
// iVideoOriginalRepository.save(videoOriginal);
}
}
}
}
logger
.
info
(
"开始搜索引擎中存储"
+
resultData
.
size
());
logger
.
info
(
"开始搜索引擎中存储"
+
resultData
.
size
());
iVideoOriginalRepository
.
saveAll
(
resultData
);
iVideoOriginalRepository
.
saveAll
(
resultData
);
logger
.
info
(
"完成搜索引擎中存储"
);
logger
.
info
(
"完成搜索引擎中存储"
);
boolean
isSuccess
=
this
.
saveToDB
(
str
,
userId
,
userName
,
db
);
if
(!
isSuccess
)
{
logger
.
info
(
"搜索引擎存储视频原始数据失败"
);
}
return
true
;
return
true
;
}
}
public
List
<
VideoOriginalDto
>
qeueryByKeys
(
String
cn
)
{
public
List
<
VideoOriginalDto
>
qeueryByKeys
(
String
cn
)
{
// TODO Auto-generated method stub
// List<VideoOriginal> videoOriginalList = new ArrayList<VideoOriginal>();
// MatchQueryBuilder builder = QueryBuilders.matchQuery("cn", cn);
//// FuzzyQueryBuilder builder = QueryBuilders.fuzzyQuery("cn", cn);
// NativeSearchQuery searchQuery = new NativeSearchQuery(builder);
// SearchHits<VideoOriginal> searchHits = elasticsearchTemplate.search(searchQuery, VideoOriginal.class);
// BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// BoolQueryBuilder qb4 = QueryBuilders.boolQuery()
// .should(QueryBuilders.termQuery("cn", cn));
// boolMust.must(qb4);
// NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
// //过滤条件
// .withQuery(boolMust);
// SearchHits<VideoOriginal> searchHits = elasticsearchTemplate.search(queryBuilder.build(), VideoOriginal.class);
// for (SearchHit searchHit : searchHits.getSearchHits())
// {
// System.out.println(searchHit.getContent());
// JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
// VideoOriginal videoOriginals = (VideoOriginal) JSONObject.toJavaObject(jsonObject,VideoOriginal.class);
// videoOriginalList.add(videoOriginals);
// }
List
<
VideoOriginalDto
>
videoOriginalDtoList
=
new
ArrayList
<
VideoOriginalDto
>();
List
<
VideoOriginalDto
>
videoOriginalDtoList
=
new
ArrayList
<
VideoOriginalDto
>();
if
(
cn
.
equals
(
"all"
))
{
if
(
cn
.
equals
(
"all"
))
{
Iterable
<
VideoOriginal
>
it
=
iVideoOriginalRepository
.
findAll
();
Iterable
<
Es
VideoOriginal
>
it
=
iVideoOriginalRepository
.
findAll
();
for
(
VideoOriginal
videoOriginal
:
it
)
{
for
(
Es
VideoOriginal
videoOriginal
:
it
)
{
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
}
}
}
else
{
}
else
{
List
<
VideoOriginal
>
videoOriginalList
=
iVideoOriginalRepository
.
findByCnLike
(
cn
);
List
<
Es
VideoOriginal
>
videoOriginalList
=
iVideoOriginalRepository
.
findByCnLike
(
cn
);
for
(
VideoOriginal
videoOriginal
:
videoOriginalList
)
{
for
(
Es
VideoOriginal
videoOriginal
:
videoOriginalList
)
{
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
videoOriginalDtoList
.
add
(
transDto
(
videoOriginal
));
}
}
}
}
return
videoOriginalDtoList
;
return
videoOriginalDtoList
;
}
}
private
VideoOriginalDto
transDto
(
VideoOriginal
videoOriginal
){
private
VideoOriginalDto
transDto
(
Es
VideoOriginal
videoOriginal
){
VideoOriginalDto
videoOriginalDto
=
new
VideoOriginalDto
();
VideoOriginalDto
videoOriginalDto
=
new
VideoOriginalDto
();
videoOriginalDto
.
setCn
(
videoOriginal
.
getCn
());
videoOriginalDto
.
setCn
(
videoOriginal
.
getCn
());
videoOriginalDto
.
setIndexCode
(
videoOriginal
.
getIndexCode
());
videoOriginalDto
.
setIndexCode
(
videoOriginal
.
getIndexCode
());
videoOriginalDto
.
setType
(
HK
);
return
videoOriginalDto
;
return
videoOriginalDto
;
}
}
public
String
qeueryByIndexCode
(
String
indexCode
)
{
public
String
qeueryByIndexCode
(
String
indexCode
)
{
// TODO Auto-generated method stub
//
// TODO Auto-generated method stub
HttpHeaders
headers
=
new
HttpHeaders
();
//
HttpHeaders headers = new HttpHeaders();
headers
.
add
(
"Content-Type"
,
"application/json"
);
//
headers.add("Content-Type", "application/json");
SimpleClientHttpRequestFactory
factory
=
new
SimpleClientHttpRequestFactory
();
//
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory
.
setConnectTimeout
(
30000
);
//
factory.setConnectTimeout(30000);
factory
.
setReadTimeout
(
30000
);
//
factory.setReadTimeout(30000);
restTemplate
.
setRequestFactory
(
factory
);
//
restTemplate.setRequestFactory(factory);
String
objectStr
=
new
StringBuilder
().
append
(
"{\"httpMethod\":\"POST\",\"path\":\"/api/video/v1/cameras/previewURLs\",\"headers\":{},\"query\":{},\"parameter\":{},\"body\":{\"indexCode\":\""
)
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
(
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
();
.
append
(
"\",\"appSecret\":\""
).
append
(
hkVideoAPPsecret
).
append
(
"\"}"
).
toString
();
JSONObject
obj
=
JSONObject
.
parseObject
(
objectStr
);
// JSONObject obj = JSONObject.parseObject(objectStr);
HttpEntity
<
JSONObject
>
request
=
new
HttpEntity
<>(
obj
,
headers
);
// 组装
// HttpEntity<JSONObject> request = new HttpEntity<>(obj, headers); // 组装
logger
.
info
(
"开始查询海康视频数据"
+
objectStr
);
// logger.info("开始查询海康视频播放地址"+objectStr);
ResponseEntity
<
String
>
response
=
restTemplate
.
exchange
(
hkVideoUrl
,
HttpMethod
.
POST
,
request
,
String
.
class
);
// ResponseEntity<String> response = restTemplate.exchange(hkVideoUrl, HttpMethod.POST, request, String.class);
ResponseEntity
<
String
>
response
=
getVideoData
(
objectStr
);
String
ss
=
response
.
getBody
();
String
ss
=
response
.
getBody
();
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
JSONObject
obj1
=
JSONObject
.
parseObject
(
ss
);
String
sss
=
obj1
.
get
(
"response"
).
toString
();
String
sss
=
obj1
.
get
(
"response"
).
toString
();
String
ssss
=
JSONObject
.
parseObject
(
sss
).
get
(
"data"
).
toString
();
String
ssss
=
JSONObject
.
parseObject
(
sss
).
get
(
"data"
).
toString
();
String
sssss
=
JSONObject
.
parseObject
(
ssss
).
get
(
"url"
).
toString
();
String
sssss
=
JSONObject
.
parseObject
(
ssss
).
get
(
"url"
).
toString
();
logger
.
info
(
"完成海康视频
数据
查询:长度:"
+
sss
.
length
());
logger
.
info
(
"完成海康视频
播放地址
查询:长度:"
+
sss
.
length
());
return
sssss
;
return
sssss
;
}
}
private
ResponseEntity
<
String
>
getVideoData
(
String
urlParam
){
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"Content-Type"
,
"application/json"
);
SimpleClientHttpRequestFactory
factory
=
new
SimpleClientHttpRequestFactory
();
factory
.
setConnectTimeout
(
30000
);
factory
.
setReadTimeout
(
30000
);
restTemplate
.
setRequestFactory
(
factory
);
JSONObject
obj
=
JSONObject
.
parseObject
(
urlParam
);
HttpEntity
<
JSONObject
>
request
=
new
HttpEntity
<>(
obj
,
headers
);
// 组装
logger
.
info
(
"开始查询海康视频数据"
+
urlParam
);
ResponseEntity
<
String
>
response
=
restTemplate
.
exchange
(
hkVideoUrl
,
HttpMethod
.
POST
,
request
,
String
.
class
);
return
response
;
}
private
boolean
saveToDB
(
String
[]
str
,
String
userId
,
String
userName
,
boolean
db
)
{
List
<
VideoOriginal
>
resultData
=
new
ArrayList
<
VideoOriginal
>();
for
(
String
originalStr
:
str
)
{
String
[]
strstr
=
originalStr
.
split
(
","
);
String
cn
=
strstr
[
0
];
String
indexCode
=
strstr
[
1
];
if
(!
cn
.
equals
(
"cn"
)
&&
!
indexCode
.
equals
(
"indexCode"
))
{
VideoOriginal
videoOriginal
=
new
VideoOriginal
();
videoOriginal
.
setCn
(
cn
);
videoOriginal
.
setIndexCode
(
indexCode
);
videoOriginal
.
setOriginalData
(
originalStr
);
videoOriginal
.
setRecUserId
(
userId
);
videoOriginal
.
setRecUserName
(
userName
);
videoOriginal
.
setType
(
HK
);
videoOriginal
.
setRecDate
(
DateUtils
.
getDateNow
());
resultData
.
add
(
videoOriginal
);
}
}
boolean
result
=
false
;
if
(
db
)
{
try
{
QueryWrapper
<
VideoOriginal
>
wrapper
=
new
QueryWrapper
<
VideoOriginal
>();
wrapper
.
eq
(
"type"
,
HK
);
boolean
isTrue
=
this
.
remove
(
wrapper
);
if
(
isTrue
)
{
result
=
this
.
saveBatch
(
resultData
);
}
}
catch
(
Exception
e
)
{
// TODO: handle exception
logger
.
error
(
"HK原始视频数据删除失败:"
+
e
);
e
.
printStackTrace
();
}
}
return
result
;
}
}
}
\ No newline at end of file
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