Browse Source

设备请求分配api

lang 4 năm trước cách đây
mục cha
commit
c99964d1c6
3 tập tin đã thay đổi với 79 bổ sung20 xóa
  1. 75 0
      Controller/DeviceConfirmRegion.py
  2. 0 20
      Controller/UserController.py
  3. 4 0
      Model/models.py

+ 75 - 0
Controller/DeviceConfirmRegion.py

@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@software: PyCharm
+@Version: python3.6
+"""
+import datetime
+import traceback
+import time
+import logging
+import jwt
+import simplejson
+import simplejson as json
+import requests
+from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
+from django.db.models import Q
+from django.http import HttpResponseRedirect
+from django.utils.decorators import method_decorator
+from django.utils.timezone import utc
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic import TemplateView
+from jwt.algorithms import RSAAlgorithm
+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
+from Object.AWS.SesClassObject import SesClassObject
+from Object.AliSmsObject import AliSmsObject
+from Object.RedisObject import RedisObject
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
+from Service.TemplateService import TemplateService
+from django.views.generic import View
+import base64
+import random
+from io import BytesIO
+from PIL import Image, ImageDraw, ImageFont
+from django.shortcuts import HttpResponse
+from 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 post(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']})
+
+

+ 0 - 20
Controller/UserController.py

@@ -49,26 +49,6 @@ from PIL import Image, ImageDraw, ImageFont
 from django.shortcuts import HttpResponse
 from 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 post(self, request, *args, **kwargs):
-        response = ResponseObject()
-        request.encoding = 'utf-8'
-        number = request.POST.get('number', None)
-        selectRegion = CountryModel.objects.filter(number=number).values('region__continent_code')
-        if not selectRegion.exists():
-            return response.json(444)
-        ip = CommonService.get_ip_address(request)
-        # ip = '13.56.215.252'
-        ipInfo = CommonService.getIpIpInfo(ip,"CN")
-        if ipInfo['continent_code'] == selectRegion[0]['region__continent_code']:
-            return response.json(0)
-        return response.json(444)
-
 # 获取验证码
 class authCodeView(TemplateView):
 

+ 4 - 0
Model/models.py

@@ -1328,6 +1328,8 @@ class RegionModel(models.Model):
     id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=32, default='', verbose_name='区域名称')
     continent_code = models.CharField(max_length=3, default='', verbose_name='洲代码')
+    api = models.CharField(max_length=50, default='', verbose_name='请求地址')
+
 
     class Meta:
         db_table = 'tb_region'
@@ -1472,6 +1474,8 @@ class CountryModel(models.Model):
     add_time = models.IntegerField(default=0, verbose_name='添加时间')
     update_time = models.IntegerField(default=0, verbose_name='更新时间')
     region = models.ForeignKey(RegionModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联区域表')
+    country_code = models.CharField(max_length=2, default='', verbose_name='国家iso2代码')
+    country_name = models.CharField(max_length=20, default='', verbose_name='国家名')
 
     class Meta:
         db_table = 'tb_country'