Explorar o código

优化更新活跃用户

zhangdongming hai 1 ano
pai
achega
938907600b
Modificáronse 2 ficheiros con 18 adicións e 20 borrados
  1. 0 20
      Controller/EquipmentManagerV3.py
  2. 18 0
      Controller/UserController.py

+ 0 - 20
Controller/EquipmentManagerV3.py

@@ -26,9 +26,6 @@ from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.ModelService import ModelService
 from Service.UserDeviceService import UserDeviceService
-from django.utils.timezone import utc
-from Object.RedisObject import RedisObject
-import datetime
 
 LOGGER = logging.getLogger('info')
 
@@ -819,8 +816,6 @@ class EquipmentManagerV3(View):
                 if uid_set_qs['mobile_4g'] == 1:
                     p['isCameraOpenCloud'] = 0
             data.append(p)
-        # 刷新最后登录时间
-        self.update_user_status(userID)
         result = data
         return response.json(0, result)
 
@@ -1233,18 +1228,3 @@ class EquipmentManagerV3(View):
         except Exception as e:
             return response.json(500, repr(e))
 
-    @staticmethod
-    def update_user_status(user_id):
-        try:
-            redisObj = RedisObject()
-            key = f'BASIC:LOGIN:STATUS:{user_id}'
-            login_data = redisObj.get_data(key)
-            if login_data:
-                return True
-            now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
-            Device_User.objects.filter(userID=user_id).update(last_login=now_time)
-            redisObj.set_data(key, '1', 86400)
-            return True
-        except Exception as e:
-            LOGGER.info('更新用户最后登录时间异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
-            return False

+ 18 - 0
Controller/UserController.py

@@ -2432,10 +2432,28 @@ class InitInfoView(View):
                         user_ex_id=user_ex_qs[0].id
                     )
                     countryIp.save()
+        # 刷新最后登录时间
+        self.update_user_status(userID)
         # 获取设备是否存在有已被删除
         res = {'usmsg': 0}  # 预留字段, 有版本app该字段去掉会报错
         return response.json(0, res)
 
+    @staticmethod
+    def update_user_status(user_id):
+        try:
+            redisObj = RedisObject()
+            key = f'BASIC:LOGIN:STATUS:{user_id}'
+            login_data = redisObj.get_data(key)
+            if login_data:
+                return True
+            now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
+            Device_User.objects.filter(userID=user_id).update(last_login=now_time)
+            redisObj.set_data(key, '1', 86400)
+            return True
+        except Exception as e:
+            LOGGER.info('更新用户最后登录时间异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+            return False
+
     @staticmethod
     def save_push_config(user_id, app_bundle_id, push_type, token_val, m_code, lang, tz):
         """