Browse Source

重构pc端获取设备图标

guanhailong 2 years ago
parent
commit
7fa3bf5f42
1 changed files with 10 additions and 2 deletions
  1. 10 2
      Controller/DeviceTypeController.py

+ 10 - 2
Controller/DeviceTypeController.py

@@ -8,7 +8,7 @@ from django.db.models import F
 from django.views import View
 
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
-from Model.models import DeviceTypeModel, AppBundle
+from Model.models import DeviceTypeModel, AppBundle, DeviceNameLanguage
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -90,8 +90,16 @@ class DeviceTypeView(View):
             return response.json(444)
 
     def do_query(self, response):
+        """
+        获取设备图标
+        """
         try:
+            lang = response.lang
             app_bundle_id = 'com.ansjer.zccloud'
+            app_device_qs = DeviceNameLanguage.objects.filter(lang=lang)
+            if not app_device_qs.exists():
+                lang = 'en'
+            # 同步设备图标
             app_bundle_qs = AppBundle.objects.filter(app_bundle_id=app_bundle_id).values_list(
                 'app_device_type__app_version_number_id').distinct().order_by('app_device_type__app_version_number_id')
             version_number_list = [app_bundle for app_bundle in app_bundle_qs]
@@ -100,7 +108,7 @@ class DeviceTypeView(View):
             for version in versions_filtered:
                 version = ''.join(map(str, version))
                 app_bundle_qs = AppBundle.objects.filter(app_bundle_id=app_bundle_id,
-                                                         app_device_type__devicenamelanguage__lang=response.lang,
+                                                         app_device_type__devicenamelanguage__lang=lang,
                                                          app_device_type__app_version_number_id=version). \
                     annotate(
                     model=F('app_device_type__model'), type=F('app_device_type__type'), icon=F('app_device_type__icon'),