|
@@ -26,7 +26,7 @@ from ratelimit.decorators import ratelimit
|
|
|
from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
|
|
|
from Controller.CheckUserData import DataValid, date_handler, RandomStr
|
|
|
from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
|
|
|
- UserAppFrequencyModel, CountryIPModel, CountryModel, RegionModel, P2PIpModel
|
|
|
+ UserAppFrequencyModel, CountryIPModel, CountryModel, RegionModel, P2PIpModel, DeviceDomainModel
|
|
|
from Object.AWS.SesClassObject import SesClassObject
|
|
|
from Object.AliSmsObject import AliSmsObject
|
|
|
from Object.RedisObject import RedisObject
|
|
@@ -62,15 +62,62 @@ class ConfirmRegion(TemplateView):
|
|
|
# serial_number = request.POST.get('serial_number', None)
|
|
|
ip = CommonService.get_ip_address(request)
|
|
|
# ip = '14.102.176.0'
|
|
|
- ipInfo = CommonService.getIpIpInfo(ip,"CN")
|
|
|
+ ipInfo = CommonService.getIpIpInfo(ip, "CN")
|
|
|
if ipInfo['country_code']:
|
|
|
device_request_url = CountryModel.objects.filter(country_code=ipInfo['country_code']).values("region__api")
|
|
|
if device_request_url.exists():
|
|
|
- return response.json(0,{"request_api_url":device_request_url[0]['region__api']})
|
|
|
+ return response.json(0, {"request_api_url":device_request_url[0]['region__api']})
|
|
|
|
|
|
# 不存在默认返回美洲地区api。
|
|
|
api = RegionModel.objects.filter(continent_code='NA').values("api")
|
|
|
- return response.json(0,{"request_api_url":api[0]['api']})
|
|
|
+ return response.json(0,{"request_api_url": api[0]['api']})
|
|
|
+
|
|
|
+
|
|
|
+# 根据设备的ip返回域名
|
|
|
+class ConfirmRegionV2(TemplateView):
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(ConfirmRegionV2, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ try:
|
|
|
+ response = ResponseObject()
|
|
|
+ uid = request.GET.get('uid', None)
|
|
|
+ serial_number = request.GET.get('serial_number', None)
|
|
|
+ if not uid and not serial_number:
|
|
|
+ return response.json(444)
|
|
|
+ if uid:
|
|
|
+ data_dict = {'uid': uid}
|
|
|
+ device_domain_qs = DeviceDomainModel.objects.filter(uid=uid)
|
|
|
+ else:
|
|
|
+ data_dict = {'serial_number': serial_number}
|
|
|
+ device_domain_qs = DeviceDomainModel.objects.filter(serial_number=serial_number)
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
+ data_dict['ip'] = ip
|
|
|
+ ipInfo = CommonService.getIpIpInfo(ip, 'CN')
|
|
|
+ country_code = ipInfo['country_code']
|
|
|
+ if country_code:
|
|
|
+ data_dict['country_name'] = ipInfo['country_name']
|
|
|
+ device_request_url = CountryModel.objects.filter(country_code=country_code).values('region__api')
|
|
|
+ if device_request_url.exists():
|
|
|
+ api = device_request_url[0]['region__api']
|
|
|
+ else: # 默认返回美洲地区api
|
|
|
+ api = RegionModel.objects.filter(continent_code='NA').values('api')[0]['api']
|
|
|
+ else:
|
|
|
+ # 默认返回美洲地区api
|
|
|
+ api = RegionModel.objects.filter(continent_code='NA').values('api')[0]['api']
|
|
|
+
|
|
|
+ # 更新或创建设备域名数据
|
|
|
+ if device_domain_qs.exists():
|
|
|
+ device_domain_qs.update(**data_dict)
|
|
|
+ else:
|
|
|
+ device_domain_qs.create(**data_dict)
|
|
|
+ return response.json(0, {"request_api_url": api})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
|
|
|
#确认设备所在地区
|
|
|
class Device_Region(object):
|