Pārlūkot izejas kodu

设备管理新增调用唤醒设备接口

zhangdongming 2 gadi atpakaļ
vecāks
revīzija
0d14463d15

+ 21 - 0
Controller/EquipmentManagerV3.py

@@ -74,9 +74,30 @@ class EquipmentManagerV3(View):
             return self.do_mainUserDevice(request_dict, response)
         elif operation == 'getDeviceFeatures':
             return self.do_get_device_features(request_dict, response)
+        elif operation == 'deviceRouse':
+            return self.device_rouse(request_dict, response)
         else:
             return response.json(414)
 
+    @classmethod
+    def device_rouse(cls, request_dict, response):
+        """
+        设备唤醒
+        """
+        serial_number = request_dict.get('serialNumber', None)
+        if not serial_number:
+            return response.json(444)
+        try:
+            # 主题名称
+            topic_name = f'/wakeup/{serial_number}_0'
+            # 发布消息内容
+            msg = {'payload': 'A'}
+            CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
+            return response.json(0)
+        except Exception as e:
+            LOGGER.info('****设备唤醒发布消息异常:{},{}'.format(serial_number, repr(e)))
+            return response.json(500, repr(e))
+
     def do_add(self, userID, request_dict, response, request):
         UID = request_dict.get('UID', None)
         NickName = request_dict.get('NickName', None)

+ 31 - 30
Controller/UnicomCombo/UnicomComboController.py

@@ -264,36 +264,37 @@ class UnicomComboView(View):
             redis = RedisObject()
             with transaction.atomic():
                 device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no)
-                if device_info_qs.exists():  # 首先查询SIM卡绑定信息是否存在
-                    iccid = device_info_qs.first().iccid
-                    if device_info_qs.first().card_type == 1:
-                        cls.reset_telecom_user(serial_no)
-                        device_info_qs.update(updated_time=now_time, user_id='')
-                        return response.json(0)
-                    key = 'ASJ:UNICOM:RESET:{}'.format(serial_no)
-                    flow_push_qs = UnicomFlowPush.objects.filter(serial_no=serial_no)
-                    if flow_push_qs.exists():  # 删除流量预警推送
-                        flow_push_qs.delete()
-                    sys_msg_qs = SysMsgModel.objects.filter(uid=serial_no)
-                    if sys_msg_qs.exists():  # 删除有关系统消息数据
-                        sys_msg_qs.delete()
-                    device_info_qs.update(status=1, updated_time=now_time, user_id='')
-                    combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
-                    order_list = []
-                    if combo_order_qs.exists():
-                        for item in combo_order_qs:
-                            if item.order_id:
-                                order_list.append(item.order_id)
-                        combo_order_qs.delete()
-                    combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
-                    if combo_experience_history_qs.exists():
-                        combo_experience_history_qs.delete()
-                    redis.set_data(key, iccid, 60 * 30)  # 缓存当前SIM卡,记录为半个小时内无法赠送免费流量套餐。
-                    UnicomObjeect().change_device_to_activate(iccid)
-                    logger.info('4GResetFlow相关订单号:{}'.format(order_list))
-                    describe = '重置4G流量序列号{},iccid:{}'.format(serial_no, iccid)
-                    ip = CommonService.get_ip_address(request)
-                    cls.create_operation_log('unicom/api/device-status', ip, request_dict, describe)
+                if not device_info_qs.exists():  # 首先查询SIM卡绑定信息是否存在
+                    return response.json(173)
+                iccid = device_info_qs.first().iccid
+                if device_info_qs.first().card_type == 1:
+                    cls.reset_telecom_user(serial_no)
+                    device_info_qs.update(updated_time=now_time, user_id='')
+                    return response.json(0)
+                key = 'ASJ:UNICOM:RESET:{}'.format(serial_no)
+                flow_push_qs = UnicomFlowPush.objects.filter(serial_no=serial_no)
+                if flow_push_qs.exists():  # 删除流量预警推送
+                    flow_push_qs.delete()
+                sys_msg_qs = SysMsgModel.objects.filter(uid=serial_no)
+                if sys_msg_qs.exists():  # 删除有关系统消息数据
+                    sys_msg_qs.delete()
+                device_info_qs.update(status=1, updated_time=now_time, user_id='')
+                combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
+                order_list = []
+                if combo_order_qs.exists():
+                    for item in combo_order_qs:
+                        if item.order_id:
+                            order_list.append(item.order_id)
+                    combo_order_qs.delete()
+                combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
+                if combo_experience_history_qs.exists():
+                    combo_experience_history_qs.delete()
+                redis.set_data(key, iccid, 60 * 30)  # 缓存当前SIM卡,记录为半个小时内无法赠送免费流量套餐。
+                UnicomObjeect().change_device_to_activate(iccid)
+                logger.info('4GResetFlow相关订单号:{}'.format(order_list))
+                describe = '重置4G流量序列号{},iccid:{}'.format(serial_no, iccid)
+                ip = CommonService.get_ip_address(request)
+                cls.create_operation_log('unicom/api/device-status', ip, request_dict, describe)
                 return response.json(0)
         except Exception as e:
             print(e.args)