|
@@ -18,7 +18,8 @@ from django.db.models import Sum, Count
|
|
from django.http import QueryDict
|
|
from django.http import QueryDict
|
|
from django.views import View
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import SocketInfo, SocketSchedule, Device_Info, SocketPowerStatistics, SceneLog, FamilyRoomDevice
|
|
|
|
|
|
+from Model.models import SocketInfo, SocketSchedule, Device_Info, SocketPowerStatistics, SceneLog, FamilyRoomDevice, \
|
|
|
|
+ CountryModel
|
|
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
|
|
@@ -60,6 +61,8 @@ class SmartSocketView(View):
|
|
return self.socket_reset(request_dict, ResponseObject('cn'))
|
|
return self.socket_reset(request_dict, ResponseObject('cn'))
|
|
elif operation == 'alexa-socket-switch': # 新增alexa智能开关
|
|
elif operation == 'alexa-socket-switch': # 新增alexa智能开关
|
|
return self.alexa_socket_switch(request_dict, ResponseObject('cn'))
|
|
return self.alexa_socket_switch(request_dict, ResponseObject('cn'))
|
|
|
|
+ elif operation == 'getSocketState': # 获取alexa智能开关状态
|
|
|
|
+ return self.get_socket_state(request_dict, ResponseObject('cn'))
|
|
token_code, user_id, response = CommonService \
|
|
token_code, user_id, response = CommonService \
|
|
.verify_token_get_user_id(request_dict, request)
|
|
.verify_token_get_user_id(request_dict, request)
|
|
if token_code != 0:
|
|
if token_code != 0:
|
|
@@ -842,3 +845,33 @@ class SmartSocketView(View):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(e)
|
|
print(e)
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def get_socket_state(cls, request_dict, response):
|
|
|
|
+ """
|
|
|
|
+ 获取alexa智能开关状态
|
|
|
|
+ @request_dict serialNumber: 设备序列号
|
|
|
|
+ @request_dict status: 开关状态
|
|
|
|
+ @param request_dict: 请求参数
|
|
|
|
+ @param response: 响应对象
|
|
|
|
+ @return: response
|
|
|
|
+ """
|
|
|
|
+ serial_number = request_dict.get('serial_number', None)
|
|
|
|
+ if not all([serial_number]):
|
|
|
|
+ return response.json(444)
|
|
|
|
+ # 同步数据库并下发MQTT消息到插座设备
|
|
|
|
+ try:
|
|
|
|
+ socket_info_qs = SocketInfo.objects.get(serial_number=serial_number).values('status')
|
|
|
|
+ device_info_qs = Device_Info.objects.filter(serial_number=serial_number).values('userID__region_country',
|
|
|
|
+ 'NickName')
|
|
|
|
+ country_qs = CountryModel.objects.filter(id=device_info_qs[0]['userID__region_country']).values(
|
|
|
|
+ 'region__continent_code')
|
|
|
|
+ res = {
|
|
|
|
+ 'nick_name': device_info_qs[0]['NickName'],
|
|
|
|
+ 'region': country_qs[0]['region__continent_code'] if country_qs.exists() else 'EN',
|
|
|
|
+ 'power_state': socket_info_qs[0]['status']
|
|
|
|
+ }
|
|
|
|
+ return response.json(0, res)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ print(e)
|
|
|
|
+ return response.json(500, repr(e))
|