Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cloud-fb
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
王衍超
cloud-fb
Commits
67822299
Commit
67822299
authored
Mar 26, 2021
by
高晓磊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新建production工程,添加视频播放接口
parent
6065c97b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
528 additions
and
6 deletions
+528
-6
build.gradle
backend/build.war/build.gradle
+1
-0
settings.gradle
backend/build.war/settings.gradle
+1
-0
settings.gradle
backend/settings.gradle
+1
-0
CameraInfoDaoImpl.java
...va/com/xyst/dinas/biz/internal/dao/CameraInfoDaoImpl.java
+7
-2
DinasTypeDaoImpl.java
...ava/com/xyst/dinas/biz/internal/dao/DinasTypeDaoImpl.java
+3
-1
ShipInfoDaoImpl.java
...java/com/xyst/dinas/biz/internal/dao/ShipInfoDaoImpl.java
+3
-1
StationDaoImpl.java
.../java/com/xyst/dinas/biz/internal/dao/StationDaoImpl.java
+3
-2
build.gradle
backend/xyst.dinas.production/build.gradle
+29
-0
settings.gradle
backend/xyst.dinas.production/settings.gradle
+2
-0
CameraPlayConfiguration.java
...xyst/dinas/production/config/CameraPlayConfiguration.java
+28
-0
CameraPlayConstant.java
...om/xyst/dinas/production/constant/CameraPlayConstant.java
+54
-0
CameraPlayDao.java
...ain/java/com/xyst/dinas/production/dao/CameraPlayDao.java
+12
-0
CameraPlayDaoImpl.java
...xyst/dinas/production/internal/dao/CameraPlayDaoImpl.java
+43
-0
CameraPlayServiceImpl.java
...as/production/internal/service/CameraPlayServiceImpl.java
+146
-0
CameraPlayService.java
.../com/xyst/dinas/production/service/CameraPlayService.java
+23
-0
CameraContrUtil.java
.../java/com/xyst/dinas/production/util/CameraContrUtil.java
+0
-0
PTZVo.java
...n/src/main/java/com/xyst/dinas/production/util/PTZVo.java
+61
-0
CameraPlayController.java
...a/com/xyst/dinas/production/web/CameraPlayController.java
+107
-0
spring.factories
...s.production/src/main/resources/META-INF/spring.factories
+4
-0
No files found.
backend/build.war/build.gradle
View file @
67822299
...
@@ -137,6 +137,7 @@ dependencies {
...
@@ -137,6 +137,7 @@ dependencies {
compile
"com.beecode:xyst.dinas.oa:${inzVersion}"
compile
"com.beecode:xyst.dinas.oa:${inzVersion}"
compile
"com.beecode:xyst.dinas.biz:${inzVersion}"
compile
"com.beecode:xyst.dinas.biz:${inzVersion}"
compile
"com.beecode:xyst.dinas.project:${inzVersion}"
compile
"com.beecode:xyst.dinas.project:${inzVersion}"
compile
"com.beecode:xyst.dinas.production:${inzVersion}"
providedRuntime
lib
.
spring_boot_starter_tomcat
providedRuntime
lib
.
spring_boot_starter_tomcat
}
}
...
...
backend/build.war/settings.gradle
View file @
67822299
...
@@ -14,6 +14,7 @@ includeBuild("../") {
...
@@ -14,6 +14,7 @@ includeBuild("../") {
substitute
module
(
'com.beecode:xyst.dinas.oa'
)
with
project
(
':xyst.dinas.oa'
)
substitute
module
(
'com.beecode:xyst.dinas.oa'
)
with
project
(
':xyst.dinas.oa'
)
substitute
module
(
'com.beecode:xyst.dinas.biz'
)
with
project
(
':xyst.dinas.biz'
)
substitute
module
(
'com.beecode:xyst.dinas.biz'
)
with
project
(
':xyst.dinas.biz'
)
substitute
module
(
'com.beecode:xyst.dinas.project'
)
with
project
(
':xyst.dinas.project'
)
substitute
module
(
'com.beecode:xyst.dinas.project'
)
with
project
(
':xyst.dinas.project'
)
substitute
module
(
'com.beecode:xyst.dinas.production'
)
with
project
(
':xyst.dinas.production'
)
}
}
}
}
...
...
backend/settings.gradle
View file @
67822299
...
@@ -12,4 +12,5 @@ include "inz.workflow"
...
@@ -12,4 +12,5 @@ include "inz.workflow"
include
"xyst.dinas.oa"
include
"xyst.dinas.oa"
include
"xyst.dinas.biz"
include
"xyst.dinas.biz"
include
"xyst.dinas.project"
include
"xyst.dinas.project"
include
"xyst.dinas.production"
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/dao/CameraInfoDaoImpl.java
View file @
67822299
...
@@ -9,7 +9,9 @@ import com.beecode.bcp.type.KObject;
...
@@ -9,7 +9,9 @@ import com.beecode.bcp.type.KObject;
import
com.beecode.inz.basis.internal.dao.AbstractBaseDao
;
import
com.beecode.inz.basis.internal.dao.AbstractBaseDao
;
import
com.xyst.dinas.biz.constant.CameraInfoConstant
;
import
com.xyst.dinas.biz.constant.CameraInfoConstant
;
import
com.xyst.dinas.biz.dao.CameraInfoDao
;
import
com.xyst.dinas.biz.dao.CameraInfoDao
;
import
org.apache.commons.lang3.StringUtils
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Order
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.criterion.Restrictions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
...
@@ -56,17 +58,20 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
...
@@ -56,17 +58,20 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
detachedCriteria
.
add
(
Restrictions
.
eq
(
"del"
,
false
));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"del"
,
false
));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
currentLoginRegionalCompany
.
getUuid
(
"id"
)));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
currentLoginRegionalCompany
.
getUuid
(
"id"
)));
detachedCriteria
.
addOrder
(
Order
.
desc
(
"sortOrder"
));
if
(
null
!=
stationId
){
if
(
null
!=
stationId
){
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalStation.id"
,
stationId
));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalStation.id"
,
stationId
));
}
}
if
(
null
!=
watershedId
){
if
(
null
!=
watershedId
){
detachedCriteria
.
add
(
Restrictions
.
eq
(
"watershedId"
,
watershedId
));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"watershedId"
,
watershedId
));
}
}
detachedCriteria
.
add
(
Restrictions
.
like
(
"cameraName"
,
"%"
+
cameraName
+
"%"
));
if
(
StringUtils
.
isNotBlank
(
cameraName
)){
detachedCriteria
.
add
(
Restrictions
.
like
(
"cameraName"
,
"%"
+
cameraName
+
"%"
));
}
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
page
.
setDatas
(
list
);
page
.
setDatas
(
list
);
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
return
page
;
return
page
;
}
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/dao/DinasTypeDaoImpl.java
View file @
67822299
...
@@ -11,6 +11,7 @@ import com.xyst.dinas.biz.constant.DinasTypeConstant;
...
@@ -11,6 +11,7 @@ import com.xyst.dinas.biz.constant.DinasTypeConstant;
import
com.xyst.dinas.biz.dao.DinasOrganizationDao
;
import
com.xyst.dinas.biz.dao.DinasOrganizationDao
;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Order
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.query.NativeQuery
;
import
org.hibernate.query.NativeQuery
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
...
@@ -70,10 +71,11 @@ public class DinasTypeDaoImpl extends AbstractBaseDao implements DinasTypeDao, D
...
@@ -70,10 +71,11 @@ public class DinasTypeDaoImpl extends AbstractBaseDao implements DinasTypeDao, D
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
getCurrentLoginRegionalCompany
().
getUuid
(
"id"
)));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
getCurrentLoginRegionalCompany
().
getUuid
(
"id"
)));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"del"
,
false
));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"del"
,
false
));
detachedCriteria
.
addOrder
(
Order
.
desc
(
"sortOrder"
));
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
page
.
setDatas
(
list
);
page
.
setDatas
(
list
);
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
return
page
;
return
page
;
}
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/dao/ShipInfoDaoImpl.java
View file @
67822299
...
@@ -14,6 +14,7 @@ import com.xyst.dinas.biz.dao.ShipInfoDao;
...
@@ -14,6 +14,7 @@ import com.xyst.dinas.biz.dao.ShipInfoDao;
import
com.xyst.dinas.biz.service.CameraInfoService
;
import
com.xyst.dinas.biz.service.CameraInfoService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Order
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.criterion.Restrictions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
...
@@ -70,10 +71,11 @@ public class ShipInfoDaoImpl extends AbstractBaseDao implements ShipInfoDao, Shi
...
@@ -70,10 +71,11 @@ public class ShipInfoDaoImpl extends AbstractBaseDao implements ShipInfoDao, Shi
if
(
StringUtils
.
isNotBlank
(
shipCodeNum
)){
if
(
StringUtils
.
isNotBlank
(
shipCodeNum
)){
detachedCriteria
.
add
(
Restrictions
.
like
(
"shipCodeNum"
,
"%"
+
shipCodeNum
+
"%"
));
detachedCriteria
.
add
(
Restrictions
.
like
(
"shipCodeNum"
,
"%"
+
shipCodeNum
+
"%"
));
}
}
detachedCriteria
.
addOrder
(
Order
.
desc
(
"sortOrder"
));
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
page
.
setDatas
(
list
);
page
.
setDatas
(
list
);
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
return
page
;
return
page
;
}
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/dao/StationDaoImpl.java
View file @
67822299
...
@@ -10,6 +10,7 @@ import com.xyst.dinas.biz.constant.StationConstant;
...
@@ -10,6 +10,7 @@ import com.xyst.dinas.biz.constant.StationConstant;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
com.xyst.dinas.biz.dao.StationDao
;
import
com.xyst.dinas.biz.dao.StationDao
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Order
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.criterion.Restrictions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
...
@@ -33,7 +34,6 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
...
@@ -33,7 +34,6 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
@Override
@Override
public
Page
<
KObject
>
listStationInfoPaging
(
Page
<
KObject
>
page
,
Integer
stationStatus
)
{
public
Page
<
KObject
>
listStationInfoPaging
(
Page
<
KObject
>
page
,
Integer
stationStatus
)
{
// UUID departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id");
KClass
bean
=
Amino
.
getStaticMetadataContext
().
getBean
(
StationConstant
.
ENTITY
,
KClass
.
class
);
KClass
bean
=
Amino
.
getStaticMetadataContext
().
getBean
(
StationConstant
.
ENTITY
,
KClass
.
class
);
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
DetachedCriteria
detachedCriteria
=
DetachedCriteria
.
forEntityName
(
bean
.
getName
());
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
...
@@ -43,10 +43,11 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
...
@@ -43,10 +43,11 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
}
}
KObject
currentLoginRegionalCompany
=
dinasTypeDao
.
getCurrentLoginRegionalCompany
();
KObject
currentLoginRegionalCompany
=
dinasTypeDao
.
getCurrentLoginRegionalCompany
();
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
currentLoginRegionalCompany
.
getUuid
(
"id"
)));
detachedCriteria
.
add
(
Restrictions
.
eq
(
"regionalCompany.id"
,
currentLoginRegionalCompany
.
getUuid
(
"id"
)));
detachedCriteria
.
addOrder
(
Order
.
desc
(
"sortOrder"
));
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
int
offset
=
page
.
getPageSize
()
*
(
page
.
getPageNo
()
-
1
);
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
List
<
KObject
>
list
=
(
List
<
KObject
>)
template
.
findByCriteria
(
detachedCriteria
,
offset
,
page
.
getPageSize
());
page
.
setDatas
(
list
);
page
.
setDatas
(
list
);
page
.
setTotal
(
template
.
findByCriteria
(
detachedCriteria
).
size
());
return
page
;
return
page
;
}
}
...
...
backend/xyst.dinas.production/build.gradle
0 → 100644
View file @
67822299
dependencies
{
compile
lib
.
bcp_import
compile
lib
.
bcp_type
compile
lib
.
bcp_store
compile
lib
.
hibernate_core
compile
lib
.
spring_web
compile
lib
.
spring_boot_autoconfigure
compile
lib
.
jackson_datatype_jdk8
compile
lib
.
jackson_datatype_jsr310
compile
lib
.
json
compile
"com.beecode:bap2.participant:${aminoVersion}"
compile
"com.beecode:bcp.org:${aminoVersion}"
compile
"com.beecode:bap2.department:${aminoVersion}"
compile
"com.beecode:bap2.staff:${aminoVersion}"
compile
'com.deepoove:poi-tl:1.5.0'
compile
project
(
":inz.common"
)
compile
project
(
":inz.query"
)
compile
project
(
":inz.workflow"
)
compile
project
(
":inz.basis"
)
compile
project
(
":xyst.dinas.project"
)
compile
project
(
":xyst.dinas.biz"
)
testCompile
lib
.
amino_boot_web
testCompile
lib
.
mysql_connector
}
backend/xyst.dinas.production/settings.gradle
0 → 100644
View file @
67822299
rootProject
.
name
=
'xyst.dinas.production'
\ No newline at end of file
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/config/CameraPlayConfiguration.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
config
;
import
com.xyst.dinas.production.dao.CameraPlayDao
;
import
com.xyst.dinas.production.internal.dao.CameraPlayDaoImpl
;
import
com.xyst.dinas.production.internal.service.CameraPlayServiceImpl
;
import
com.xyst.dinas.production.service.CameraPlayService
;
import
com.xyst.dinas.production.web.CameraPlayController
;
import
org.springframework.context.annotation.Bean
;
public
class
CameraPlayConfiguration
{
//CameraPlay相关bean配置
@Bean
public
CameraPlayDao
CameraPlayDao
()
{
return
new
CameraPlayDaoImpl
();
}
@Bean
public
CameraPlayService
CameraPlayService
(){
return
new
CameraPlayServiceImpl
();
}
@Bean
public
CameraPlayController
CameraPlayController
(){
return
new
CameraPlayController
();
}
}
\ No newline at end of file
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/constant/CameraPlayConstant.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
constant
;
/**
* @author scol
*/
public
interface
CameraPlayConstant
{
String
YS7_URL
=
"https://open.ys7.com"
;
String
YS7_LAPP_URL
=
"/api/lapp/device"
;
/**
* 获取摄像头列表的url
*/
String
CAMERA_LIST_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/camera/list"
;
/**
* 抓图url
*/
String
CAPTURE_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/capture"
;
/**
* 移动到预置点的URL
*/
String
MOVE_PRESET_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/preset/move"
;
/**
* 添加预置点url
*/
String
ADD_PRESET_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/preset/add"
;
/**
* 清除预置点url
*/
String
CLEAR_PRESET_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/preset/clear"
;
/**
* 云台控制开始url
*/
String
CONTR_PIZ_START_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/ptz/start"
;
/**
* 云台控制结束URL
*/
String
CONTR_PIZ_STOP_URL
=
YS7_URL
+
YS7_LAPP_URL
+
"/ptz/stop"
;
/**
* 获取本地视频文件url
*/
String
VIDEO_FILE_URL
=
"https://open.ys7.com/api/lapp/video/by/time"
;
/**
* 获取TOKEN URL
*/
String
TOKEN_URL
=
YS7_URL
+
"/api/lapp/token/get"
;
}
\ No newline at end of file
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/dao/CameraPlayDao.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
dao
;
import
com.beecode.bap.attachment.common.Page
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.dao.BaseDao
;
import
java.util.List
;
import
java.util.UUID
;
public
interface
CameraPlayDao
extends
BaseDao
{
}
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/internal/dao/CameraPlayDaoImpl.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
internal
.
dao
;
import
com.beecode.amino.core.Amino
;
import
com.beecode.bap.attachment.common.Page
;
import
com.beecode.bcp.core.context.AminoContextHolder
;
import
com.beecode.bcp.type.KClass
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.internal.dao.AbstractBaseDao
;
import
com.xyst.dinas.biz.constant.CameraInfoConstant
;
import
com.xyst.dinas.biz.dao.CameraInfoDao
;
import
com.xyst.dinas.production.dao.CameraPlayDao
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Restrictions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.orm.hibernate5.HibernateTemplate
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.UUID
;
public
class
CameraPlayDaoImpl
extends
AbstractBaseDao
implements
CameraPlayDao
,
CameraInfoConstant
{
/**
* 抽象方法,需要实现类提供HibernateTemplate
*
* @return
*/
@Override
protected
HibernateTemplate
getHibernateTemplate
()
{
return
null
;
}
/**
* 抽象方法,需要实现类提供当前ModelName
*
* @return
*/
@Override
protected
String
getModelName
()
{
return
null
;
}
}
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/internal/service/CameraPlayServiceImpl.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
internal
.
service
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
com.xyst.dinas.biz.constant.CameraInfoConstant
;
import
com.xyst.dinas.biz.dao.CameraInfoDao
;
import
com.xyst.dinas.production.service.CameraPlayService
;
import
com.xyst.dinas.production.util.CameraContrUtil
;
import
com.xyst.dinas.production.util.PTZVo
;
import
org.apache.commons.lang3.StringUtils
;
import
org.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.UUID
;
import
java.util.concurrent.TimeUnit
;
/**
* @author scol
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
CameraPlayServiceImpl
implements
CameraPlayService
{
@Autowired
private
CameraInfoDao
cameraInfoDao
;
@Autowired
@Qualifier
(
"com.beecode.inz.basis.config.AuthcConfiguration.tenantRedisTemplate"
)
RedisTemplate
<
String
,
String
>
redisTemplate
;
@Override
public
ResponseObj
ptzControl
(
UUID
cameraId
,
int
direction
,
int
speed
,
int
op
)
{
KObject
cameraInfo
=
cameraInfoDao
.
load
(
CameraInfoConstant
.
ENTITY
,
cameraId
);
//判断是否可以拍摄
if
(
cameraInfo
.
getBigInteger
(
"cameraType"
)
==
null
)
{
return
ResponseObj
.
error
(
"cameraType错误!此类型不支持操作"
);
}
if
(!
"1"
.
equals
(
cameraInfo
.
getString
(
"aggType"
)))
{
return
ResponseObj
.
error
(
"aggType错误!此类型不支持操作"
);
}
if
((
cameraInfo
.
getBoolean
(
"isShare"
)))
{
return
ResponseObj
.
error
(
"分享的camera不支持操作"
);
}
if
(
cameraInfo
.
getString
(
"deviceSerial"
)
==
null
)
{
return
ResponseObj
.
error
(
"无效的设备序列号"
);
}
String
accessToken
=
getEZVIZToken
(
cameraId
);
String
deviceSerial
=
cameraInfo
.
get
(
"deviceSerial"
).
toString
();
Object
channel_No
=
cameraInfo
.
get
(
"channel_no"
);
Integer
channelNo
=
null
;
if
(
channel_No
!=
null
)
{
channelNo
=
Integer
.
parseInt
(
channel_No
.
toString
());
}
PTZVo
pztVo
;
if
(
op
==
1
)
{
pztVo
=
CameraContrUtil
.
ptzControlStart
(
deviceSerial
,
accessToken
,
direction
,
speed
,
channelNo
);
}
else
{
pztVo
=
CameraContrUtil
.
ptzControlStop
(
deviceSerial
,
accessToken
,
direction
,
channelNo
);
}
return
ResponseObj
.
success
(
"请查看"
,
pztVo
);
}
@Override
public
String
getEZVIZToken
(
UUID
accountId
)
{
KObject
cameraInfo
=
cameraInfoDao
.
load
(
CameraInfoConstant
.
ENTITY
,
accountId
);
KObject
cameraAccount
=
cameraInfo
.
get
(
"cameraAccount"
);
String
appKey
=
cameraAccount
.
getString
(
"buildinParamFir"
);
String
appSecret
=
cameraAccount
.
getString
(
"buildinParamSec"
);
String
tokenRedisKey
=
CameraContrUtil
.
getYsTokenRedisKey
(
appKey
,
appSecret
);
String
token
=
redisTemplate
.
opsForValue
().
get
(
tokenRedisKey
);
if
(
StringUtils
.
isNotBlank
(
token
))
{
return
token
;
}
else
{
JSONObject
map
=
null
;
try
{
map
=
CameraContrUtil
.
getToken
(
appKey
,
appSecret
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
map
!=
null
&&
map
.
get
(
"accessToken"
)
!=
null
)
{
String
accessToken
=
map
.
get
(
"accessToken"
).
toString
();
if
(
map
.
get
(
"expireTime"
)
!=
null
)
{
long
millis
=
Long
.
parseLong
(
map
.
get
(
"expireTime"
).
toString
());
//token缓存时间为7天,根据过期时间设置redis缓存
redisTemplate
.
opsForValue
().
set
(
tokenRedisKey
,
accessToken
,
(
millis
-
System
.
currentTimeMillis
()),
TimeUnit
.
MILLISECONDS
);
}
return
accessToken
;
}
}
return
null
;
}
@Override
public
String
capturePic
(
UUID
id
,
String
deviceSerial
,
String
channelNo
)
{
String
token
=
getEZVIZToken
(
id
);
if
(
StringUtils
.
isBlank
(
channelNo
))
{
channelNo
=
"1"
;
}
String
ysPicRedisKey
=
CameraContrUtil
.
getYsPicRedisKey
(
deviceSerial
,
channelNo
);
String
ysPicUrl
=
redisTemplate
.
opsForValue
().
get
(
ysPicRedisKey
);
if
(
StringUtils
.
isNotBlank
(
ysPicUrl
))
{
return
ysPicUrl
;
}
else
{
PTZVo
ptzVo
=
null
;
ptzVo
=
CameraContrUtil
.
capturePic
(
deviceSerial
,
Integer
.
valueOf
(
channelNo
),
token
);
if
(
ptzVo
.
getIsSuccess
())
{
//萤石云建议4分钟调用1次,并存储图片url2小时,这边每隔1小时抓图,避免调用次数过多,也不会查询到的图片太近
redisTemplate
.
opsForValue
().
set
(
ysPicRedisKey
,
ptzVo
.
getPicUrl
(),
60
*
60
*
1000
,
TimeUnit
.
MILLISECONDS
);
return
ptzVo
.
getPicUrl
();
}
}
return
null
;
}
@Override
public
JSONObject
getCameraVideFileInfo
(
UUID
id
,
Long
startDate
,
Long
endDate
,
Integer
recType
)
{
KObject
cameraInfo
=
cameraInfoDao
.
load
(
CameraInfoConstant
.
ENTITY
,
id
);
String
token
=
getEZVIZToken
(
id
);
return
CameraContrUtil
.
getCameraVideFileInfo
(
token
,
cameraInfo
.
getString
(
"deviceSerial"
),
Integer
.
valueOf
(
cameraInfo
.
getString
(
"channelNo"
)),
startDate
,
endDate
,
recType
);
}
@Override
public
ResponseObj
getCameraStatus
(
UUID
id
)
{
KObject
cameraInfo
=
cameraInfoDao
.
load
(
CameraInfoConstant
.
ENTITY
,
id
);
String
token
=
getEZVIZToken
(
id
);
JSONObject
pztVo
=
CameraContrUtil
.
getCameraInfo
(
token
,
cameraInfo
.
getString
(
"deviceSerial"
),
Integer
.
valueOf
(
cameraInfo
.
getString
(
"channelNo"
)));
if
(
pztVo
!=
null
)
{
if
(
null
!=
pztVo
.
getString
(
"code"
)
&&
"10007"
.
equals
(
pztVo
.
getString
(
"code"
)))
{
return
ResponseObj
.
error
(
"接口调用次数达到上限"
);
}
return
ResponseObj
.
success
(
"查询成功"
,
pztVo
.
toString
());
}
else
{
return
ResponseObj
.
error
(
"无效的设备序列号"
);
}
}
}
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/service/CameraPlayService.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
service
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
org.json.JSONObject
;
import
java.util.UUID
;
public
interface
CameraPlayService
{
ResponseObj
ptzControl
(
UUID
cameraId
,
int
direction
,
int
speed
,
int
op
)
;
String
getEZVIZToken
(
UUID
accountId
)
;
String
capturePic
(
UUID
id
,
String
deviceSerial
,
String
channelNo
)
;
JSONObject
getCameraVideFileInfo
(
UUID
id
,
Long
startDate
,
Long
endDate
,
Integer
recType
)
;
ResponseObj
getCameraStatus
(
UUID
id
)
;
}
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/util/CameraContrUtil.java
0 → 100644
View file @
67822299
This diff is collapsed.
Click to expand it.
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/util/PTZVo.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
util
;
import
java.io.Serializable
;
public
class
PTZVo
implements
Serializable
{
/** 云台返回值 */
private
static
final
long
serialVersionUID
=
-
2039961655880584732L
;
private
boolean
isSuccess
;
private
String
code
;
private
String
msg
;
private
String
picUrl
;
private
Integer
index
;
public
Integer
getIndex
()
{
return
index
;
}
public
void
setIndex
(
Integer
index
)
{
this
.
index
=
index
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
public
String
getMsg
()
{
return
msg
;
}
public
void
setPicUrl
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
}
public
String
getPicUrl
()
{
return
picUrl
;
}
public
void
setIsSuccess
(
boolean
isSuccess
)
{
this
.
isSuccess
=
isSuccess
;
}
public
boolean
getIsSuccess
()
{
return
isSuccess
;
}
}
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/web/CameraPlayController.java
0 → 100644
View file @
67822299
package
com
.
xyst
.
dinas
.
production
.
web
;
import
com.beecode.bap.attachment.common.Page
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
com.xyst.dinas.biz.service.CameraInfoService
;
import
com.xyst.dinas.biz.service.StationService
;
import
com.xyst.dinas.production.service.CameraPlayService
;
import
org.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
/**
* @author scol
*/
@RestController
()
@RequestMapping
(
value
=
"/production/cameraPlay"
)
public
class
CameraPlayController
{
@Autowired
private
CameraInfoService
cameraInfoService
;
@Autowired
private
CameraPlayService
cameraPlayService
;
@Autowired
private
StationService
stationService
;
@GetMapping
(
"/getStationCameraTree"
)
public
ResponseObj
<
ArrayList
<
Map
<
String
,
Object
>>>
getStationCameraTree
()
throws
Exception
{
Page
<
KObject
>
kObjectPage
=
new
Page
<>();
kObjectPage
.
setPageNo
(
1
);
kObjectPage
.
setPageSize
(
1000
);
Page
<
KObject
>
stationPage
=
stationService
.
queryByPaging
(
kObjectPage
,
1
);
HashMap
<
String
,
Object
>
stringObjectHashMap
;
ArrayList
<
Map
<
String
,
Object
>>
maps
=
new
ArrayList
<>();
for
(
KObject
data
:
stationPage
.
getDatas
())
{
stringObjectHashMap
=
new
HashMap
<>();
stringObjectHashMap
.
put
(
"name"
,
data
.
getString
(
"stationName"
));
stringObjectHashMap
.
put
(
"id"
,
data
.
getUuid
(
"id"
));
List
<
KObject
>
datas
=
cameraInfoService
.
queryByPaging
(
kObjectPage
,
data
.
getUuid
(
"id"
),
null
,
null
).
getDatas
();
for
(
KObject
kObject
:
datas
)
{
String
picUrl
=
cameraPlayService
.
capturePic
(
kObject
.
getUuid
(
"id"
),
kObject
.
getString
(
"deviceSerial"
),
kObject
.
getString
(
"channelNo"
));
kObject
.
set
(
"videoUrl"
,
picUrl
);
}
stringObjectHashMap
.
put
(
"cameras"
,
datas
);
maps
.
add
(
stringObjectHashMap
);
}
return
ResponseObj
.
response
(
200
,
"查询成功"
,
maps
);
}
/**
* @return
* @Description 云台控制
* @author zhouzy-a
* @date 2017年5月22日 下午1:47:41
* @direction 操作命令:0-上,1-下,2-左,3-右,4-左上,5-左下,6-右上,7-右下,8-放大,9-缩小,10-近焦距,11-远焦距
* @speed 云台速度:0-慢,1-适中,2-快
* @speed 控制操作:1-开始转动,2-停止转动
*/
@GetMapping
(
"/ptzControl"
)
public
ResponseObj
ptzControl
(
UUID
cameraId
,
int
direction
,
int
speed
,
int
op
)
{
Map
<
String
,
Object
>
retMap
=
new
HashMap
<>();
retMap
.
put
(
"status"
,
"00"
);
try
{
//调用后台服务
return
cameraPlayService
.
ptzControl
(
cameraId
,
direction
,
speed
,
op
);
}
catch
(
Exception
e
)
{
return
ResponseObj
.
error
(
"控制失败"
);
}
}
/**
*得到萤石云token
* @return
*/
@GetMapping
(
"/getEZVIZToken/{id}"
)
public
ResponseObj
getEZVIZToken
(
@PathVariable
(
"id"
)
UUID
id
)
{
//调用后台服务
String
token
=
cameraPlayService
.
getEZVIZToken
(
id
);
return
ResponseObj
.
success
(
token
);
}
/**
*获取萤石云文件信息
* @return
*/
@GetMapping
(
"/getCameraVideFileInfo"
)
public
ResponseObj
getCameraVideFileInfo
(
@RequestParam
(
"id"
)
UUID
id
,
@RequestParam
(
value
=
"startDate"
,
required
=
false
)
Long
startDate
,
@RequestParam
(
value
=
"endDate"
,
required
=
false
)
Long
endDate
,
@RequestParam
(
value
=
"recType"
,
required
=
false
)
Integer
recType
)
{
return
ResponseObj
.
success
(
""
,
cameraPlayService
.
getCameraVideFileInfo
(
id
,
startDate
,
endDate
,
recType
));
}
/**
*获取萤石云状态
* @return
*/
@GetMapping
(
"/getCameraStatus/{id}"
)
public
ResponseObj
getCameraStatus
(
@PathVariable
(
"id"
)
UUID
id
)
{
return
cameraPlayService
.
getCameraStatus
(
id
);
}
}
backend/xyst.dinas.production/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
67822299
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xyst.dinas.production.config.CameraPlayConfiguration
\ 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