Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
ypt_mgw_local
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
苏星豪
ypt_mgw_local
Commits
aef9ceb9
提交
aef9ceb9
authored
12月 16, 2023
作者:
蒋代伟
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
智慧门店 客流量统计
上级
15438a56
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
51 行增加
和
5 行删除
+51
-5
urls.py
datacenter/urls.py
+3
-3
models.py
smartdevice/models.py
+1
-0
views.py
smartdevice/views.py
+47
-2
没有找到文件。
datacenter/urls.py
浏览文件 @
aef9ceb9
...
@@ -1359,9 +1359,9 @@ urlpatterns = [
...
@@ -1359,9 +1359,9 @@ urlpatterns = [
url
(
r'^sales/activity/PromotionSeeds_lottery/$'
,
sal_views
.
PromotionSeeds_lottery
),
url
(
r'^sales/activity/PromotionSeeds_lottery/$'
,
sal_views
.
PromotionSeeds_lottery
),
#2023-12-13 智慧门店 海康威视获取视频流
#2023-12-13 智慧门店 海康威视获取视频流
/客流统计
url
(
r'^smartdevice/hikvision/
getLiveAddress/(?P<company_id>\d+)/$'
,
sd_views
.
getLiveAddress
),
url
(
r'^smartdevice/hikvision/
(?P<what>\w+)/(?P<company_id>\d+)/$'
,
sd_views
.
getCameraInfo
),
url
(
r'^smartdevice/hikvision/
getLiveAddress/(?P<company_id>\d+)/(?P<deviceSerial>\w+)/$'
,
sd_views
.
getLiveAddress
),
url
(
r'^smartdevice/hikvision/
(?P<what>\w+)/(?P<company_id>\d+)/(?P<deviceSerial>\w+)/$'
,
sd_views
.
getCameraInfo
),
]
]
...
...
smartdevice/models.py
浏览文件 @
aef9ceb9
...
@@ -38,6 +38,7 @@ class Device(models.Model):
...
@@ -38,6 +38,7 @@ class Device(models.Model):
name
=
models
.
CharField
(
_
(
'设备名称'
),
max_length
=
50
,
db_index
=
True
)
name
=
models
.
CharField
(
_
(
'设备名称'
),
max_length
=
50
,
db_index
=
True
)
status
=
models
.
SmallIntegerField
(
_
(
'设备状态'
),
default
=
1
,
choices
=
((
1
,
'正常'
),(
2
,
'休眠'
),(
3
,
'关闭'
)),
blank
=
True
,
null
=
True
)
status
=
models
.
SmallIntegerField
(
_
(
'设备状态'
),
default
=
1
,
choices
=
((
1
,
'正常'
),(
2
,
'休眠'
),(
3
,
'关闭'
)),
blank
=
True
,
null
=
True
)
is_open_live_video
=
models
.
BooleanField
(
_
(
'是否开通标准流预览'
),
default
=
False
)
is_open_live_video
=
models
.
BooleanField
(
_
(
'是否开通标准流预览'
),
default
=
False
)
hik_store_id
=
models
.
CharField
(
_
(
'海康云眸平台内部门店id'
),
max_length
=
100
,
null
=
True
,
blank
=
True
)
is_active
=
models
.
BooleanField
(
_
(
'是否已激活'
),
default
=
True
)
is_active
=
models
.
BooleanField
(
_
(
'是否已激活'
),
default
=
True
)
is_delete
=
models
.
BooleanField
(
_
(
'是否已删除'
),
default
=
False
)
is_delete
=
models
.
BooleanField
(
_
(
'是否已删除'
),
default
=
False
)
remark
=
models
.
CharField
(
_
(
'备注说明'
),
max_length
=
100
,
null
=
True
,
blank
=
True
)
remark
=
models
.
CharField
(
_
(
'备注说明'
),
max_length
=
100
,
null
=
True
,
blank
=
True
)
...
...
smartdevice/views.py
浏览文件 @
aef9ceb9
...
@@ -11,13 +11,14 @@ from smartdevice.hikTools import HikTools
...
@@ -11,13 +11,14 @@ from smartdevice.hikTools import HikTools
from
.models
import
Device
from
.models
import
Device
def
get
LiveAddress
(
reques
t
,
company_id
,
deviceSerial
=
None
):
def
get
CameraInfo
(
request
,
wha
t
,
company_id
,
deviceSerial
=
None
):
hikTools
=
HikTools
()
hikTools
=
HikTools
()
access_token
=
hikTools
.
get_hik_stoken
()
access_token
=
hikTools
.
get_hik_stoken
()
if
access_token
:
if
access_token
:
if
what
==
'getLiveAddress'
:
# 查询当前公司设备是否存在设备并开启视频流
# 查询当前公司设备是否存在设备并开启视频流
device
=
Device
.
objects
.
filter
(
company_id
=
company_id
)
device
=
Device
.
objects
.
filter
(
company_id
=
company_id
,
is_delete
=
False
,
is_active
=
True
,
category_id
=
1
)
if
device
is
not
None
:
if
device
is
not
None
:
deviceSerial
=
device
[
0
]
.
sn
deviceSerial
=
device
[
0
]
.
sn
if
device
[
0
]
.
is_open_live_video
==
False
:
if
device
[
0
]
.
is_open_live_video
==
False
:
...
@@ -42,5 +43,49 @@ def getLiveAddress(request,company_id,deviceSerial=None):
...
@@ -42,5 +43,49 @@ def getLiveAddress(request,company_id,deviceSerial=None):
return
JsonResponse
(
res
,
safe
=
False
)
return
JsonResponse
(
res
,
safe
=
False
)
else
:
else
:
return
JsonResponse
({
'code'
:
200
,
"message"
:
"获取预览播放地址失败"
},
safe
=
False
)
return
JsonResponse
({
'code'
:
200
,
"message"
:
"获取预览播放地址失败"
},
safe
=
False
)
elif
what
==
'getPassengerHourFlow'
:
device
=
Device
.
objects
.
filter
(
company_id
=
company_id
,
is_delete
=
False
,
is_active
=
True
,
category_id
=
2
)
if
device
is
not
None
:
deviceSerial
=
device
[
0
]
.
sn
hik_store_id
=
device
[
0
]
.
hik_store_id
if
device
[
0
]
.
is_open_live_video
==
False
:
is_open
=
hikTools
.
act_liveVideo
(
deviceSerial
,
'open'
)
if
is_open
[
'code'
]
==
200
:
device
[
0
]
.
is_open_live_video
=
True
device
[
0
]
.
save
()
dt
=
request
.
GET
.
get
(
"dateTime"
)
hik_url
=
"https://api2.hik-cloud.com/v1/customization/passenger_hour_flow?dateTime="
+
dt
+
"&storeId="
+
hik_store_id
headers
=
{
"Authorization"
:
"Bearer "
+
access_token
[
'access_token'
]}
res
=
requests
.
get
(
hik_url
,
headers
=
headers
,);
if
res
.
status_code
==
200
:
res
=
res
.
json
()
return
JsonResponse
(
res
,
safe
=
False
)
else
:
return
JsonResponse
({
'code'
:
200
,
"message"
:
"门店的客流统计数据查询失败"
},
safe
=
False
)
return
JsonResponse
({
'code'
:
200
,
"message"
:
"ok"
},
safe
=
False
)
else
:
else
:
return
JsonResponse
({
'code'
:
200
,
"message"
:
"获取token校验错误"
},
safe
=
False
)
return
JsonResponse
({
'code'
:
200
,
"message"
:
"获取token校验错误"
},
safe
=
False
)
#获取门店id列表
# def getStoreInfo(request,company_id):
# hikTools = HikTools()
# access_token = hikTools.get_hik_stoken()
# if access_token:
# hik_url = "https://api2.hik-cloud.com/v1/customization/organization/actions/getStoreInfo"
# headers = {"Content-Type": "application/json", "Authorization": "Bearer " + access_token['access_token']}
# data = json.dumps({
# "orgIndexCode": company_id,
# "pageNo": 1,
# "pageSize": 20
# })
# res = requests.post(hik_url, headers=headers, data=data);
# if res.status_code == 200:
# res = res.json()
# return JsonResponse(res, safe=False)
# else:
# return JsonResponse({'code': 200, "message": "获取门店列表失败"}, safe=False)
# else:
# return JsonResponse({'code': 200, "message": "获取token校验错误"}, safe=False)
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论