yf_yzl 2 yıl önce
ebeveyn
işleme
9dd12db89f

+ 6 - 2
smartfarming/api/views/camera/cameraserializers.py

@@ -24,8 +24,12 @@ class MongoDeviceCameraSerializers(serializers.ModelSerializer):
         return 1 if MongoCameraPhoto.objects.filter(device_id=obj.device_id) else 0
 
     def get_camera_playback(self, obj):
-        
-        return MongoCameraData.objects.get(device_id=obj.device_id).camera_playback
+        camera_data = ""
+        try:
+            camera_data = MongoCameraData.objects.get(device_id=obj.device_id)
+            return camera_data.camera_playback
+        except Exception as e:
+            return 0
 
     def get_status(self, obj):
         return obj.device_status

+ 1 - 0
smartfarming/models/agriculture.py

@@ -28,6 +28,7 @@ class KnowledgeManage(models.Model):
     origin = models.TextField("知识来源", default="")
     content = models.TextField("内容详情", default="")
     is_delete = models.IntegerField("是否删除", default=1)
+    count = models.IntegerField("阅读量", default=0)
 
     class Meta:
         db_table = "knowledge_manage"

+ 2 - 1
smartfarming/serializers/knowledge_serializer.py

@@ -40,7 +40,8 @@ class KnowledgeManageSerializer(serializers.ModelSerializer):
             "origin",
             "content",
             "is_delete",
-            "category_id"
+            "category_id",
+            "count"
         ]
 
 

+ 16 - 0
smartfarming/serializers/pests_serializers.py

@@ -1,4 +1,6 @@
 from smartfarming.models.pests_bank import MongoPestBank
+from smartfarming.models.pest_count import MongoCBDPestWarning
+from smartfarming.models.weather import MongoQXZ_Alarm_Log_New
 from rest_framework import serializers
 
 
@@ -6,4 +8,18 @@ class PestBankSerializers(serializers.ModelSerializer):
 
     class Meta:
         model = MongoPestBank
+        fields = "__all__"
+
+
+class MongoCBDPestWarningSerializers(serializers.ModelSerializer):
+
+    class Meta:
+        model = MongoCBDPestWarning
+        fields = "__all__"
+
+
+class MongoQXZAlarmLogNewSerializers(serializers.ModelSerializer):
+
+    class Meta:
+        model = MongoQXZ_Alarm_Log_New
         fields = "__all__"

+ 7 - 2
smartfarming/urls.py

