| 
					
				 | 
			
			
				@@ -13,7 +13,7 @@ from video_recall import PoolRecall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from video_rank import video_rank, bottom_strategy, video_rank_by_w_h_rate, video_rank_with_old_video, bottom_strategy2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from db_helper import RedisHelper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import gevent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from utils import FilterVideos 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from utils import FilterVideos, get_user_has30day_return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ast 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log_ = Log() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -515,12 +515,13 @@ def update_local_distribute_count(videos): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log_.error(traceback.format_exc()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, page_type=0): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, mid, page_type=0): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     根据实验分组给定对应的推荐参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :param recommend_type: 首页推荐和相关推荐区分参数(0-首页推荐,1-相关推荐) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :param ab_exp_info: AB实验组参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :param ab_info_data: app实验组参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :param mid: mid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :param page_type: 页面区分参数,默认:0(首页) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :return: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -545,6 +546,9 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, page_type=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rule_key_30day = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     no_op_flag = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取用户近30天是否有回流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    user_30day_return_result = get_user_has30day_return(mid=mid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 获取实验配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if ab_exp_info: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ab_exp_code_list = [] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -559,15 +563,34 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, page_type=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ab_exp_code_list.append(str(ab_exp_code)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 config_value_dict[str(ab_exp_code)] = ab_item.get('configValue', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for code, param in config_.AB_EXP_CODE.items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if code in ab_exp_code_list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if '136' in ab_exp_code_list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                # 无回流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if user_30day_return_result is False: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    param = config_.AB_EXP_CODE.get('136') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ab_code = param.get('ab_code') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    expire_time = 3600 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rule_key = param.get('rule_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data_key = param.get('data_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    no_op_flag = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elif '137' in ab_exp_code_list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                # 有回流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if user_30day_return_result is True: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    param = config_.AB_EXP_CODE.get('137') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ab_code = param.get('ab_code') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     expire_time = 3600 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rule_key = param.get('rule_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data_key = param.get('data_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rule_key_30day = param.get('30day_rule_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     no_op_flag = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for code, param in config_.AB_EXP_CODE.items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if code in ab_exp_code_list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ab_code = param.get('ab_code') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        expire_time = 3600 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rule_key = param.get('rule_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        data_key = param.get('data_key') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        no_op_flag = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # 推荐条数 10->4 实验 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -926,7 +949,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 普通mid推荐处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     top_K, flow_pool_P, ab_code, rule_key, data_key, expire_time, no_op_flag, old_video_index, rule_key_30day = \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        get_recommend_params(recommend_type=0, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        get_recommend_params(recommend_type=0, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data, mid=mid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # log_.info({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #     'logTimestamp': int(time.time() * 1000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #     'request_id': request_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1013,7 +1036,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 普通mid推荐处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     top_K, flow_pool_P, ab_code, rule_key, data_key, expire_time, no_op_flag, old_video_index, rule_key_30day = \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        get_recommend_params(recommend_type=1, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data, page_type=page_type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        get_recommend_params(recommend_type=1, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data, page_type=page_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                             mid=mid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # log_.info({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #     'logTimestamp': int(time.time() * 1000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #     'request_id': request_id, 
			 |