Jelajahi Sumber

修复查询温湿度传感器记录接口问题

locky 3 tahun lalu
induk
melakukan
4861f32b2a

+ 4 - 1
Controller/SensorGateway/SmartSceneController.py

@@ -308,7 +308,10 @@ class SmartSceneView(View):
                 topic_name = 'loocam/gateway_sensor/smart_scene/{}'.format(serial_number)
 
                 success = CommonService.req_publish_mqtt_msg(thing_name, topic_name, msg)
-                assert success
+                try:
+                    assert success
+                except AssertionError:
+                    return response.json(10044)
 
             return response.json(0)
         except Exception as e:

+ 11 - 15
Controller/SensorGateway/SubDeviceController.py

@@ -210,30 +210,29 @@ class GatewaySubDeviceView(View):
             return response.json(444, {'error param': 'gatewaySubId or cycle or eventType'})
         now_time = int(time.time())
         try:
-            record_dict = cls.get_record_dict(cycle, now_time, sub_device_id, event_type, response)
-        except Exception as e:
-            return response.json(500, repr(e))
-        else:
-            # 组织响应数据列表,value为每 小时/天 的平均值
+            record_dict = cls.get_record_dict(cycle, now_time, sub_device_id, event_type)
             record_list = []
-            for k, v in record_dict.items():
-                record_list.append({'key': k, 'value': round(sum(v) / len(v), 1)})
+            if record_dict:
+                # 组织响应数据列表,value为每 小时/天 的平均值
+                for k, v in record_dict.items():
+                    record_list.append({'key': k, 'value': round(sum(v) / len(v), 1)})
 
             res = {
                 'records': record_list,
                 'time': now_time
             }
             return response.json(0, res)
+        except Exception as e:
+            return response.json(500, repr(e))
 
     @staticmethod
-    def get_record_dict(cycle, now_time, sub_device_id, event_type, response):
+    def get_record_dict(cycle, now_time, sub_device_id, event_type):
         """
         获取记录数据
         @param cycle: 时间周期
         @param now_time: 当前时间
         @param sub_device_id: 子设备id
         @param event_type: 事件类型, 18:温度,19:湿度
-        @param response: 响应对象
         @return: record_dict: 记录数据
         """
         record_dict = OrderedDict()
@@ -244,7 +243,7 @@ class GatewaySubDeviceView(View):
                                                            created_time__range=(start_time, now_time)). \
                 values('alarm', 'created_time').order_by('created_time')
             if not sensor_record_qs.exists():
-                return response.json(0, {'records': [], 'time': now_time})
+                return []
 
             for sensor_record in sensor_record_qs:
                 created_time = time.strftime('%m/%d %H:%M %w', time.localtime(sensor_record['created_time']))
@@ -266,7 +265,7 @@ class GatewaySubDeviceView(View):
                                                            created_time__range=(start_time, now_time)). \
                 values('alarm', 'created_time').order_by('created_time')
             if not sensor_record_qs.exists():
-                return response.json(0, {'records': [], 'time': now_time})
+                return []
 
             for sensor_record in sensor_record_qs:
                 created_time = time.strftime('%m/%d %H:%M %w', time.localtime(sensor_record['created_time']))
@@ -285,7 +284,7 @@ class GatewaySubDeviceView(View):
                                                            created_time__range=(start_time, now_time)). \
                 values('alarm', 'created_time').order_by('created_time')
             if not sensor_record_qs.exists():
-                return response.json(0, {'records': [], 'time': now_time})
+                return []
 
             for sensor_record in sensor_record_qs:
                 created_time = time.strftime('%m/%d %H:%M %w', time.localtime(sensor_record['created_time']))
@@ -299,9 +298,6 @@ class GatewaySubDeviceView(View):
                 else:
                     record_dict[date] = [alarm]
 
-        else:
-            return response.json(444, {'invalid cycle': cycle})
-
         return record_dict
 
     @staticmethod

+ 2 - 2
Object/ResponseObject.py

@@ -100,7 +100,7 @@ class ResponseObject(object):
             10041: 'This device has purchased a domestic cloud storage package, and cannot purchase a foreign cloud storage package',
             10042: 'The device has registered a certificate',
             10043: 'The device does not registered a certificate',
-            10044: 'Request to publish MQTT topic message failed',
+            10044: 'Failed to publish MQTT message',
             10045: 'Already the latest version',
             10046: 'Sorry, users who have activated cloud storage packages do not support logout at the moment, please contact customer service',
             10047: 'Please delete all devices under your account first',
@@ -207,7 +207,7 @@ class ResponseObject(object):
             10041: '此设备已购买过国内云存套餐,无法购买国外云存套餐',
             10042: '此设备已注册证书',
             10043: '此设备没有注册证书',
-            10044: '请求发布MQTT主题消息失败',
+            10044: '发布MQTT消息失败',
             10045: '当前为最新版本',
             10046: '已开通云存的用户,暂不支持注销,请联系客服',
             10047: '请先删除您当前帐户下的所有设备',