Jelajahi Sumber

接口请求调整

yf_fyh 2 tahun lalu
induk
melakukan
c05afbd4bd
2 mengubah file dengan 50 tambahan dan 66 penghapusan
  1. 31 37
      apps/Equipment/serializers.py
  2. 19 29
      apps/Equipment/views.py

+ 31 - 37
apps/Equipment/serializers.py

@@ -16,50 +16,44 @@ class SearchEquipSerializer(serializers.Serializer):
             return value
 
 
-# class DeviceDetailSerializer(serializers.Serializer):
-#     req = serializers.CharField(help_text="类型", required=True)
-#     device_id = serializers.CharField(help_text="设备号", required=True)
-#     start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=True)
-#     end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=True)
-#     page = serializers.IntegerField(help_text="页码", required=True)
-#     page_size = serializers.IntegerField(help_text="页长", required=True)
-
-#     def validate_page(self, value):
-#         if value<1:
-#             raise serializers.ValidationError("页码不能小于1")
-#         return value
-    
-#     def validate_page_size(self, value):
-#         if value<1:
-#             raise serializers.ValidationError("每页数据不能小于1")
-#         return value
-
-
 class DeviceDetailSerializer(serializers.Serializer):
-    req = serializers.CharField(help_text="类型", required=True)
     device_id = serializers.CharField(help_text="设备号", required=True)
     start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=False)
     end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=False)
-    page = serializers.IntegerField(help_text="页码", required=False)
+    page_start = serializers.IntegerField(help_text="起始", required=False)
     page_size = serializers.IntegerField(help_text="页长", required=False)
 
+    def validate_page_size(self, value):
+        if value > 100:
+            raise serializers.ValidationError("超出设置阈值100")
+        else:
+            return value
+    
+    def validate_page_start(self, value):
+        if value < 0:
+            raise serializers.ValidationError("page_start不能小于0")
+        else:
+            return value
+    
+    def validate_page_size(self, value):
+        if value < 1:
+            raise serializers.ValidationError("page_start不能小于1")
+        else:
+            return value
+
     def validate(self, attrs):
-        if attrs.get("req")=="history":
-            if not attrs.get("start_timestamp",""):
-                raise serializers.ValidationError({"start_timestamp":"参数为必填项"})
-            if  not attrs.get("end_timestamp",""):
-                raise serializers.ValidationError({"end_timestamp":"参数为必填项"})
+        if attrs.get("start_timestamp") and attrs.get("end_timestamp"):
             if attrs["start_timestamp"] > attrs["end_timestamp"]:
                 raise serializers.ValidationError({"timestamp":"结束时间不能小于开始时间"})
-            if not attrs.get("page",""):
-                attrs["page"] = 1
-            if not attrs.get("page_size",""):
-                attrs["page_size"] = 10
-        elif attrs.get("req")=="new":
-            if not attrs.get("page_size",""):
-                attrs["page_size"] = 1
-            if not attrs.get("offset",""):
-                attrs["offset"] = 0
-        else:
-            raise serializers.ValidationError({"req":"参数超出阈值"})
+        elif not attrs.get("start_timestamp") and attrs.get("end_timestamp"):
+            raise serializers.ValidationError({"start_timestamp":"结束时间存在,开始时间必须存在"})
+        elif attrs.get("start_timestamp") and not attrs.get("end_timestamp"):
+            raise serializers.ValidationError({"end_timestamp":"开始时间存在,结束时间必须存在"})
+        elif not attrs.get("start_timestamp") and not attrs.get("end_timestamp"):
+            attrs["start_timestamp"] = 0
+            attrs["end_timestamp"] = 0
+        if not attrs.get("page_start",""):
+            attrs["page_start"] = 0
+        if not attrs.get("page_size",""):
+            attrs["page_size"] = 10
         return attrs

+ 19 - 29
apps/Equipment/views.py

@@ -76,7 +76,7 @@ class QxzDeviceDetailView(APIView):
         request_data = serializer.validated_data
 
         conf_wheres = {
-            "device_id":request_data["device_id"],
+            "device_id":request_data["device_id"]
         }
         conf_m = MongoDBTools(db_name='smartfarming', table_name='sa_qxz_conf')
         conf_data = conf_m.find_one(wheres=conf_wheres)
@@ -88,11 +88,10 @@ class QxzDeviceDetailView(APIView):
         result = {"conf":conf_data,"total_counts":0,"items":[]}
 
         data_m = MongoDBTools(db_name='smartfarming', table_name='sa_qxz_data')
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": request_data["device_id"]
             }
-            data = data_m.find_many(wheres=data_wheres,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": request_data["device_id"],
@@ -101,7 +100,7 @@ class QxzDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
         for item in data:
@@ -194,12 +193,10 @@ class ScdDeviceDetailView(APIView):
             "device_data": "$device_data"
         }
         data_m = MongoDBTools(db_name='smartfarming', table_name='sa_device_scd_data')
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": d_id
             }
-            
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": d_id,
@@ -208,7 +205,7 @@ class ScdDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
         
@@ -306,11 +303,10 @@ class CbdDeviceDetailView(APIView):
             "addtime": "$addtime",
             "device_data": "$device_data"
         }
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": d_id
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": d_id,
@@ -319,7 +315,7 @@ class CbdDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
 
@@ -385,11 +381,10 @@ class CbdDevicePhotoView(APIView):
                 "addr": "$addr"
             }
 
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": str(d_id)
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": str(d_id),
@@ -398,7 +393,7 @@ class CbdDevicePhotoView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
         for item in data:
@@ -513,11 +508,10 @@ class BzyDeviceDetailView(APIView):
             "device_data": "$device_data"
         }
 
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": d_id
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": d_id,
@@ -526,7 +520,7 @@ class BzyDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
 
@@ -581,11 +575,10 @@ class BzyDevicePhotoView(APIView):
             "addtime": "$addtime",
             "addr": "$addr"
         }
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": str(d_id)
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": str(d_id),
@@ -594,7 +587,7 @@ class BzyDevicePhotoView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
 
@@ -692,11 +685,10 @@ class XycbDeviceDetailView(APIView):
             "device_data": "$device_data"
         }
 
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": d_id
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": d_id,
@@ -705,7 +697,7 @@ class XycbDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
 
@@ -800,11 +792,10 @@ class XctDeviceDetailView(APIView):
             "device_data": "$device_data"
         }
 
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": d_id
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": d_id,
@@ -813,7 +804,7 @@ class XctDeviceDetailView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts
 
@@ -870,11 +861,10 @@ class XctDevicePhotoView(APIView):
             "indentify_photo":"$indentify_photo",
             "indentify_result":"$indentify_result"
         }
-        if request_data["req"] == "new":
+        if request_data.get("start_timestamp") == 0:
             data_wheres = {
                 "device_id": str(d_id)
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["offset"],limit=request_data["page_size"])
         else:
             data_wheres = {
                 "device_id": str(d_id),
@@ -883,7 +873,7 @@ class XctDevicePhotoView(APIView):
                     "$lte": request_data["end_timestamp"]
                 }
             }
-            data = data_m.find_many(wheres=data_wheres,options=data_project,is_reverse=False,skip=(request_data["page"]-1)*request_data["page_size"],limit=request_data["page_size"])
+        data = data_m.find_many(wheres=data_wheres,options=data_project,skip=request_data["page_start"],limit=request_data["page_size"])
         total_counts = data.count()
         result["total_counts"] = total_counts