@@ -44,7 +44,8 @@ from smartfarming.views.home_land import (
     CountryModelAPIView,
     CountryModelAddAPIView,
     CountryModelUpdateAPIView,
-    CountryModelDeleteAPIView
+    CountryModelDeleteAPIView,
+    CountryModelDetailAPIView
 )
 
 from smartfarming.views.device import (
@@ -68,7 +69,8 @@ from smartfarming.views.knowledge import (
     InformationAPIView,
     InformationAddAPIView,
     InformationUpdateAPIView,
-    InformationDeleteAPIView
+    InformationDeleteAPIView,
+    InformationDetailAPIView
 )
 
 
@@ -133,6 +135,8 @@ urlpatterns = [
     path("country_add", CountryModelAddAPIView.as_view()),  # 乡村增加
     path("country_update", CountryModelUpdateAPIView.as_view()),  # 乡村编辑
     path("country_delete", CountryModelDeleteAPIView.as_view()),  # 乡村删除
+    path("country_detail", CountryModelDetailAPIView.as_view()),  # 乡村详情
+
     path("pest", PestBankAPIView.as_view()),  # 虫害列表
 
     path("plan_info", LandPlanInfoAPIView.as_view()), # 种植作物列表及统计
@@ -161,6 +165,7 @@ urlpatterns = [
     path("information_update", InformationUpdateAPIView.as_view()),  # 研判信息编辑
     path("information_add", InformationAddAPIView.as_view()), # 研判信息新增
     path("information_delete", InformationDeleteAPIView.as_view()), # 研判信息删除
+    path("information_detail", InformationDetailAPIView.as_view()), # 研判信息详情
 
     path("qx_ca_lst", QxzCameraList.as_view()),  # 气象摄像列表
     path("qx_ca_update", QxzCameraUpdate.as_view()),  # 气象摄像位置更新

+ 11 - 0
smartfarming/views/counts_views.py

@@ -13,6 +13,7 @@ from smartfarming.models.worm_forecast import MongoCBDphoto
 from smartfarming.models.pest_count import MongoCBDPestWarning
 from smartfarming.models.weather import MongoQXZ_Alarm_Log_New
 from smartfarming.serializers.ascend_serializers import LandPlanInfoSerializers
+from smartfarming.serializers.pests_serializers import PestBankSerializers, MongoQXZAlarmLogNewSerializers
 from smartfarming.utils import get_recent_month, get_weather
 from smartfarming.api.views.forecast.all_dict import insect_dict
 from smartfarming.models.device import MongoDevice
@@ -229,6 +230,16 @@ class AlermNewsAPIView(APIView):
             print(e)
             return Response({"code": 2, "msg": "获取数据失败"})
         
+class APPAlarmAPIView(APIView):
+
+    def post(self, request):
+        # todo 
+        pest_query = MongoCBDPestWarning.objects.all().order_by("-upltime")
+
+        
+
+
+        
 
 class QxzCameraList(APIView):
     permission_classes = []

+ 13 - 0
smartfarming/views/home_land.py

@@ -446,3 +446,16 @@ class CountryModelDeleteAPIView(APIView):
             return Response({"code": 0, "msg": "删除成功"})
         except Exception as e:
             return Response({"code": 2, "msg": "删除失败"})
+
+
+class CountryModelDetailAPIView(APIView):
+
+    def post(self, request):
+        # 乡村详情
+        request_data = request.data
+        try:
+            queryset = CountryModel.objects.filter(id=request_data.get("country_id")).first()
+            serializers = CountryModelSerializers(queryset)
+            return Response({"code": 0, "msg": "success", "data": serializers.data})
+        except Exception as e:
+            return Response({"code": 2, "msg": "删除失败"})

+ 27 - 1
smartfarming/views/knowledge.py

@@ -108,6 +108,7 @@ class KnowledgeManageAPIView(APIView):
         request_data = request.data 
         category_id = request_data.get("category_id")
         related_plan = request_data.get("related_plan")
+        is_top = request_data.get("is_top") 
         page_num = int(request_data.get("pagenum", 1)) if request_data.get("pagenum") else 1
         page_size = int(request_data.get("pagesize", 10)) if request_data.get("pagesize") else 10
         if category_id and related_plan:
@@ -118,6 +119,8 @@ class KnowledgeManageAPIView(APIView):
             queryset = KnowledgeManage.objects.filter( Q(is_delete=1) & Q(related_plan__icontains=related_plan)).order_by("-is_top","-addtime")
         else:
             queryset = KnowledgeManage.objects.filter(is_delete=1).order_by("-is_top","-addtime")
+        if is_top:
+            queryset = queryset.filter(is_top=1).order_by("-is_top","-addtime")
         total_obj = queryset.count()
         paginator = Paginator(queryset, page_size)
         page_obj = paginator.get_page(page_num)
@@ -218,6 +221,11 @@ class KnowledgeManageDetailAPIView(APIView):
             manage_id = request_data.get("manage_id")
             queryset = KnowledgeManage.objects.filter(is_delete=1, id=manage_id).order_by("-addtime").first()
             serializers = KnowledgeManageSerializer(queryset)
+            if queryset:
+                queryset.count += 1
+            else:
+                queryset.count = 1
+            queryset.save()
             return Response({"code": 0, "msg": "success", "data": serializers.data})
         except:
             return Response({"code": 2, "msg": "fail"})
@@ -299,4 +307,22 @@ class InformationDeleteAPIView(APIView):
             else:
                 return Response({"code": 2, "msg": "失败"})
         except:
-            return Response({"code": 2, "msg": "fail"})
+            return Response({"code": 2, "msg": "fail"})
+        
+
+
+
+class InformationDetailAPIView(APIView):
+
+    def post(self, request):
+        # 研判信息删除
+        try:
+            request_data = request.data 
+            information_id = request_data.get("information_id")
+            queryset = Information.objects.get(id=information_id)
+            serializers = InformationSerializer(queryset)
+            return Response({"code": 0, "msg": "success", "data": serializers.data})
+        except Exception as e:
+            return Response({"code": 2, "msg": "fail"})
+        
+        

+ 1 - 1
smartfarming/views/user.py

@@ -243,7 +243,7 @@ class UserListAPIView(APIView):
         try:
             for user in users:
                 user["add_time"] = int(user.get("date_joined").timestamp()) if user.get("date_joined", "") else int(time.time())
-                device_user = DeviceUser.objects.filter(uid=user.get("id"), state=1).values("real_name", "mobile", "state", "remark", "role_id")
+                device_user = DeviceUser.objects.filter(uid=user.get("id"), state__in=[0, 1]).values("real_name", "mobile", "state", "remark", "role_id")
                 if device_user:
                     user.update(device_user[0])
                     user["role_name"] = Role.objects.get(id=user.get("role_id")).role_name