Browse Source

修复无法更改图标版本问题

zhangdongming 2 năm trước cách đây
mục cha
commit
4f70dcf2df
1 tập tin đã thay đổi với 22 bổ sung8 xóa
  1. 22 8
      AdminController/DeviceManagementController.py

+ 22 - 8
AdminController/DeviceManagementController.py

@@ -3,7 +3,6 @@
 import json
 import operator
 import time
-from bisect import bisect_left
 
 import oss2
 from django.db import transaction
@@ -522,29 +521,44 @@ class DeviceManagement(View):
             return response.json(500, repr(e))
 
     @staticmethod
-    def edit_app_device_type(request_dict, response):
+    def edit_app_device_type(request_dict, request, response):
         # app_device_type表数据
         app_device_type_id = request_dict.get('app_device_type__id', None)
         model = request_dict.get('model', None)
         type = request_dict.get('type', None)
-        icon = request_dict.get('icon', None)
+        icon = request.FILES.get('icon', None)
         # device_name_language表数据
         device_name_language_id = request_dict.get('app_device_type__devicenamelanguage__id', None)
         lang = request_dict.get('lang', None)
         name = request_dict.get('name', None)
         sort = request_dict.get('sort', None)
+        version_number = request_dict.get('version_number', None)
 
-        if not all([app_device_type_id, model, type, icon, device_name_language_id, lang, name, sort]):
+        if not all([app_device_type_id, model, type, device_name_language_id, lang, name, sort]):
             return response.json(444)
-
         try:
             with transaction.atomic():
-                AppDeviceType.objects.filter(id=app_device_type_id).update(model=model, type=type, icon=icon)
+                if icon:
+                    icon_path = 'https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/{}'.format(icon)
+                    AppDeviceType.objects.filter(id=app_device_type_id)\
+                        .update(model=model, type=type, icon=icon_path, app_version_number_id=version_number)
+                    bucket_name = 'ansjerfilemanager'
+                    file_key = 'app/device_type_images/{}'.format(icon)
+                    s3 = AmazonS3Util(AWS_ACCESS_KEY_ID[1], AWS_SECRET_ACCESS_KEY[1], AWS_SES_ACCESS_REGION)
+                    # 地址:https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/camera_c190.png
+                    s3.upload_file_obj(
+                        bucket_name,
+                        file_key,
+                        icon,
+                        {'ContentType': icon.content_type, 'ACL': 'public-read'})
+                else:
+                    AppDeviceType.objects.filter(id=app_device_type_id)\
+                        .update(model=model, type=type, app_version_number_id=version_number)
                 DeviceNameLanguage.objects.filter(id=device_name_language_id).update(lang=lang, name=name, sort=sort)
             return response.json(0)
         except Exception as e:
             print(e)
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     @staticmethod
     def delete_app_device_type(request_dict, response):
@@ -559,7 +573,7 @@ class DeviceManagement(View):
             return response.json(0)
         except Exception as e:
             print(e)
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     @staticmethod
     def reset_all(request, request_dict, response):