| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | #!/usr/bin/env python3# -*- coding: utf-8 -*-"""@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.@software: PyCharm@Version: python3.6"""import datetimeimport tracebackimport timeimport loggingimport jwtimport simplejsonimport simplejson as jsonimport requestsfrom django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块from django.db.models import Qfrom django.http import HttpResponseRedirectfrom django.utils.decorators import method_decoratorfrom django.utils.timezone import utcfrom django.views.decorators.csrf import csrf_exemptfrom django.views.generic import TemplateViewfrom jwt.algorithms import RSAAlgorithmfrom ratelimit.decorators import ratelimitfrom Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAINfrom Controller.CheckUserData import DataValid, date_handler, RandomStrfrom Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \    UserAppFrequencyModel, CountryIPModel, CountryModel, RegionModelfrom Object.AWS.SesClassObject import SesClassObjectfrom Object.AliSmsObject import AliSmsObjectfrom Object.RedisObject import RedisObjectfrom Object.ResponseObject import ResponseObjectfrom Object.TokenObject import TokenObjectfrom Service.CommonService import CommonServicefrom Service.ModelService import ModelServicefrom Service.TemplateService import TemplateServicefrom django.views.generic import Viewimport base64import randomfrom io import BytesIOfrom PIL import Image, ImageDraw, ImageFontfrom django.shortcuts import HttpResponsefrom Ansjer.config import BASE_DIR#确认设备所在地区class ConfirmRegion(TemplateView):    @method_decorator(csrf_exempt)    def dispatch(self, *args, **kwargs):        return super(ConfirmRegion, self).dispatch(*args, **kwargs)    def get(self, request, *args, **kwargs):        response = ResponseObject()        request.encoding = 'utf-8'        # number = request.POST.get('number', None)        # selectRegion = CountryModel.objects.filter(number=number).values('region__api_url')        # if not selectRegion.exists():        #     return response.json(0,{"api_url":"https://test.dvema.com"})        # else:        #     return response.json(0,{"api_url":selectRegion[0]['region__api_url']})        # serial_number = request.POST.get('serial_number', None)        ip = CommonService.get_ip_address(request)        # ip = '14.102.176.0'        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']})        # 不存在默认返回美洲地区api。        api = RegionModel.objects.filter(continent_code='NA').values("api")        return response.json(0,{"request_api_url":api[0]['api']})#确认设备所在地区class Device_Region(object):    def get_device_region(self, ip):        ipInfo = CommonService.getIpIpInfo(ip, "CN")        if ipInfo['country_code']:            device_request_url = CountryModel.objects.filter(country_code=ipInfo['country_code']).values("region__api","region__id")            if device_request_url.exists():                return device_request_url[0]['region__id']        # 不存在默认返回美洲地区api        api = RegionModel.objects.filter(continent_code='NA').values("id")        return api[0]['id']
 |