Browse Source

device/confirmRegion接口换成阿里云的ip解析;
增加get_district函数;

keiSenFront 2 years ago
parent
commit
a49ff85c2b
2 changed files with 28 additions and 25 deletions
  1. 13 7
      Controller/DeviceConfirmRegion.py
  2. 15 18
      Controller/ShadowController.py

+ 13 - 7
Controller/DeviceConfirmRegion.py

@@ -5,9 +5,10 @@ from django.utils.decorators import method_decorator
 
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import TemplateView
-from Model.models import CountryModel, RegionModel, P2PIpModel, DeviceDomainModel, DeviceDomainRegionModel
+from Model.models import CountryModel, RegionModel, P2PIpModel, DeviceDomainModel, DeviceDomainRegionModel, IPAddr
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
+from Object.IPWeatherObject import IPQuery
 
 
 #确认设备所在地区
@@ -20,14 +21,19 @@ class ConfirmRegion(TemplateView):
         response = ResponseObject()
         request.encoding = 'utf-8'
         try:
-            ip = CommonService.get_ip_address(request)
+            ip = request.GET.get('ip', None)
             device_domain_data = {'ip': ip}
-            ipInfo = CommonService.getIpIpInfo(ip, 'CN')
+            ip_addr_qs = IPAddr.objects.filter(ip=ip).values("country_code")
+            if ip_addr_qs.exists():
+                country_code = ip_addr_qs[0]['country_code']
+            else:
+                ip_qs = IPQuery(ip)
+                country_code = ip_qs.country_id
             logger = logging.getLogger('info')
-            logger.info('设备获取域名---ip:{},country_code:{}'.format(ip, ipInfo['country_code']))
-            if ipInfo['country_code']:
-                device_domain_data['country_name'] = ipInfo['country_code']
-                device_request_url = CountryModel.objects.filter(country_code=ipInfo['country_code']).values("region__api")
+            logger.info('设备获取域名---ip:{},country_code:{}'.format(ip, country_code))
+            if country_code:
+                device_domain_data['country_name'] = country_code
+                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']
                     device_domain_data['api'] = api

+ 15 - 18
Controller/ShadowController.py

@@ -76,15 +76,7 @@ def update_device_shadow(request):
             if uid_set_qs.exists():
                 if ip != uid_set_qs[0]['ip']:
                     # 查询ip区级信息
-                    ip_addr_qs = IPAddr.objects.filter(ip=ip).values('district')
-                    if ip_addr_qs.exists():
-                        district = ip_addr_qs[0]['district']
-                    else:
-                        ip_qs = IPQuery(ip)
-                        district = ip_qs.district
-                        country_code = ip.country_id
-                        # ip地址信息存表
-                        IPAddr.objects.create(ip=ip, country_code=country_code, district=district)
+                    district = get_district(ip)
 
                     city_information_qs = CityInformation.objects.filter(district=district).values('city_id')
                     if city_information_qs.exists():
@@ -158,15 +150,7 @@ def update_device_shadow(request):
         LOGGER.info('{} qs_dict: {}'.format(uid, qs_dict))
 
         # 查询ip区级信息
-        ip_addr_qs = IPAddr.objects.filter(ip=ip).values('district')
-        if ip_addr_qs.exists():
-            district = ip_addr_qs[0]['district']
-        else:
-            ip_qs = IPQuery(ip)
-            district = ip_qs.district
-            country_code = ip.country_id
-            # ip地址信息存表
-            IPAddr.objects.create(ip=ip, country_code=country_code, district=district)
+        district = get_district(ip)
 
         city_information_qs = CityInformation.objects.filter(district=district).values('city_id')
         if city_information_qs.exists():
@@ -190,3 +174,16 @@ def update_device_shadow(request):
     except Exception as e:
         LOGGER.info('更新设备影子异常: {}'.format(repr(e)))
         return JsonResponse(status=200, data={'code': 1000001, 'update_shadow_error': repr(e)})
+
+
+def get_district(ip):
+    ip_addr_qs = IPAddr.objects.filter(ip=ip).values('district')
+    if ip_addr_qs.exists():
+        district = ip_addr_qs[0]['district']
+    else:
+        ip_qs = IPQuery(ip)
+        district = ip_qs.district
+        country_code = ip.country_id
+        # ip地址信息存表
+        IPAddr.objects.create(ip=ip, country_code=country_code, district=district)
+    return district