|
@@ -0,0 +1,57 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+@Author : peng
|
|
|
+@Time : 2023-8-18 10:45:46
|
|
|
+@File :WeatherControl.py
|
|
|
+"""
|
|
|
+from Ansjer.config import LOGGER
|
|
|
+import time
|
|
|
+
|
|
|
+from django.views import View
|
|
|
+from Object.IPWeatherObject import WeatherInfo
|
|
|
+from Model.models import UidSetModel, CityInformation
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+
|
|
|
+
|
|
|
+class WeatherView(View):
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.GET, operation, request)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.POST, operation, request)
|
|
|
+
|
|
|
+ def validation(self, request_dict, operation, request):
|
|
|
+ lang = request_dict.get('lang', 'en')
|
|
|
+ response = ResponseObject(lang)
|
|
|
+ if operation == 'get': # 获取天气
|
|
|
+ return self.get_weather(request_dict, response)
|
|
|
+ else:
|
|
|
+ return response.json(414)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_weather(request_dict, response):
|
|
|
+ """
|
|
|
+ 获取天气
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict uid: 设备uid
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ uid = request_dict.get('uid')
|
|
|
+ if not uid:
|
|
|
+ return response.json(444, 'uid')
|
|
|
+ uid_set_qs = UidSetModel.objects.filter(uid=uid).values('tb_city_information_id')
|
|
|
+ if not uid_set_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ try:
|
|
|
+ city_obj = WeatherInfo(uid_set_qs[0]['tb_city_information_id'])
|
|
|
+ temp, humidity = city_obj.get_city_weather()
|
|
|
+ return response.json(0, {'temp': temp, 'humidity': humidity})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500)
|
|
|
+
|