Эх сурвалжийг харах

优化:app设备类型数据的添加功能(当填入新的包时,创建该包;当再次添加时同样判断该包是否存在,存在则创建数据,否则创建该包)

guanhailong 3 жил өмнө
parent
commit
f2cce9c54e

+ 12 - 20
AdminController/DeviceManagementController.py

@@ -77,29 +77,15 @@ class DeviceManagement(View):
             elif operation == 'getAppBundle':  # 获取app版本包
                 return self.get_app_bundle(response)
             elif operation == 'upFile':
-                return self.up_file(request_dict, response)
+                return self.up_file(request_dict, request, response)
             else:
                 return response.json(444, 'operation')
 
     @staticmethod
-    def up_file(request_dict, response):
-
-        model = request_dict.get('model', None)
-        type = request_dict.get('type', None)
-        icon = request_dict.get('icon', None)
-        lang = request_dict.get('lang', None)
-        name = request_dict.get('name', None)
-        sort = request_dict.get('sort', None)
-
-        if not all([model, type, icon, lang, name, sort]):
-            return response.json(444)
-        model = int(model)
-        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
-        bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'ansjer-static-resources')
-        key = '' + icon  # 选择存放图片的位置
-        # 地址:
+    def up_file(request_dict, request, response):
         pass
 
+
     @classmethod
     def get_app_bundle(cls, response):
         app_bundle_qs = AppBundle.objects.all().values('id', 'app_bundle_id')
@@ -117,8 +103,9 @@ class DeviceManagement(View):
     @staticmethod
     def add_app_device_type(request_dict, response):
         # 添加APP设备类型
-        app_bundle = request_dict.get(
-            'AppBundle', '')[
+        app_bundle_name = request_dict.get('appbundleName', None)
+        app_bundle_id = request_dict.get(
+            'appBundleId', '')[
                      1:-1].split(',')  # '[1,2]' -> ['1','2']
         # app_device_type表数据
         model = request_dict.get('model', None)
@@ -135,10 +122,15 @@ class DeviceManagement(View):
 
         try:
             with transaction.atomic():
+                for app_id in app_bundle_id:
+                    app_bundle_qs = AppBundle.objects.filter(id=app_id).values('id')
+                    if not app_bundle_qs.exists():
+                        AppBundle.objects.create(app_bundle_id=app_bundle_name, id=app_id)
+                        return response.json(0)
                 app_device_type_qs = AppDeviceType.objects.create(model=model, type=type, icon=icon)
                 DeviceNameLanguage.objects.create(lang=lang, name=name, sort=sort,
                                                   app_device_type_id=app_device_type_qs.id)
-                for app_id in app_bundle:
+                for app_id in app_bundle_id:
                     app_bundle_qs = AppBundle.objects.filter(id=app_id).values('id')
                     app_bundle_qs = app_bundle_qs[0]['id']
                     app_device_type_qs.appbundle_set.add(app_bundle_qs)