user2new.py 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import traceback
  2. from datetime import date, datetime, timedelta
  3. from db_helper import RedisHelper
  4. from config import set_config
  5. from log import Log
  6. config_ = set_config()
  7. log_ = Log()
  8. def user2new(app_type, mid, uid):
  9. """
  10. 管理后台指定用户恢复成新用户
  11. :param app_type: 产品标识
  12. :param mid: mid
  13. :param uid: uid
  14. :return: None
  15. """
  16. redis_helper = RedisHelper()
  17. if app_type is None:
  18. app_type_list = [value for _, value in config_.APP_TYPE.items()]
  19. else:
  20. app_type_list = [app_type]
  21. for app_type_item in app_type_list:
  22. # 清除对应的预曝光列表
  23. preview_key = f"{config_.PREVIEW_KEY_PREFIX}{app_type_item}:{mid}"
  24. redis_helper.del_keys(key_name=preview_key)
  25. # 清除对应的小时级数据及数据记录
  26. h_key_prefix_list = [
  27. # config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX,
  28. # config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX,
  29. # config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX_24H,
  30. # config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX_24H,
  31. # config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX_REGION_24H,
  32. # config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX_REGION_24H,
  33. config_.LAST_VIDEO_FROM_REGION_DUP3_48H_PREFIX,
  34. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP3_48H,
  35. config_.LAST_VIDEO_FROM_REGION_DUP2_48H_PREFIX,
  36. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP2_48H,
  37. config_.LAST_VIDEO_FROM_REGION_DUP3_24H_PREFIX,
  38. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP3_24H,
  39. config_.LAST_VIDEO_FROM_REGION_DUP2_24H_PREFIX,
  40. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP2_24H,
  41. config_.LAST_VIDEO_FROM_REGION_DUP1_24H_PREFIX,
  42. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP1_24H,
  43. config_.LAST_VIDEO_FROM_REGION_H_PREFIX,
  44. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_H,
  45. config_.LAST_VIDEO_FROM_30DAY_PREFIX,
  46. config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_30DAY,
  47. ]
  48. for h_key_prefix in h_key_prefix_list:
  49. h_key_name = f"{h_key_prefix}{app_type_item}:{mid}"
  50. redis_helper.del_keys(key_name=h_key_name)
  51. # 清除用户上一次列表中对应的位置记录数据
  52. last_idx_key_prefix_list = [
  53. config_.LAST_VIDEO_FROM_ROV_POOL_PREFIX,
  54. # config_.LAST_VIDEO_FROM_RULE_DAY_POOL_PREFIX,
  55. # config_.LAST_VIDEO_FROM_ROV_POOL_PRE_PREFIX,
  56. # config_.LAST_VIDEO_FROM_ROV_POOL_NOW_PREFIX,
  57. # f"{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{1}.",
  58. # f"{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{2}.",
  59. # config_.LAST_VIDEO_FROM_WHOLE_MOVIES_PREFIX,
  60. config_.LAST_VIDEO_FROM_SPECIAL_POOL_PREFIX,
  61. ]
  62. # 天级
  63. now_date = date.today().strftime('%Y%m%d')
  64. pre_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
  65. date_list = [now_date, pre_date]
  66. for dt in date_list:
  67. for last_idx_key_prefix in last_idx_key_prefix_list:
  68. h_key_name = f"{last_idx_key_prefix}{app_type_item}:{mid}:{dt}"
  69. redis_helper.del_keys(key_name=h_key_name)
  70. # 小时级
  71. h = datetime.now().hour
  72. h_list = [h]
  73. if h == 0:
  74. h_list.append(23)
  75. else:
  76. h_list.append(h-1)
  77. for redis_h in h_list:
  78. for last_idx_key_prefix in last_idx_key_prefix_list:
  79. h_key_name = f"{last_idx_key_prefix}{app_type_item}:{mid}:{redis_h}"
  80. redis_helper.del_keys(key_name=h_key_name)