|
@@ -395,7 +395,7 @@ class AgentDeviceView(View):
|
|
|
page = int(request_dict.get('page', 1))
|
|
|
page_size = int(request_dict.get('pageSize', 20))
|
|
|
|
|
|
- # 查询 CustomUIDPool(主表)
|
|
|
+ # 查询 CustomUIDPool
|
|
|
custom_uid_pool_qs = CustomUIDPool.objects.all().order_by('-created_time')
|
|
|
|
|
|
# 应用筛选条件
|
|
@@ -417,6 +417,22 @@ class AgentDeviceView(View):
|
|
|
paginator = Paginator(custom_uid_pool_qs, page_size)
|
|
|
custom_uid_pool_page = paginator.page(page)
|
|
|
|
|
|
+ # 获取当前页的所有UID,用于批量查询设备绑定信息
|
|
|
+ uid_list = [custom_uid.uid for custom_uid in custom_uid_pool_page]
|
|
|
+
|
|
|
+ # 批量查询所有设备绑定信息(减少查询次数)
|
|
|
+ device_bindings_map = {}
|
|
|
+ if uid_list:
|
|
|
+ bindings = DeviceCustomUID.objects.filter(uid__in=uid_list)
|
|
|
+ for binding in bindings:
|
|
|
+ if binding.uid not in device_bindings_map:
|
|
|
+ device_bindings_map[binding.uid] = []
|
|
|
+ device_bindings_map[binding.uid].append({
|
|
|
+ 'device_mac': binding.device_mac,
|
|
|
+ 'binding_status': binding.status,
|
|
|
+ 'binding_time': binding.created_time,
|
|
|
+ })
|
|
|
+
|
|
|
# 构造返回数据
|
|
|
uid_list = []
|
|
|
for custom_uid in custom_uid_pool_page:
|
|
@@ -430,12 +446,7 @@ class AgentDeviceView(View):
|
|
|
'uid_status': custom_uid.status, # UID池状态
|
|
|
'created_time': custom_uid.created_time,
|
|
|
'updated_time': custom_uid.updated_time,
|
|
|
- # 设备绑定信息(如果有)
|
|
|
- 'device_binding': {
|
|
|
- 'device_mac': device_binding.device_mac if device_binding else None,
|
|
|
- 'binding_status': device_binding.status if device_binding else None,
|
|
|
- 'binding_time': device_binding.created_time if device_binding else None,
|
|
|
- } if device_binding else None,
|
|
|
+ 'device_bindings': device_bindings_map.get(custom_uid.uid, []),
|
|
|
})
|
|
|
|
|
|
# 返回分页结果
|