Browse Source

add route /applet/user/to_new

liqian 2 years ago
parent
commit
25f6bdb648
2 changed files with 83 additions and 0 deletions
  1. 20 0
      app.py
  2. 63 0
      user2new.py

+ 20 - 0
app.py

@@ -16,6 +16,7 @@ import ast
 from gevent.pywsgi import WSGIServer
 from multiprocessing import cpu_count, Process
 from utils import update_video_w_h_rate
+from user2new import user2new
 # from werkzeug.middleware.profiler import ProfilerMiddleware
 
 
@@ -154,6 +155,25 @@ def update_rov():
         return json.dumps(result)
 
 
+# 管理后台指定用户恢复成新用户
+@app.route('/applet/user/to_new', methods=['GET', 'POST'])
+def user_to_new():
+    try:
+        request_data = json.loads(request.get_data())
+        log_.info({'requestUri': '/applet/user/to_new', 'requestData': request_data})
+        app_type = request_data.get('appType')
+        mid = request_data.get('mid')
+        uid = request_data.get('uid')
+        user2new(app_type=app_type, mid=mid, uid=uid)
+        result = {'code': 200, 'message': 'success'}
+        log_.info({'requestUri': '/applet/user/to_new', 'result': result})
+        return json.dumps(result)
+    except Exception as e:
+        log_.error(traceback.format_exc())
+        result = {'code': -1, 'message': 'fail'}
+        return json.dumps(result)
+
+
 # app热榜
 @app.route('/app/video/hot_list', methods=['GET', 'POST'])
 def app_video_hot_list():

+ 63 - 0
user2new.py

@@ -0,0 +1,63 @@
+import traceback
+from datetime import date, datetime, timedelta
+from db_helper import RedisHelper
+from config import set_config
+from log import Log
+
+config_ = set_config()
+log_ = Log()
+
+
+def user2new(app_type, mid, uid):
+    """
+    管理后台指定用户恢复成新用户
+    :param app_type: 产品标识
+    :param mid: mid
+    :param uid: uid
+    :return: None
+    """
+    redis_helper = RedisHelper()
+
+    # 清除对应的预曝光列表
+    preview_key = f"{config_.PREVIEW_KEY_PREFIX}{app_type}.{mid}"
+    redis_helper.del_keys(key_name=preview_key)
+
+    # 清除对应的小时级数据及数据记录
+    h_key_prefix_list = [
+        config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX,
+        config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX,
+        config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX_REGION_24H,
+        config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX_REGION_24H
+    ]
+    for h_key_prefix in h_key_prefix_list:
+        h_key_name = f"{h_key_prefix}{mid}"
+        redis_helper.del_keys(key_name=h_key_name)
+
+    # 清除用户上一次列表中对应的位置记录数据
+    last_idx_key_prefix_list = [
+        config_.LAST_VIDEO_FROM_ROV_POOL_PREFIX,
+        config_.LAST_VIDEO_FROM_RULE_DAY_POOL_PREFIX,
+        config_.LAST_VIDEO_FROM_ROV_POOL_PRE_PREFIX,
+        config_.LAST_VIDEO_FROM_ROV_POOL_NOW_PREFIX,
+        f"{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{1}.",
+        f"{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{2}.",
+    ]
+    # 天级
+    now_date = date.today().strftime('%Y%m%d')
+    pre_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
+    date_list = [now_date, pre_date]
+    for dt in date_list:
+        for last_idx_key_prefix in last_idx_key_prefix_list:
+            h_key_name = f"{last_idx_key_prefix}{app_type}.{mid}.{dt}"
+            redis_helper.del_keys(key_name=h_key_name)
+    # 小时级
+    h = datetime.now().hour
+    h_list = [h]
+    if h == 0:
+        h_list.append(23)
+    else:
+        h_list.append(h-1)
+    for redis_h in h_list:
+        for last_idx_key_prefix in last_idx_key_prefix_list:
+            h_key_name = f"{last_idx_key_prefix}{app_type}.{mid}.{redis_h}"
+            redis_helper.del_keys(key_name=h_key_name)