|
@@ -455,8 +455,7 @@ class DeviceManagement(View):
|
|
print(e)
|
|
print(e)
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|
|
|
|
|
|
- @staticmethod
|
|
|
|
- def get_device_icon(request_dict, response):
|
|
|
|
|
|
+ def get_device_icon(self, request_dict, response):
|
|
lang = request_dict.get('lang', 'en')
|
|
lang = request_dict.get('lang', 'en')
|
|
app_bundle_id = request_dict.get('appBundleId', None)
|
|
app_bundle_id = request_dict.get('appBundleId', None)
|
|
version_number = request_dict.get('versionNumber', None)
|
|
version_number = request_dict.get('versionNumber', None)
|
|
@@ -464,43 +463,94 @@ class DeviceManagement(View):
|
|
return response.json(444)
|
|
return response.json(444)
|
|
if lang != 'cn':
|
|
if lang != 'cn':
|
|
lang = 'en'
|
|
lang = 'en'
|
|
- version_number_qs = AppVersionNumber.objects.filter(app_bundle__app_bundle_id=app_bundle_id,
|
|
|
|
- version_number=version_number)
|
|
|
|
- if not version_number_qs.exists():
|
|
|
|
- version_number_qs = AppVersionNumber.objects.filter(app_bundle__app_bundle_id=app_bundle_id)
|
|
|
|
|
|
+ if version_number >= '2.6.2.1':
|
|
|
|
+ return self.newAppVersion(response, app_bundle_id, lang) # 获取2.6.2.1及以上版本设备信息图标
|
|
|
|
+ else:
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(app_bundle__app_bundle_id=app_bundle_id,
|
|
|
|
+ version_number=version_number)
|
|
if not version_number_qs.exists():
|
|
if not version_number_qs.exists():
|
|
- return response.json(173)
|
|
|
|
- version_qs = version_number_qs.values('version_number')
|
|
|
|
- test_list = [item[key] for item in version_qs for key in item]
|
|
|
|
- if (version_number > test_list[-1] or version_number < test_list[0]):
|
|
|
|
- version_number_qs = version_number_qs.filter().values('id').order_by('id')
|
|
|
|
- total_list = [item[key] for item in version_number_qs for key in item]
|
|
|
|
- version_number_id = total_list[-1]
|
|
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(app_bundle__app_bundle_id=app_bundle_id)
|
|
|
|
+ if not version_number_qs.exists():
|
|
|
|
+ return response.json(173)
|
|
|
|
+ version_qs = version_number_qs.values('version_number')
|
|
|
|
+ test_list = [item[key] for item in version_qs for key in item]
|
|
|
|
+ if version_number > test_list[-1] or version_number < test_list[0]:
|
|
|
|
+ version_number_qs = version_number_qs.filter().values('id').order_by('id')
|
|
|
|
+ total_list = [item[key] for item in version_number_qs for key in item]
|
|
|
|
+ version_number_id = total_list[-1]
|
|
|
|
+ else:
|
|
|
|
+ pos = bisect_left(test_list, version_number)
|
|
|
|
+ if pos == 0:
|
|
|
|
+ return test_list[0]
|
|
|
|
+ if pos == len(test_list):
|
|
|
|
+ return test_list[-1]
|
|
|
|
+ before = test_list[pos - 1]
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=before).values('id')
|
|
|
|
+ version_number_id = version_number_qs[0]['id']
|
|
else:
|
|
else:
|
|
- pos = bisect_left(test_list, version_number)
|
|
|
|
- if pos == 0:
|
|
|
|
- return test_list[0]
|
|
|
|
- if pos == len(test_list):
|
|
|
|
- return test_list[-1]
|
|
|
|
- before = test_list[pos - 1]
|
|
|
|
- version_number_qs = AppVersionNumber.objects.filter(version_number=before).values('id')
|
|
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=version_number).values('id')
|
|
version_number_id = version_number_qs[0]['id']
|
|
version_number_id = version_number_qs[0]['id']
|
|
- else:
|
|
|
|
- version_number_qs = AppVersionNumber.objects.filter(version_number=version_number).values('id')
|
|
|
|
- version_number_id = version_number_qs[0]['id']
|
|
|
|
|
|
+ try:
|
|
|
|
+ app_bundle_qs = AppBundle.objects.filter(app_bundle_id=app_bundle_id,
|
|
|
|
+ app_device_type__devicenamelanguage__lang=lang,
|
|
|
|
+ app_device_type__app_version_number_id=version_number_id). \
|
|
|
|
+ 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'),
|
|
|
|
+ app_version_number_id=F('app_device_type__app_version_number_id')).order_by(
|
|
|
|
+ 'app_device_type__devicenamelanguage__sort').values('model', 'type', 'icon', 'name', 'sort',
|
|
|
|
+ 'app_device_type__app_version_number_id')
|
|
|
|
+ dvr_list = [app_bundle for app_bundle in app_bundle_qs if app_bundle['model'] == 1]
|
|
|
|
+ ipc_list = [app_bundle for app_bundle in app_bundle_qs if app_bundle['model'] == 2]
|
|
|
|
+ print(dvr_list, ipc_list)
|
|
|
|
+ res = {
|
|
|
|
+ 'deviceDvr': dvr_list,
|
|
|
|
+ 'deviceIpc': ipc_list,
|
|
|
|
+ }
|
|
|
|
+ return response.json(0, res)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ print(e)
|
|
|
|
+ return response.json(500, repr(e))
|
|
|
|
+
|
|
|
|
+ def newAppVersion(self, response, app_bundle_id, lang):
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(app_bundle__app_bundle_id=app_bundle_id) # 获取包
|
|
|
|
+ if not version_number_qs.exists():
|
|
|
|
+ return response.json(173)
|
|
|
|
+ # 获取版本号
|
|
try:
|
|
try:
|
|
- app_bundle_qs = AppBundle.objects.filter(app_bundle_id=app_bundle_id,
|
|
|
|
- app_device_type__devicenamelanguage__lang=lang,
|
|
|
|
- app_device_type__app_version_number_id=version_number_id). \
|
|
|
|
- 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'),
|
|
|
|
- app_version_number_id=F('app_device_type__app_version_number_id')).order_by(
|
|
|
|
- 'app_device_type__devicenamelanguage__sort').values('model', 'type', 'icon', 'name', 'sort',
|
|
|
|
- 'app_device_type__app_version_number_id')
|
|
|
|
- dvr_list = [app_bundle for app_bundle in app_bundle_qs if app_bundle['model'] == 1]
|
|
|
|
- ipc_list = [app_bundle for app_bundle in app_bundle_qs if app_bundle['model'] == 2]
|
|
|
|
|
|
+ app_bundle_list = []
|
|
|
|
+ if app_bundle_id == 'com.ansjer.zccloud' or app_bundle_id == 'com.ansjer.zccloud_a':
|
|
|
|
+ version_number_qs = version_number_qs.values('version_number')[0:]
|
|
|
|
+ else:
|
|
|
|
+ version_number_qs = version_number_qs.values('version_number')[1:]
|
|
|
|
+ for version_number in version_number_qs:
|
|
|
|
+ version_number = version_number['version_number']
|
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=version_number,
|
|
|
|
+ app_bundle__app_bundle_id=app_bundle_id).values(
|
|
|
|
+ 'id')
|
|
|
|
+ version_number_id = version_number_qs[0]['id']
|
|
|
|
+ app_bundle_qs = AppBundle.objects.filter(app_bundle_id=app_bundle_id,
|
|
|
|
+ app_device_type__devicenamelanguage__lang=lang,
|
|
|
|
+ app_device_type__app_version_number_id=version_number_id). \
|
|
|
|
+ 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'),
|
|
|
|
+ app_version_number_id=F('app_device_type__app_version_number_id')).order_by(
|
|
|
|
+ 'app_device_type__devicenamelanguage__sort').values('model', 'type', 'icon', 'name', 'sort',
|
|
|
|
+ 'app_device_type__app_version_number_id')
|
|
|
|
+ for app_bundle in app_bundle_qs:
|
|
|
|
+ app_bundle_list.append({
|
|
|
|
+ 'model': app_bundle['model'],
|
|
|
|
+ 'type': app_bundle['type'],
|
|
|
|
+ 'icon': app_bundle['icon'],
|
|
|
|
+ 'name': app_bundle['name'],
|
|
|
|
+ 'sort': app_bundle['sort'],
|
|
|
|
+ 'app_device_type__app_version_number_id': app_bundle['app_device_type__app_version_number_id'],
|
|
|
|
+ })
|
|
|
|
+ dvr_list = [app_bundle for app_bundle in app_bundle_list if app_bundle['model'] == 1]
|
|
|
|
+ ipc_list = [app_bundle for app_bundle in app_bundle_list if app_bundle['model'] == 2]
|
|
print(dvr_list, ipc_list)
|
|
print(dvr_list, ipc_list)
|
|
res = {
|
|
res = {
|
|
'deviceDvr': dvr_list,
|
|
'deviceDvr': dvr_list,
|