notify setting 查询条件
This commit is contained in:
parent
5ad160a3ae
commit
e7721fdf89
|
@ -71,3 +71,21 @@ print(json.dumps(xx))
|
|||
'deviceCode': '1000038',
|
||||
'alarmCode': '37f2b363-71aa-49c4-b352-711f4e098f46',
|
||||
'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_60524172_60587111.jpg', 'nodeType': 2, 'alarmDate': '1656727743', 'alarmGrade': 2, 'isSave': True, 'extend': {'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_60524172_60587111.jpg'], 'glass': 0, 'beard': 0, 'candidateInfo': [], 'sex': 0, 'occurrenceCount': 0, 'deviceCode': '1000038', 'globalScenePicUrl': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_60425203_60524172.jpg', 'eye': 0, 'alarmType': 1001000, 'perFlag': -1, 'mouth': 0, 'feature': [], 'isHit': True, 'channelSeq': 0, 'szSerialUUID': '', 'channelName': '测试摄像头1', 'beginTime': 1656727739, 'endTime': 1656727739, 'age': -1, 'mask': 0}, 'unitType': 1, 'alarmType': 1001000, 'channelSeq': 0, 'orgCode': '001', 'channelName': '测试摄像头1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-face', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}
|
||||
|
||||
|
||||
{'id': 1656731738555,
|
||||
'category': 'alarm',
|
||||
'method': 'alarm.msg',
|
||||
'info': {'orgName': '根节点',
|
||||
'nodeCode': '1000038$1$0$0',
|
||||
'deviceCode': '1000038',
|
||||
'alarmCode': 'a66160f7-9ceb-4540-a6be-9cb6ec311b5f',
|
||||
'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_61221133_61249479.jpg',
|
||||
'nodeType': 2, 'alarmDate': '1656731735',
|
||||
'alarmGrade': 2, 'isSave': True,
|
||||
'extend': {'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_61221133_61249479.jpg'],
|
||||
'glass': 0, 'beard': 0,
|
||||
'candidateInfo':
|
||||
[{'birthday': '2022-7-2',
|
||||
'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_61249479_61322881.jpg'], 'groupName': '内部库1', 'similarity': 99, 'sex': 1, 'cardType': 1, 'name': '曹前明', 'devPersonId': '15', 'id': '342422199004040175', 'type': 0}], 'sex': 0, 'occurrenceCount': 0, 'deviceCode': '1000038', 'globalScenePicUrl': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_61130541_61221133.jpg', 'eye': 0, 'alarmType': 1001003, 'perFlag': -1, 'mouth': 0, 'feature': [], 'isHit': True, 'channelSeq': 0, 'szSerialUUID': '', 'channelName': '测试摄像头1', 'beginTime': 1656731735, 'endTime': 1656731735, 'age': -1, 'mask': 0}, 'unitType': 1, 'alarmType': 1001003, 'channelSeq': 0, 'orgCode': '001', 'channelName': '测试摄像头1', 'alarmStat': 1, 'isEvent': True},
|
||||
'subsystem': 'evo-face', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
|
||||
from apps.utils.sms import send_sms
|
||||
import requests
|
||||
from apps.am.models import Access, Area
|
||||
from apps.am.tasks import cache_areas_info
|
||||
|
@ -18,6 +19,7 @@ from django.utils import timezone
|
|||
from django.conf import settings
|
||||
import os
|
||||
from apps.utils.speech import generate_voice
|
||||
from threading import Thread
|
||||
requests.packages.urllib3.disable_warnings()
|
||||
|
||||
|
||||
|
@ -57,11 +59,23 @@ class EcmService:
|
|||
"time2": int(time.time()), # 当前时间戳
|
||||
}
|
||||
|
||||
def create_remind_and_speak(cls):
|
||||
@classmethod
|
||||
def create_remind_and_speak(cls, event: Event):
|
||||
"""
|
||||
创建事件提醒并发送短信/微信/音响
|
||||
创建事件提醒并发送短信/微信/喇叭
|
||||
"""
|
||||
pass
|
||||
# 喇叭提醒
|
||||
if event.voice:
|
||||
sps = list(TDevice.objects.filter(area=event.area, type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
|
||||
if len(sps) == 0: # 找覆盖区的音响
|
||||
sps = list(TDevice.objects.filter(areas=event.area,
|
||||
type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
|
||||
if sps:
|
||||
t = Thread(target=spClient.speak, args=(event.voice, sps), daemon=True)
|
||||
t.start()
|
||||
if event.employee and event.employee.phone:
|
||||
t = Thread(target=send_sms, args=(event.employee.phone, '1001', {'code': '5678'}), daemon=True)
|
||||
t.start()
|
||||
|
||||
@classmethod
|
||||
def dispatch_dahua_event(cls, data: dict):
|
||||
|
@ -107,14 +121,7 @@ class EcmService:
|
|||
'cate': ec,
|
||||
'event': event
|
||||
})
|
||||
# 喇叭提醒
|
||||
if event.voice:
|
||||
sps = list(TDevice.objects.filter(area=area, type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
|
||||
if len(sps) == 0: # 找覆盖区的音响
|
||||
sps = list(TDevice.objects.filter(areas=area, type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
|
||||
if sps:
|
||||
spClient.speak(event.voice, sps)
|
||||
return
|
||||
cls.create_remind_and_speak(event=event)
|
||||
|
||||
@classmethod
|
||||
def dispatch_xunxi_event(cls, data: dict):
|
||||
|
|
|
@ -51,6 +51,7 @@ class AlgoChannelViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Cu
|
|||
class NotifySettingViewSet(CustomModelViewSet):
|
||||
queryset = NotifySetting.objects.all()
|
||||
serializer_class = NotifySettingsSerializer
|
||||
filterset_fields = ['event_cate', 'obj_cate', 'post', 'user']
|
||||
|
||||
|
||||
class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
||||
|
|
|
@ -33,7 +33,7 @@ def phone_check(phone):
|
|||
|
||||
|
||||
class EmployeeCreateUpdateSerializer(EmployeeBaseSerializer):
|
||||
phone = serializers.CharField(label="手机号", validators=[phone_check])
|
||||
phone = serializers.CharField(label="手机号")
|
||||
|
||||
class Meta:
|
||||
model = Employee
|
||||
|
|
|
@ -29,7 +29,10 @@ def send_sms(phone: str, template_code: str, template_param: dict):
|
|||
request.add_query_param('TemplateParam', json.dumps(template_param))
|
||||
res = client.do_action(request)
|
||||
res_dict = json.loads(str(res, encoding='utf-8'))
|
||||
print(phone, template_code, template_param, res_dict)
|
||||
if res_dict['result'] == 0:
|
||||
return True, 'OK', res_dict['BizId']
|
||||
|
||||
return True, res_dict
|
||||
else:
|
||||
return False, res_dict['Message'], res_dict['BizId']
|
||||
settings.myLogger.error("短信发送失败:{}-{}".format(phone, str(res_dict)))
|
||||
return False, res_dict
|
||||
|
|
Loading…
Reference in New Issue