记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
董敬伟
liquidnet-bus-v1
Commits
54a35968
Commit
54a35968
authored
Jan 14, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
人体检测-截图回调
parent
c1694c00
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
119 additions
and
41 deletions
+119
-41
KylinCameraDeviceCallBackVo.java
...net/service/kylin/dto/vo/KylinCameraDeviceCallBackVo.java
+52
-0
KylinCameraController.java
...vice/platform/controller/kylin/KylinCameraController.java
+57
-41
DataUtils.java
.../java/com/liquidnet/service/platform/utils/DataUtils.java
+10
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/KylinCameraDeviceCallBackVo.java
0 → 100644
View file @
54a35968
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* <p>
* 人流量排队检测摄像头截图回调
* </p>
*
* @author jiangxiulong
* @since 2022-01-14
*/
@Data
@ApiModel
public
class
KylinCameraDeviceCallBackVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7824619649886426754L
;
private
String
OssObject
;
private
String
SnapshotUrl
;
private
String
Event
;
private
String
StreamName
;
private
String
CreateTime
;
private
String
Height
;
private
String
DomainName
;
private
String
OssEndpoint
;
private
String
AppName
;
private
String
Width
;
private
String
OssBucket
;
private
String
Size
;
/*{
"OssObject":"��������ؽ�ͼ/live/20220101202301070001.jpg",
"SnapshotUrl":"http://zhengzai-live.oss-cn-beijing.aliyuncs.com/��������ؽ�ͼ/live/20220101202301070001.jpg",
"Event":"Snapshot",
"StreamName":"20220101202301070001",
"CreateTime":"2022-01-10T11:35:21Z",
"Height":"1080",
"DomainName":"image.zhengzai.tv",
"OssEndpoint":"oss-cn-beijing.aliyuncs.com",
"AppName":"live",
"Width":"1920",
"OssBucket":"zhengzai-live",
"Size":"115657"
}*/
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/kylin/KylinCameraController.java
View file @
54a35968
...
...
@@ -24,6 +24,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo
;
import
com.liquidnet.service.kylin.dto.vo.KylinCameraDeviceCallBackVo
;
import
com.liquidnet.service.kylin.dto.vo.KylinCameraDevicesVo
;
import
com.liquidnet.service.kylin.entity.KylinCamera
;
import
com.liquidnet.service.kylin.entity.KylinCameraRecord
;
...
...
@@ -89,6 +90,15 @@ public class KylinCameraController {
log
.
info
(
"接收截图回调请求:[siteType=[{}], fieldId=[{}], requestBody=[{}]"
,
siteType
,
fieldId
,
requestBody
);
// TODO: 2022/1/10 jxltodo 验签
ObjectMapper
configure
=
JsonUtils
.
OM
().
configure
(
MapperFeature
.
ACCEPT_CASE_INSENSITIVE_PROPERTIES
,
true
);
KylinCameraDeviceCallBackVo
backVo
=
configure
.
readValue
(
JsonUtils
.
toJson
(
requestBody
),
new
TypeReference
<
KylinCameraDeviceCallBackVo
>()
{
}
);
KylinCamera
cameraDeviceInfo
=
dataUtils
.
getCameraDeviceInfo
(
backVo
.
getStreamName
());
this
.
getPersonNum
(
cameraDeviceInfo
);
return
"success"
;
}
catch
(
Exception
e
)
{
log
.
error
(
"截图回调Exception:[msg={}, e={}]"
,
e
.
getMessage
(),
e
);
...
...
@@ -195,50 +205,56 @@ public class KylinCameraController {
log
.
info
(
"人体识别-查询设备列表->耗时:{}"
,
(
startTime2
-
startTime1
)
+
"毫秒"
);
if
(!
CollectionUtils
.
isEmpty
(
cameraList
))
{
for
(
KylinCamera
kylinCamera
:
cameraList
)
{
try
{
InputStream
inputStream
=
ViapiFileUtilAdvance
.
buildInputStream
(
kylinCamera
.
getImgUrl
());
ViapiFileUtilAdvance
fileUtils
=
ViapiFileUtilAdvance
.
getInstance
(
accessKeyId
,
accessKeySecret
,
"cn-beijing"
);
String
ossTempFileUrl
=
fileUtils
.
upload
(
inputStream
);
long
startTime3
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-upload->耗时:{}"
,
(
startTime3
-
startTime2
)
+
"毫秒"
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"cn-shanghai"
,
accessKeyId
,
accessKeySecret
);
IAcsClient
client
=
new
DefaultAcsClient
(
profile
);
DetectPedestrianRequest
request
=
new
DetectPedestrianRequest
();
request
.
setImageURL
(
ossTempFileUrl
);
DetectPedestrianResponse
response
=
client
.
getAcsResponse
(
request
);
long
startTime4
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-client->耗时:{}"
,
(
startTime4
-
startTime3
)
+
"毫秒"
);
List
<
DetectPedestrianResponse
.
Data
.
Element
>
elementList
=
response
.
getData
().
getElements
();
long
count
=
elementList
.
stream
().
filter
(
r
->
r
.
getScore
()
>
0.5
).
count
();
long
count1
=
elementList
.
stream
().
filter
(
r
->
r
.
getScore
()
<=
0.5
).
count
();
log
.
info
(
"人体识别-count1:{}"
,
count1
);
long
startTime5
=
System
.
currentTimeMillis
();
KylinCameraRecord
cameraRecord
=
KylinCameraRecord
.
getNew
();
cameraRecord
.
setCameraRecordId
(
IDGenerator
.
nextSnowId
());
cameraRecord
.
setCameraId
(
kylinCamera
.
getCameraId
());
cameraRecord
.
setPersonNum
((
int
)
count
);
recordMapper
.
insert
(
cameraRecord
);
/*LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("kylin_camera_record.insert"));
sqlsDataA.add(new Object[]{
IDGenerator.nextSnowId(), kylinCamera.getCameraId(), (int) count
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_ANSWER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));*/
long
startTime6
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-MapperInsert->耗时:{}"
,
(
startTime6
-
startTime5
)
+
"毫秒"
);
dataUtils
.
setCameraDevicePersonNum
(
kylinCamera
.
getCameraId
(),
count
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取设备列表Exception:[msg={}, e={}]"
,
e
.
getMessage
(),
e
);
}
this
.
getPersonNum
(
kylinCamera
);
}
}
return
ResponseDto
.
success
();
}
private
void
getPersonNum
(
KylinCamera
kylinCamera
)
{
try
{
long
startTime22
=
System
.
currentTimeMillis
();
InputStream
inputStream
=
ViapiFileUtilAdvance
.
buildInputStream
(
kylinCamera
.
getImgUrl
());
ViapiFileUtilAdvance
fileUtils
=
ViapiFileUtilAdvance
.
getInstance
(
accessKeyId
,
accessKeySecret
,
"cn-beijing"
);
String
ossTempFileUrl
=
fileUtils
.
upload
(
inputStream
);
long
startTime3
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-upload->耗时:{}"
,
(
startTime3
-
startTime22
)
+
"毫秒"
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"cn-shanghai"
,
accessKeyId
,
accessKeySecret
);
IAcsClient
client
=
new
DefaultAcsClient
(
profile
);
DetectPedestrianRequest
request
=
new
DetectPedestrianRequest
();
request
.
setImageURL
(
ossTempFileUrl
);
DetectPedestrianResponse
response
=
client
.
getAcsResponse
(
request
);
long
startTime4
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-client->耗时:{}"
,
(
startTime4
-
startTime3
)
+
"毫秒"
);
List
<
DetectPedestrianResponse
.
Data
.
Element
>
elementList
=
response
.
getData
().
getElements
();
long
count
=
elementList
.
stream
().
filter
(
r
->
r
.
getScore
()
>
0.5
).
count
();
long
count1
=
elementList
.
stream
().
filter
(
r
->
r
.
getScore
()
<=
0.5
).
count
();
log
.
info
(
"人体识别-count1:{}"
,
count1
);
long
startTime5
=
System
.
currentTimeMillis
();
KylinCameraRecord
cameraRecord
=
KylinCameraRecord
.
getNew
();
cameraRecord
.
setCameraRecordId
(
IDGenerator
.
nextSnowId
());
cameraRecord
.
setCameraId
(
kylinCamera
.
getCameraId
());
cameraRecord
.
setPersonNum
((
int
)
count
);
recordMapper
.
insert
(
cameraRecord
);
/*LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("kylin_camera_record.insert"));
sqlsDataA.add(new Object[]{
IDGenerator.nextSnowId(), kylinCamera.getCameraId(), (int) count
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_ANSWER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));*/
long
startTime6
=
System
.
currentTimeMillis
();
log
.
info
(
"人体识别-MapperInsert->耗时:{}"
,
(
startTime6
-
startTime5
)
+
"毫秒"
);
dataUtils
.
setCameraDevicePersonNum
(
kylinCamera
.
getCameraId
(),
count
);
}
catch
(
Exception
e
)
{
log
.
error
(
"人体识别Exception:[msg={}, e={}]"
,
e
.
getMessage
(),
e
);
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/DataUtils.java
View file @
54a35968
...
...
@@ -474,4 +474,14 @@ public class DataUtils {
String
redisKey
=
KylinRedisConst
.
CAMERA_DEVICE_GB_INFO
.
concat
(
camera
.
getGbId
());
redisDataSourceUtil
.
getRedisKylinUtil
().
set
(
redisKey
,
camera
);
}
public
KylinCamera
getCameraDeviceInfo
(
String
streamName
)
{
String
redisKey
=
KylinRedisConst
.
CAMERA_DEVICE_GB_INFO
.
concat
(
streamName
);
Object
obj
=
redisDataSourceUtil
.
getRedisKylinUtil
().
get
(
redisKey
);
if
(
null
==
obj
)
{
return
null
;
}
else
{
return
(
KylinCamera
)
obj
;
}
}
}
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