Эх сурвалжийг харах

判断插座上报数据是否为负数

guanhailong 2 жил өмнө
parent
commit
26a0837594

+ 11 - 7
AdminController/UnicomManageController.py

@@ -63,7 +63,7 @@ class UnicomManageControllerView(View):
             # 充值流量
             elif operation == 'getFlowPackages':
                 return self.get_flow_packages(request_dict, response)
-            #  获取 / 筛选4G流量卡订单信息
+            #  获取/筛选4G流量卡订单信息
             elif operation == 'query-order':
                 return self.query_4G_user_order(request_dict, response)
             elif operation == 'sim-info':
@@ -148,7 +148,8 @@ class UnicomManageControllerView(View):
         """
         sql = 'SELECT '
         sql += 'du.username,du.phone,o.UID as uid,o.`status`,udi.serial_no as serialNo,o.orderID,o.`desc`, '
-        sql += 'o.price,uo.next_month_activate as nextActivate,uo.iccid,uo.`status` as useStatus, '
+        sql += 'o.price,uo.next_month_activate as nextActivate,uo.iccid,uo.`status` as useStatus, ' \
+               'uo.`flow_total_usage` as flowTotal, '
         sql += 'uo.updated_time as upTime, uo.activation_time as acTime,uo.expire_time as epTime '
         sql += 'FROM orders o '
         sql += 'LEFT JOIN unicom_combo_order_info uo ON o.orderID = uo.order_id '
@@ -468,21 +469,24 @@ class UnicomManageControllerView(View):
         userId = request_dict.get('userId', None)
         serialNo = request_dict.get('serialNo', None)
         comboId = request_dict.get('comboId', None)
-        iccid = request_dict.get('iccid', None)
-        if not all([userId, serialNo, comboId, iccid]):
+        if not all([userId, serialNo, comboId]):
             return response.json(444)
         try:
             while transaction.atomic():
                 combo_info_qs = UnicomCombo.objects.filter(id=comboId, combo_type=2, status=0) \
                     .values('id', 'combo_name', 'price', 'virtual_price', 'remark', 'combo_type')
-                unicom_device_info_qs = UnicomDeviceInfo.objects.filter(iccid=iccid)
+                unicom_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serialNo,
+                                                                        user_id=userId).values \
+                    ('iccid')
                 if not unicom_device_info_qs.exists() or not combo_info_qs.exists():
                     return response.json(173)
                 combo_info_qs = combo_info_qs.first()
+                unicom_device_info_qs = unicom_device_info_qs.first()
                 n_time = int(time.time())
                 order_id = CommonService.createOrderID()  # 生成订单号
                 #  赠送套餐下个月生效
-                unicom_combo = UnicomComboView.create_combo_order_info(order_id=order_id, activate_type=1, iccid=iccid,
+                unicom_combo = UnicomComboView.create_combo_order_info(order_id=order_id, activate_type=1,
+                                                                       iccid=unicom_device_info_qs['iccid'],
                                                                        combo_id=comboId)
                 if unicom_combo is False:
                     return response.json(178)
@@ -528,4 +532,4 @@ class UnicomManageControllerView(View):
             return response.json(0, res_dict['data']['status'])
         except Exception as e:
             print(e)
-            return response.json(500, repr(e))
+            return response.json(500, repr(e))

+ 6 - 2
Controller/SensorGateway/SmartSocketController.py

@@ -135,6 +135,10 @@ class SmartSocketView(View):
             watt = float(watt)
             power = float(power)
             accumulated_time = int(accumulated_time)
+            #  判断上报数据是否为负数
+            if watt < 0 or power < 0 or accumulated_time < 0:
+                LOGGER.info('{}插座上报负值data:{}'.format(serial_number, request_dict))
+                return response.json(177)
             now_time = int(time.time())
             start_time, end_time = LocalDateTimeUtil.get_today_date(True)
             # 查询当前序列号当天是否有上传过电量统计
@@ -221,7 +225,7 @@ class SmartSocketView(View):
         if not device_id:
             return False
         socket_info_qs = SocketInfo.objects.filter(device_id=device_id, type_switch=type_switch)
-        LOGGER.info('进入插座电源开关OR倒计时,类型:{}'.format(type_switch))
+        LOGGER.info('{}进入插座电源开关OR倒计时,类型:{}'.format(serial_number, type_switch))
         now_time = int(time.time())
         try:
             with transaction.atomic():
@@ -243,7 +247,7 @@ class SmartSocketView(View):
                 # 发布消息内容
                 msg = {'type': 1, 'data': {'deviceSwitch': status}}
                 result = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
-                LOGGER.info('智能插座开关设置发布MQTT消息结果{}'.format(result))
+                LOGGER.info('{}智能插座开关设置发布MQTT消息结果{}'.format(serial_number, result))
                 return True
         except Exception as e:
             LOGGER.info('智能插座异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))