|
@@ -1,16 +1,15 @@
|
|
# -*- coding: utf-8 -*-
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
"""
|
|
|
|
+@Author : Rocky
|
|
@Time : 2022/5/9 10:51
|
|
@Time : 2022/5/9 10:51
|
|
-@Auth : Locky
|
|
|
|
@File :gatewayController.py
|
|
@File :gatewayController.py
|
|
-@IDE :PyCharm
|
|
|
|
"""
|
|
"""
|
|
import logging
|
|
import logging
|
|
import time
|
|
import time
|
|
|
|
|
|
from django.views.generic.base import View
|
|
from django.views.generic.base import View
|
|
|
|
|
|
-from Model.models import UidPushModel, SensorRecord, GatewaySubDevice
|
|
|
|
|
|
+from Model.models import SensorRecord, GatewaySubDevice, GatewayPush, Device_Info
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.utils import LocalDateTimeUtil
|
|
from Object.utils import LocalDateTimeUtil
|
|
from Service.CommonService import CommonService
|
|
from Service.CommonService import CommonService
|
|
@@ -22,14 +21,14 @@ class GatewayView(View):
|
|
def get(self, request, *args, **kwargs):
|
|
def get(self, request, *args, **kwargs):
|
|
request.encoding = 'utf-8'
|
|
request.encoding = 'utf-8'
|
|
operation = kwargs.get('operation')
|
|
operation = kwargs.get('operation')
|
|
- return self.validation(request.GET, request, operation)
|
|
|
|
|
|
+ return self.validation(request.GET, operation)
|
|
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
def post(self, request, *args, **kwargs):
|
|
request.encoding = 'utf-8'
|
|
request.encoding = 'utf-8'
|
|
operation = kwargs.get('operation')
|
|
operation = kwargs.get('operation')
|
|
- return self.validation(request.POST, request, operation)
|
|
|
|
|
|
+ return self.validation(request.POST, operation)
|
|
|
|
|
|
- def validation(self, request_dict, request, operation):
|
|
|
|
|
|
+ def validation(self, request_dict, operation):
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
if operation == 'gatewayPush': # 网关推送
|
|
if operation == 'gatewayPush': # 网关推送
|
|
return self.gateway_push(request_dict, response)
|
|
return self.gateway_push(request_dict, response)
|
|
@@ -54,8 +53,8 @@ class GatewayView(View):
|
|
serial_number = request_dict.get('serial_number', None)
|
|
serial_number = request_dict.get('serial_number', None)
|
|
ieee_addr = request_dict.get('ieee_addr', None)
|
|
ieee_addr = request_dict.get('ieee_addr', None)
|
|
src_addr = request_dict.get('src_addr', None)
|
|
src_addr = request_dict.get('src_addr', None)
|
|
- sensor_type = request_dict.get('sensor_type', None)
|
|
|
|
- event_type = request_dict.get('event_type', None)
|
|
|
|
|
|
+ sensor_type = int(request_dict.get('sensor_type', None))
|
|
|
|
+ event_type = int(request_dict.get('event_type', None))
|
|
alarm = request_dict.get('alarm', None)
|
|
alarm = request_dict.get('alarm', None)
|
|
logger.info('---调用网关推送接口--- request_dict:{}'.format(request_dict))
|
|
logger.info('---调用网关推送接口--- request_dict:{}'.format(request_dict))
|
|
if not all([serial_number, ieee_addr, src_addr, sensor_type, event_type, alarm]):
|
|
if not all([serial_number, ieee_addr, src_addr, sensor_type, event_type, alarm]):
|
|
@@ -63,46 +62,49 @@ class GatewayView(View):
|
|
|
|
|
|
n_time = int(time.time())
|
|
n_time = int(time.time())
|
|
try:
|
|
try:
|
|
|
|
+ nickname = serial_number
|
|
# 查询子设备表id
|
|
# 查询子设备表id
|
|
gateway_sub_device_qs = GatewaySubDevice.objects.filter(device__serial_number=serial_number,
|
|
gateway_sub_device_qs = GatewaySubDevice.objects.filter(device__serial_number=serial_number,
|
|
device_type=sensor_type, ieee_addr=ieee_addr,
|
|
device_type=sensor_type, ieee_addr=ieee_addr,
|
|
- src_addr=src_addr).values('id')
|
|
|
|
|
|
+ src_addr=src_addr).values('id', 'nickname')
|
|
if gateway_sub_device_qs.exists():
|
|
if gateway_sub_device_qs.exists():
|
|
gateway_sub_device_id = gateway_sub_device_qs[0]['id']
|
|
gateway_sub_device_id = gateway_sub_device_qs[0]['id']
|
|
|
|
+ nickname = gateway_sub_device_qs[0]['nickname']
|
|
# 写入传感器记录数据
|
|
# 写入传感器记录数据
|
|
SensorRecord.objects.create(gateway_sub_device_id=gateway_sub_device_id, alarm=alarm,
|
|
SensorRecord.objects.create(gateway_sub_device_id=gateway_sub_device_id, alarm=alarm,
|
|
event_type=event_type, created_time=n_time)
|
|
event_type=event_type, created_time=n_time)
|
|
- # 查询推送配置数据
|
|
|
|
- uid_push_qs = UidPushModel.objects.filter(uid_set__uid=serial_number, uid_set__detect_status=1). \
|
|
|
|
- values('token_val', 'app_type', 'appBundleId', 'm_code', 'push_type', 'userID_id', 'userID__NickName',
|
|
|
|
- 'lang', 'm_code', 'tz', 'uid_set__nickname', 'uid_set__detect_interval', 'uid_set__detect_group')
|
|
|
|
- if not uid_push_qs.exists():
|
|
|
|
|
|
+
|
|
|
|
+ device_info_qs = Device_Info.objects.filter(serial_number=serial_number).values('userID_id')
|
|
|
|
+ if not device_info_qs.exists():
|
|
return response.json(173)
|
|
return response.json(173)
|
|
- uid_push_list = [uid_push for uid_push in uid_push_qs]
|
|
|
|
- nickname = uid_push_list[0]['uid_set__nickname']
|
|
|
|
- device_nick_name = nickname if nickname else serial_number
|
|
|
|
- detect_interval = uid_push_list[0]['uid_set__detect_interval']
|
|
|
|
- detect_group = uid_push_list[0]['uid_set__detect_group']
|
|
|
|
|
|
|
|
local_date_time = ''
|
|
local_date_time = ''
|
|
equipment_info_list = []
|
|
equipment_info_list = []
|
|
- event_type = int(event_type)
|
|
|
|
- kwargs = {
|
|
|
|
- 'n_time': n_time,
|
|
|
|
- 'event_type': event_type,
|
|
|
|
- 'nickname': device_nick_name,
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for uid_push in uid_push_list:
|
|
|
|
- device_user_id = uid_push['userID_id']
|
|
|
|
- push_type = uid_push['push_type']
|
|
|
|
- app_bundle_id = uid_push['appBundleId']
|
|
|
|
- token_val = uid_push['token_val']
|
|
|
|
- lang = uid_push['lang']
|
|
|
|
- tz = uid_push['tz'] if uid_push['tz'] else 0
|
|
|
|
|
|
+
|
|
|
|
+ for device_info in device_info_qs:
|
|
|
|
+ user_id = device_info['userID_id']
|
|
|
|
+ # 查询推送配置数据
|
|
|
|
+ gateway_push_qs = GatewayPush.objects.filter(user_id=user_id, logout=False). \
|
|
|
|
+ values('user_id', 'app_bundle_id', 'app_type', 'push_type', 'token_val', 'm_code', 'lang', 'm_code',
|
|
|
|
+ 'tz')
|
|
|
|
+ if not gateway_push_qs.exists():
|
|
|
|
+ continue
|
|
|
|
+
|
|
|
|
+ kwargs = {
|
|
|
|
+ 'n_time': n_time,
|
|
|
|
+ 'event_type': event_type,
|
|
|
|
+ 'nickname': nickname,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ user_id = gateway_push_qs[0]['user_id']
|
|
|
|
+ app_bundle_id = gateway_push_qs[0]['app_bundle_id']
|
|
|
|
+ push_type = gateway_push_qs[0]['push_type']
|
|
|
|
+ token_val = gateway_push_qs[0]['token_val']
|
|
|
|
+ lang = gateway_push_qs[0]['lang']
|
|
|
|
+ tz = gateway_push_qs[0]['tz'] if gateway_push_qs[0]['tz'] else 0
|
|
|
|
|
|
# 获取推送所需数据
|
|
# 获取推送所需数据
|
|
- msg_title = GatewayPushService.get_msg_title(app_bundle_id, device_nick_name)
|
|
|
|
|
|
+ msg_title = GatewayPushService.get_msg_title(app_bundle_id, nickname)
|
|
msg_text = GatewayPushService.get_msg_text(n_time, tz, lang, alarm)
|
|
msg_text = GatewayPushService.get_msg_text(n_time, tz, lang, alarm)
|
|
|
|
|
|
kwargs['msg_title'] = msg_title
|
|
kwargs['msg_title'] = msg_title
|
|
@@ -130,10 +132,10 @@ class GatewayView(View):
|
|
event_time=n_time,
|
|
event_time=n_time,
|
|
receive_time=n_time,
|
|
receive_time=n_time,
|
|
device_uid=serial_number,
|
|
device_uid=serial_number,
|
|
- device_nick_name=device_nick_name,
|
|
|
|
|
|
+ device_nick_name=nickname,
|
|
alarm=alarm,
|
|
alarm=alarm,
|
|
event_type=event_type,
|
|
event_type=event_type,
|
|
- device_user_id=device_user_id,
|
|
|
|
|
|
+ device_user_id=user_id,
|
|
))
|
|
))
|
|
if equipment_info_list:
|
|
if equipment_info_list:
|
|
# 根据日期获得星期几
|
|
# 根据日期获得星期几
|