瀏覽代碼

app获取设备图标接口使用app响应数据格式

locky 3 年之前
父節點
當前提交
1977ee5474
共有 1 個文件被更改,包括 36 次插入0 次删除
  1. 36 0
      AdminController/DeviceManagementController.py

+ 36 - 0
AdminController/DeviceManagementController.py

@@ -38,6 +38,7 @@ class DeviceManagement(View):
         elif operation == 'delDeviceData':  # 删除设备数据
             return self.del_device_data(request_dict, response)
         elif operation == 'getDeviceIcon':  # app获取设备图标
+            response = ResponseObject(language)
             return self.get_device_icon(request_dict, response)
         else:
             tko = TokenObject(
@@ -63,6 +64,8 @@ class DeviceManagement(View):
                 return self.getDeviceTypeList(request_dict, response)
             elif operation == 'deleteDeviceType':
                 return self.deleteDeviceType(request_dict, response)
+            elif operation == 'getAppDeviceTypeList':  # 获取app设备类型数据
+                return self.get_app_device_type_list(request_dict, response)
             else:
                 return response.json(444, 'operation')
 
@@ -367,3 +370,36 @@ class DeviceManagement(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    @staticmethod
+    def get_app_device_type_list(request_dict, response):
+        lang = request_dict.get('lang', 'cn')
+        app_bundle_id = request_dict.get('appBundleId', None)
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            app_bundle_qs = AppBundle.objects.filter()
+            if app_bundle_id:
+                app_bundle_qs = app_bundle_qs.filter(app_bundle_id=app_bundle_id)
+            if lang:
+                app_bundle_qs = app_bundle_qs.filter(app_device_type__devicenamelanguage__lang=lang)
+
+            total = app_bundle_qs.count()
+            app_bundle_qs = app_bundle_qs.annotate(
+                model=F('app_device_type__model'), type=F('app_device_type__type'), icon=F('app_device_type__icon'),
+                name=F('app_device_type__devicenamelanguage__name'),
+                sort=F('app_device_type__devicenamelanguage__sort')).values('model', 'type', 'icon', 'name', 'sort')[
+                            (page - 1) * line:page * line]
+            if not app_bundle_qs.exists():
+                return response.json(173)
+            app_device_type_list = [app_bundle for app_bundle in app_bundle_qs]
+            return response.json(0, {'list': app_device_type_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))