Browse Source

查询设备订单明细分页

linhaohong 1 year ago
parent
commit
307f9f3101
1 changed files with 19 additions and 2 deletions
  1. 19 2
      AdminController/CloudServiceManage/AgentDeviceController.py

+ 19 - 2
AdminController/CloudServiceManage/AgentDeviceController.py

@@ -14,6 +14,7 @@ import traceback
 
 
 from django.http import QueryDict
 from django.http import QueryDict
 from django.views import View
 from django.views import View
+from django.core.paginator import Paginator
 
 
 from AgentModel.models import AgentCustomerInfo, AgentDeviceOrder, AgentDevice, AgentCloudServicePackage
 from AgentModel.models import AgentCustomerInfo, AgentDeviceOrder, AgentDevice, AgentCloudServicePackage
 from Model.models import DeviceTypeModel
 from Model.models import DeviceTypeModel
@@ -84,6 +85,9 @@ class AgentDeviceView(View):
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
         serial_number = request_dict.get('serial_number', None)
         serial_number = request_dict.get('serial_number', None)
 
 
+        page = int(request_dict.get('page', 1))  # 默认为第一页
+        page_size = int(request_dict.get('page_size', 10))  # 默认每页10条记录
+
         agent_customer_info = AgentCustomerInfo.objects.filter(user_id=userID).first()
         agent_customer_info = AgentCustomerInfo.objects.filter(user_id=userID).first()
         if agent_customer_info is None:
         if agent_customer_info is None:
             return response.json(104, 'Agent customer not found')
             return response.json(104, 'Agent customer not found')
@@ -104,9 +108,13 @@ class AgentDeviceView(View):
             if serial_number:
             if serial_number:
                 agent_device_qs = agent_device_qs.filter(serial_number=serial_number)
                 agent_device_qs = agent_device_qs.filter(serial_number=serial_number)
 
 
+            # 应用分页
+            paginator = Paginator(agent_device_qs, page_size)
+            current_page = paginator.get_page(page)
+
             # 构造返回列表
             # 构造返回列表
             device_list = []
             device_list = []
-            for device in agent_device_qs:
+            for device in current_page:
                 device_type = DeviceTypeModel.objects.filter(type=device.type).first()
                 device_type = DeviceTypeModel.objects.filter(type=device.type).first()
                 device_name = device_type.name if device_type else device.type
                 device_name = device_type.name if device_type else device.type
                 device_list.append({
                 device_list.append({
@@ -118,7 +126,16 @@ class AgentDeviceView(View):
                     'at_time': device.at_time,
                     'at_time': device.at_time,
                 })
                 })
 
 
-            return response.json(0, {'list': device_list})
+            # 包含分页信息的响应
+            response_data = {
+                'list': device_list,
+                'total': paginator.count,
+                'page': current_page.number,
+                'page_size': page_size,
+                'num_pages': paginator.num_pages,
+            }
+
+            return response.json(0, response_data)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))