yf_yzl пре 2 година
родитељ
комит
70c3e9a4c6

+ 7 - 0
smartfarming/models/agriculture.py

@@ -47,3 +47,10 @@ class Information(models.Model):
         db_table = "information"
 
 
+
+class APKLogs(models.Model):
+    id = models.AutoField(primary_key=True)
+    history_apk = models.CharField("标题", max_length=128, default="")
+    history_qr_code = models.CharField("标题", max_length=128, default="")
+    mark = models.CharField("标题", max_length=128, default="")
+    upltime = models.IntegerField("上传时间", default=0)

+ 1 - 1
smartfarming/views/counts_views.py

@@ -64,7 +64,7 @@ class LandPlanInfoAPIView(APIView):
         all_year.reverse()
         # 获取最近5年的作物ID
         if years:
-            end = datetime.datetime(int(years[-1]) -5, 12,31,23,59).timestamp()
+            end = datetime.datetime(int(years[-1]) -6, 12,31,23,59).timestamp()
             start = datetime.datetime(int(years[-1]), 12,31,23,59).timestamp()
             plan_ids = LandPlanInfo.objects.filter(recovery_time__gte=end, recovery_time__lte=start).exclude(recovery_time=0).distinct().values_list("plan_id", flat=True).order_by("plan_id")
             counts = []

+ 49 - 0
smartfarming/views/upload_apk.py

@@ -0,0 +1,49 @@
+import os 
+from rest_framework.views import APIView
+from rest_framework.response import Response
+from rest_framework.parsers import FileUploadParser
+from kedong.settings import MEDIA_ROOT
+import uuid
+import uuid
+from datetime import datetime
+from django.conf import settings
+from smartfarming.models.agriculture import APKLogs
+
+
+config = settings.CONFIG
+
+class NewUploadAPIView(APIView):
+    def post(self, request):
+        server_web = config.get("server_web")
+        path = request.data.get("model", "others")
+        local_path = os.path.join(MEDIA_ROOT, path)
+        os.mkdir(local_path) if not os.path.exists(local_path) else None 
+        file_obj = request.data['file']
+        if file_obj.size > 1024 * 1024 * 200:
+            return Response({"code": 2, "msg": "请上传小于200M文件"})
+        try:
+            stamp = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
+            file_name = "kedong." + ((file_obj.name).split("."))[-1]
+            file = f"{local_path}/{file_name}"
+            old_url = os.path.join(local_path, f"{str(stamp)}-{file_name}")
+            if os.path.exists(file):
+                os.rename(file, old_url)
+            with open(file, 'wb') as f:
+                for chunk in file_obj.chunks():
+                    f.write(chunk)
+            url = f'{server_web}/media/{local_path}/{file_name}'
+            old_url = f"{server_web}/media/{old_url}"
+            return Response({"url": url, "old_url": old_url, "code": 0, "msg": "success"})
+        except Exception as e:
+            return Response({"code": 2, "msg": "图片保存失败,请检查或重试"})
+
+
+class APKUploadView(APIView):
+    # 上传图片
+    def post(self, request):
+        server_web = config.get("server_web")
+        local_path = os.path.join(MEDIA_ROOT, "apk")
+        os.mkdir(local_path) if not os.path.exists(local_path) else None 
+        file_apk = request.data['apk']
+        file_qrcode = request.data['qrcode']
+