Эх сурвалжийг харах

初始化设备接口记录ip

tanghongbin 4 жил өмнө
parent
commit
3da43adcc6

+ 51 - 8
Controller/UserController.py

@@ -1809,24 +1809,27 @@ class InitInfoView(View):
 
     def get(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
-        return self.validation(request.GET)
+        return self.validation(request.GET, request)
 
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
-        return self.validation(request.POST)
+        return self.validation(request.POST, request)
 
-    def validation(self, request_dict):
+    def validation(self, request_dict, request):
         response = ResponseObject()
         token = request_dict.get('token', None)
+        unique = request_dict.get('unique', None)
         tko = TokenObject(token)
         if tko.code == 0:
             userID = tko.userID
-            return self.init_info(request_dict, userID, response)
+            return self.init_info(request_dict, userID, response, request)
+        elif unique:
+            return self.update_country(request_dict, response, request)
         else:
             return response.json(tko.code)
 
     # 初始化设备token
-    def init_info(self, request_dict, userID, response):
+    def init_info(self, request_dict, userID, response, request):
         # 未读的系统消息
         token_val = request_dict.get('token_val', None)
         m_code = request_dict.get('m_code', None)
@@ -1860,11 +1863,13 @@ class InitInfoView(View):
                     update(**update_dict)
             if appBundleId:
                 user_ex_qs = UserExModel.objects.filter(userID_id=userID)
+                country = CommonService.getAddr(CommonService.get_ip_address(request))
                 if user_ex_qs.exists():
                     update_dict = {
                         'updTime': now_time,
                         'appBundleId': appBundleId,
-                        'region': lang
+                        'region': lang,
+                        'country': country
                     }
                     user_ex_qs.update(**update_dict)
                 else:
@@ -1873,13 +1878,48 @@ class InitInfoView(View):
                         'updTime': now_time,
                         'appBundleId': appBundleId,
                         'userID_id': userID,
-                        'region': lang
+                        'region': lang,
+                        'country': country
                     }
                     UserExModel.objects.create(**create_dict)
         # 获取设备是否存在有已被删除
         res = {'usmsg': 0}  # 预留字段, 有版本app该字段去掉会报错
         return response.json(0, res)
 
+    def update_country(self, request_dict, response, request):
+        username = request_dict.get('unique', None)
+        appBundleId = request_dict.get('appBundleId', None)
+        lang = request_dict.get('lang', '')  # 语言区域
+        if username and appBundleId:
+            country = CommonService.getAddr(CommonService.get_ip_address(request))
+            user_qs = Device_User.objects.filter(username=username)
+            if user_qs.exists():
+                user = user_qs[0]
+                user_ex_qs = UserExModel.objects.filter(userID_id=user.userID)
+                now_time = int(time.time())
+                if user_ex_qs.exists():
+                    update_dict = {
+                        'updTime': now_time,
+                        'appBundleId': appBundleId,
+                        'region': lang,
+                        'country': country
+                    }
+                    user_ex_qs.update(**update_dict)
+                else:
+                    create_dict = {
+                        'addTime': now_time,
+                        'updTime': now_time,
+                        'appBundleId': appBundleId,
+                        'userID_id': user.userID,
+                        'region': lang,
+                        'country': country
+                    }
+                    UserExModel.objects.create(**create_dict)
+            else:
+                return response.json(104)
+        else:
+            return response.json(444)
+
 
 # 获取验证码
 class verifyAuthcode(TemplateView):
@@ -3480,7 +3520,10 @@ class LocalUserView(View):
         request.encoding = 'utf-8'
         request_dict = request.POST
         operation = kwargs.get('operation', None)
-        return self.validate(request_dict, operation, CommonService.get_ip_address(request))
+        print('start_time='+ str((time.time())))
+        ip=CommonService.get_ip_address(request)
+        print('end_time=' + str((time.time())))
+        return self.validate(request_dict, operation, ip)
 
     def validate(self, request_dict, operation, ip):
         language = request_dict.get('language', None)

+ 1 - 0
Model/models.py

@@ -751,6 +751,7 @@ class UserExModel(models.Model):
     userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
     appBundleId = models.CharField(default='', max_length=32, verbose_name=u'appID')
     region = models.CharField(default='', max_length=16, verbose_name='区域语言')
+    country = models.CharField(default='', max_length=100, verbose_name='国家名称')
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
 

+ 3 - 1
Service/CommonService.py

@@ -96,12 +96,14 @@ class CommonService:
     # 根据ip获取地址
     @staticmethod
     def getAddr(ip):
+        print('start_time=' + str(time.time()))
         base_dir = BASE_DIR
         # ip数据库
         db = IPIPDatabase(base_dir + '/DB/17monipdb.dat')
         addr = db.lookup(ip)
-        ModelService.add_tmp_log(addr)
+        # ModelService.add_tmp_log(addr)
         ts = addr.split('\t')[0]
+        print('end_time=' + str(time.time()))
         return ts
 
     # 通过ip检索ipip指定信息 lang为CN或EN