|
|
@@ -6,6 +6,55 @@ from requests.auth import HTTPBasicAuth
|
|
|
import asyncio
|
|
|
|
|
|
|
|
|
+class DeviceInfoUtils(object):
|
|
|
+ """
|
|
|
+ 跨平台异步获取设备信息,调用实例化本类中的get_equip_list()
|
|
|
+ :param d_id: 设备号
|
|
|
+ :param isfullId:0模糊匹配,1表示完整设备号匹配
|
|
|
+ :return:列表数据,相同设备号放一起,并且最近更新数据靠前,最近更新数据可认为设备最后所在平台
|
|
|
+ """
|
|
|
+ def get_resp(self, url, params):
|
|
|
+ try:
|
|
|
+ res = requests.post(url=url,data=params,timeout=10)
|
|
|
+ res_dict = json.loads(res.content.decode())
|
|
|
+ except:
|
|
|
+ res_dict = {}
|
|
|
+ return res_dict
|
|
|
+
|
|
|
+ async def plat_device_info(self, url, data):
|
|
|
+ # loop = asyncio.new_event_loop()
|
|
|
+ # asyncio.set_event_loop(loop)
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
+ res = await loop.run_in_executor(None, self.get_resp, url, data)
|
|
|
+ return res
|
|
|
+
|
|
|
+ def get_equip_list(self, d_id, isfullId=0):
|
|
|
+ bd_url = "http://127.0.0.1:8002/search/equip"
|
|
|
+ sq_url = "http://172.16.220.3/search/equip"
|
|
|
+
|
|
|
+ if isfullId == 1:
|
|
|
+ data = {"device_id": d_id, "isfullId": "1"}
|
|
|
+ else:
|
|
|
+ data = {"device_id": d_id}
|
|
|
+
|
|
|
+ loop = asyncio.new_event_loop()
|
|
|
+ asyncio.set_event_loop(loop)
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
+ bd_task = loop.create_task(self.plat_device_info(bd_url, data))
|
|
|
+ sq_task = loop.create_task(self.plat_device_info(sq_url, data))
|
|
|
+ bd_dict = loop.run_until_complete(bd_task)
|
|
|
+ sq_dict = loop.run_until_complete(sq_task)
|
|
|
+ loop.close()
|
|
|
+ bd_data = bd_dict.get("data", [])
|
|
|
+ sq_data = sq_dict.get("data", [])
|
|
|
+ data = []
|
|
|
+ data.extend(bd_data)
|
|
|
+ data.extend(sq_data)
|
|
|
+ data = sorted(data, key=lambda e: e.__getitem__('uptime'), reverse=True)
|
|
|
+ data = sorted(data, key=lambda e: e.__getitem__('device_id'), reverse=True)
|
|
|
+ return data
|
|
|
+
|
|
|
+
|
|
|
class GetSIMInfo(object):
|
|
|
"""
|
|
|
自定义获取SIM卡对应卡商及数据
|
|
|
@@ -110,52 +159,3 @@ class GetSIMInfo(object):
|
|
|
data_balance = "未知"
|
|
|
expiry_date = "未知"
|
|
|
return sim_operators,account_status,active_date,data_plan,data_usage,data_balance,expiry_date
|
|
|
-
|
|
|
-
|
|
|
-class DeviceInfoUtils(object):
|
|
|
- """
|
|
|
- 跨平台异步获取设备信息,调用实例化本类中的get_equip_list()
|
|
|
- :param d_id: 设备号
|
|
|
- :param isfullId:0模糊匹配,1表示完整设备号匹配
|
|
|
- :return:列表数据,相同设备号放一起,并且最近更新数据靠前,最近更新数据可认为设备最后所在平台
|
|
|
- """
|
|
|
- def get_resp(self, url, params):
|
|
|
- try:
|
|
|
- res = requests.post(url=url,data=params,timeout=10)
|
|
|
- res_dict = json.loads(res.content.decode())
|
|
|
- except:
|
|
|
- res_dict = {}
|
|
|
- return res_dict
|
|
|
-
|
|
|
- async def plat_device_info(self, url, data):
|
|
|
- # loop = asyncio.new_event_loop()
|
|
|
- # asyncio.set_event_loop(loop)
|
|
|
- loop = asyncio.get_event_loop()
|
|
|
- res = await loop.run_in_executor(None, self.get_resp, url, data)
|
|
|
- return res
|
|
|
-
|
|
|
- def get_equip_list(self, d_id, isfullId=0):
|
|
|
- bd_url = "http://127.0.0.1:8002/search/equip"
|
|
|
- sq_url = "http://172.16.220.3/search/equip"
|
|
|
-
|
|
|
- if isfullId == 1:
|
|
|
- data = {"device_id": d_id, "isfullId": "1"}
|
|
|
- else:
|
|
|
- data = {"device_id": d_id}
|
|
|
-
|
|
|
- loop = asyncio.new_event_loop()
|
|
|
- asyncio.set_event_loop(loop)
|
|
|
- loop = asyncio.get_event_loop()
|
|
|
- bd_task = loop.create_task(self.plat_device_info(bd_url, data))
|
|
|
- sq_task = loop.create_task(self.plat_device_info(sq_url, data))
|
|
|
- bd_dict = loop.run_until_complete(bd_task)
|
|
|
- sq_dict = loop.run_until_complete(sq_task)
|
|
|
- loop.close()
|
|
|
- bd_data = bd_dict.get("data", [])
|
|
|
- sq_data = sq_dict.get("data", [])
|
|
|
- data = []
|
|
|
- data.extend(bd_data)
|
|
|
- data.extend(sq_data)
|
|
|
- data = sorted(data, key=lambda e: e.__getitem__('uptime'), reverse=True)
|
|
|
- data = sorted(data, key=lambda e: e.__getitem__('device_id'), reverse=True)
|
|
|
- return data
|