|
@@ -18,10 +18,12 @@ def get_video_list(ab_exp_code, search_time, data_list_type, region_code, page_n
|
|
|
:return: result
|
|
|
"""
|
|
|
redis_helper = RedisHelper()
|
|
|
- if ab_exp_code is None or search_time is None or data_list_type is None or region_code is None:
|
|
|
- data = []
|
|
|
- data_count = 0
|
|
|
- result = {'code': 200, 'message': 'success', 'dataCount': data_count, 'data': data}
|
|
|
+ if ab_exp_code is None or search_time is None or data_list_type is None or region_code is None \
|
|
|
+ or region_code == '0':
|
|
|
+ # 不支持获取全部地域数据列表
|
|
|
+ # data = []
|
|
|
+ # data_count = 0
|
|
|
+ result = {'code': -1, 'message': 'request data error!'}
|
|
|
return result
|
|
|
data = []
|
|
|
key_params = config_.VIDEO_DATA_LIST_AB_EXP_CODE_MAPPING.get(ab_exp_code)
|
|
@@ -97,16 +99,41 @@ def search_video(ab_exp_code, search_time, data_list_type, region_code, video_id
|
|
|
"""
|
|
|
redis_helper = RedisHelper()
|
|
|
if ab_exp_code is None or search_time is None or data_list_type is None or region_code is None or video_id is None:
|
|
|
- data = []
|
|
|
- data_count = 0
|
|
|
- result = {'code': 200, 'message': 'success', 'dataCount': data_count, 'data': data}
|
|
|
+ # data = []
|
|
|
+ # data_count = 0
|
|
|
+ result = {'code': -1, 'message': 'request data error!'}
|
|
|
return result
|
|
|
data = []
|
|
|
key_params = config_.VIDEO_DATA_LIST_AB_EXP_CODE_MAPPING.get(ab_exp_code)
|
|
|
app_type = key_params.get('app_type')
|
|
|
data_key = key_params.get('data_key')
|
|
|
rule_key = key_params.get('rule_key')
|
|
|
- if data_list_type == 0:
|
|
|
+ if data_list_type == 0 and region_code == '0':
|
|
|
+ # 视频数据表类型 和 地域 选择都为全部
|
|
|
+ key_prefix_list = config_.VIDEO_DATA_LIST_MAPPING.get(data_list_type).get('keyPrefixList')
|
|
|
+ code_list = [code for _, code in config_.REGION_CODE.items()]
|
|
|
+ for item in key_prefix_list:
|
|
|
+ data_list_code = item.get('dataListCode')
|
|
|
+ key_prefix = item.get('keyPrefix')
|
|
|
+ for code in code_list:
|
|
|
+ key_name = f"{key_prefix}{code}.{app_type}.{data_key}.{rule_key}.{search_time}"
|
|
|
+ rank = redis_helper.get_rank_with_value(key_name=key_name, value=int(video_id), desc=True)
|
|
|
+ score = redis_helper.get_score_with_value(key_name=key_name, value=int(video_id))
|
|
|
+ if rank is None or score is None:
|
|
|
+ continue
|
|
|
+ videos = {
|
|
|
+ 'abExpCode': ab_exp_code,
|
|
|
+ 'searchTime': search_time,
|
|
|
+ 'dataListType': data_list_code,
|
|
|
+ 'regionCode': code,
|
|
|
+ 'videoId': int(video_id),
|
|
|
+ 'score': float(score),
|
|
|
+ 'rank': int(rank) + 1,
|
|
|
+ }
|
|
|
+ data.append(videos)
|
|
|
+ data.sort(key=lambda x: (x['dataListType'], x['regionCode']), reverse=False)
|
|
|
+
|
|
|
+ elif data_list_type == 0:
|
|
|
# 视频数据表类型 选择为全部
|
|
|
key_prefix_list = config_.VIDEO_DATA_LIST_MAPPING.get(data_list_type).get('keyPrefixList')
|
|
|
for item in key_prefix_list:
|
|
@@ -128,6 +155,7 @@ def search_video(ab_exp_code, search_time, data_list_type, region_code, video_id
|
|
|
}
|
|
|
data.append(videos)
|
|
|
data.sort(key=lambda x: x['dataListType'], reverse=False)
|
|
|
+
|
|
|
elif region_code == '0':
|
|
|
# 地域 选择为全部
|
|
|
code_list = [code for _, code in config_.REGION_CODE.items()]
|
|
@@ -149,6 +177,7 @@ def search_video(ab_exp_code, search_time, data_list_type, region_code, video_id
|
|
|
}
|
|
|
data.append(videos)
|
|
|
data.sort(key=lambda x: x['regionCode'], reverse=False)
|
|
|
+
|
|
|
else:
|
|
|
key_prefix = config_.VIDEO_DATA_LIST_MAPPING.get(data_list_type).get('keyPrefix')
|
|
|
key_name = f"{key_prefix}{region_code}.{app_type}.{data_key}.{rule_key}.{search_time}"
|