|
@@ -1,15 +1,13 @@
|
|
|
-#!/usr/bin/env python3
|
|
|
-# -*- coding: utf-8 -*-
|
|
|
import json
|
|
|
import time
|
|
|
|
|
|
+from django.db.models import F
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import RegionModel, CountryModel, LanguageModel, CountryLanguageModel
|
|
|
-from Object.uidManageResponseObject import uidManageResponseObject
|
|
|
+from Model.models import RegionModel, CountryModel, LanguageModel, CountryLanguageModel, App_Info
|
|
|
from Object.TokenObject import TokenObject
|
|
|
+from Object.uidManageResponseObject import uidManageResponseObject
|
|
|
from Service.CommonService import CommonService
|
|
|
-from Service.ModelService import ModelService
|
|
|
|
|
|
|
|
|
class RegionView(View):
|
|
@@ -27,13 +25,13 @@ class RegionView(View):
|
|
|
return self.validate(request_dict, operation)
|
|
|
|
|
|
def validate(self, request_dict, operation):
|
|
|
- token = TokenObject(request_dict.get('token', None))
|
|
|
-
|
|
|
response = uidManageResponseObject()
|
|
|
-
|
|
|
if operation == 'getCountry':
|
|
|
return self.get_country(request_dict, response)
|
|
|
+ elif operation == 'getCountryAndDomainName':
|
|
|
+ return self.get_country_and_domain_name(request_dict, response)
|
|
|
else:
|
|
|
+ token = TokenObject(request_dict.get('token', None))
|
|
|
if token.code != 0:
|
|
|
return response.json(token.code)
|
|
|
|
|
@@ -71,7 +69,7 @@ class RegionView(View):
|
|
|
else:
|
|
|
return response.json(444)
|
|
|
|
|
|
- def do_update(self, userID, request_dict, response):
|
|
|
+ def do_update(self, userID, request_dict, response):
|
|
|
# perm = ModelService.check_perm_uid_manage(userID, 0)
|
|
|
# if not perm:
|
|
|
# return response.json(309)
|
|
@@ -155,9 +153,10 @@ class RegionView(View):
|
|
|
now_time = int(time.time())
|
|
|
# countries = json.loads(countries)
|
|
|
|
|
|
- country_qs =CountryModel.objects.filter(number=number)
|
|
|
+ country_qs = CountryModel.objects.filter(number=number)
|
|
|
if not country_qs.exists():
|
|
|
- country = CountryModel(number=number, region_id=region_id, add_time=now_time, update_time=now_time, country_name=countries)
|
|
|
+ country = CountryModel(number=number, region_id=region_id, add_time=now_time, update_time=now_time,
|
|
|
+ country_name=countries)
|
|
|
country.save()
|
|
|
else:
|
|
|
country = country_qs[0]
|
|
@@ -166,7 +165,8 @@ class RegionView(View):
|
|
|
country_language_qs = CountryLanguageModel.objects.filter(language_id=item, country_id=country.id)
|
|
|
if not country_language_qs.exists():
|
|
|
countryLanguage = CountryLanguageModel(
|
|
|
- country_name=res[item], language_id=item, country_id=country.id, add_time=now_time, update_time=now_time)
|
|
|
+ country_name=res[item], language_id=item, country_id=country.id, add_time=now_time,
|
|
|
+ update_time=now_time)
|
|
|
countryLanguage.save()
|
|
|
return response.json(0)
|
|
|
else:
|
|
@@ -242,7 +242,8 @@ class RegionView(View):
|
|
|
count = region_qs.count()
|
|
|
|
|
|
if region_qs.exists():
|
|
|
- region_qs = region_qs[start: end].values('country_id', 'country_name', 'country__number', 'country__region__name', 'add_time', 'update_time')
|
|
|
+ region_qs = region_qs[start: end].values('country_id', 'country_name', 'country__number',
|
|
|
+ 'country__region__name', 'add_time', 'update_time')
|
|
|
else:
|
|
|
region_qs = []
|
|
|
res = {
|
|
@@ -281,6 +282,50 @@ class RegionView(View):
|
|
|
else:
|
|
|
return response.json(444)
|
|
|
|
|
|
+ @staticmethod
|
|
|
+ def get_country_and_domain_name(request_dict, response):
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
+ app_bundle_id = request_dict.get('app_bundle_id', None)
|
|
|
+ time_stamp = request_dict.get('time_stamp', None)
|
|
|
+ time_stamp_token = request_dict.get('time_stamp_token', None)
|
|
|
+
|
|
|
+ if not all([lang, app_bundle_id, time_stamp, time_stamp_token]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 校验时间戳token
|
|
|
+ time_stamp_token = int(CommonService.decode_data(time_stamp_token))
|
|
|
+ time_stamp = int(time_stamp)
|
|
|
+ now_time = int(time.time())
|
|
|
+ distance = now_time - time_stamp
|
|
|
+ if time_stamp_token != time_stamp or distance > 60000 or distance < -60000: # 为了全球化时间控制在一天内
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+ # 查询app名
|
|
|
+ app_inf_qs = App_Info.objects.filter(appBundleId=app_bundle_id).values('appName')
|
|
|
+ if not app_inf_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+
|
|
|
+ lang_qs = LanguageModel.objects.filter(lang=lang)
|
|
|
+ if not lang_qs.exists():
|
|
|
+ lang_qs = LanguageModel.objects.filter(lang='en')
|
|
|
+ lang = lang_qs[0]
|
|
|
+
|
|
|
+ # 根据app名返回相应域名
|
|
|
+ app_name = app_inf_qs[0]['appName']
|
|
|
+ country_qs = CountryLanguageModel.objects.filter(language_id=lang.id).annotate(
|
|
|
+ country_number=F('country__number'), push_api=F('country__region__push_api'))
|
|
|
+ if 'Zosi' in app_name:
|
|
|
+ country_qs = country_qs.annotate(api=F('country__region__zosi_api'))
|
|
|
+ elif 'Loocam' in app_name:
|
|
|
+ country_qs = country_qs.annotate(api=F('country__region__loocam_api'))
|
|
|
+ else:
|
|
|
+ country_qs = country_qs.annotate(api=F('country__region__api'))
|
|
|
+ country_qs = country_qs.values('country_name', 'country_number', 'api', 'push_api')
|
|
|
+ return response.json(0, list(country_qs))
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
def get_country_info(self, userID, request_dict, response):
|
|
|
# perm = ModelService.check_perm_uid_manage(userID, 0)
|
|
|
# if not perm:
|