yf_yzl 2 yıl önce
ebeveyn
işleme
83f5c7055f
1 değiştirilmiş dosya ile 19 ekleme ve 7 silme
  1. 19 7
      smartfarming/views/counts_views.py

+ 19 - 7
smartfarming/views/counts_views.py

@@ -269,21 +269,33 @@ class APPAlarmAPIView(APIView):
         # 气象站与测报预警
         request_data = request.data 
         type_id = request_data.get("type_id")
+        page_num = int(request_data.get("page", 1)) if request_data.get("page") else 1
+        page_size = int(request_data.get("page_size", 10)) if request_data.get("page_size") else 10
         data = {}
+        total_obj = 0
         if type_id == "3":
             # 虫情
-            query = MongoCBDPestWarning.objects.all().order_by("-upltime")
-            pest_serializers = MongoCBDPestWarningSerializers(query, many=True)
+            queryset = MongoCBDPestWarning.objects.all().order_by("-upltime")
+            total_obj = queryset.count()
+            paginator = Paginator(queryset, page_size)
+            page_obj = paginator.get_page(page_num)
+            pest_serializers = MongoCBDPestWarningSerializers(page_obj, many=True)
             data = pest_serializers.data 
         elif type_id == "5":
-            query = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="5").order_by("-upl_time")
-            qxz_serializers = MongoQXZAlarmLogNewSerializers(query, many=True)
+            queryset = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="5").order_by("-upl_time")
+            total_obj = queryset.count()
+            paginator = Paginator(queryset, page_size)
+            page_obj = paginator.get_page(page_num)
+            qxz_serializers = MongoQXZAlarmLogNewSerializers(page_obj, many=True)
             data = qxz_serializers.data
         elif type_id == "8":
-            query = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="8").order_by("-upl_time")
-            qxz_serializers = MongoQXZAlarmLogNewSerializers(query, many=True)
+            queryset = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="8").order_by("-upl_time")
+            total_obj = queryset.count()
+            paginator = Paginator(queryset, page_size)
+            page_obj = paginator.get_page(page_num)
+            qxz_serializers = MongoQXZAlarmLogNewSerializers(page_obj, many=True)
             data = qxz_serializers.data
-        return Response({"code": 0, "msg": "success", "data": data})
+        return Response({"code": 0, "msg": "success", "data": data, "nums": total_obj})
         
 
 class QxzCameraList(APIView):