Browse Source

添加判断用户地区接口

lang 4 years ago
parent
commit
7b12ef9d01
3 changed files with 22 additions and 2 deletions
  1. 1 1
      Ansjer/urls.py
  2. 20 1
      Controller/UserController.py
  3. 1 0
      Model/models.py

+ 1 - 1
Ansjer/urls.py

@@ -20,7 +20,7 @@ from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppIn
 
 
 urlpatterns = [
 urlpatterns = [
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
-
+    url(r'^account/confirmRegion$', UserController.confirmRegion.as_view()),
     url(r'^account/authcode$', UserController.authCodeView.as_view()),
     url(r'^account/authcode$', UserController.authCodeView.as_view()),
     url(r'^v3/account/generatepictureCodeView/$', UserController.generatePictureCodeView.as_view()),
     url(r'^v3/account/generatepictureCodeView/$', UserController.generatePictureCodeView.as_view()),
     url(r'^v3/account/imageCodeRegister/$', UserController.Image_Code_RegisterView.as_view()),
     url(r'^v3/account/imageCodeRegister/$', UserController.Image_Code_RegisterView.as_view()),

+ 20 - 1
Controller/UserController.py

@@ -32,7 +32,7 @@ from ratelimit.decorators import ratelimit
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
 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 Controller.CheckUserData import DataValid, date_handler, RandomStr
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
-    UserAppFrequencyModel, CountryIPModel
+    UserAppFrequencyModel, CountryIPModel, CountryModel
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
@@ -49,6 +49,25 @@ from PIL import Image, ImageDraw, ImageFont
 from django.shortcuts import HttpResponse
 from django.shortcuts import HttpResponse
 from Ansjer.config import BASE_DIR
 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):
 class authCodeView(TemplateView):

+ 1 - 0
Model/models.py

@@ -1327,6 +1327,7 @@ class CompanyModel(models.Model):
 class RegionModel(models.Model):
 class RegionModel(models.Model):
     id = models.AutoField(primary_key=True)
     id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=32, default='', verbose_name='区域名称')
     name = models.CharField(max_length=32, default='', verbose_name='区域名称')
+    continent_code = models.CharField(max_length=3, default='', verbose_name='洲代码')
 
 
     class Meta:
     class Meta:
         db_table = 'tb_region'
         db_table = 'tb_region'