def get_table(search_start_date, search_end_date, channel_id=-1, server_id=-1): # 搜索日期到今天的所有日志 retained_day = search_start_date - datetime.timedelta(days=4) all_log_lst = daily_log_dat.get_new_log_lst(retained_day, search_end_date) if channel_id >= 0: all_log_lst = daily_log_dat.filter_logs( all_log_lst, function=lambda x: x['platform_id'] == channel_id) if server_id >= 0: all_log_lst = daily_log_dat.filter_logs( all_log_lst, function=lambda x: x['server_id'] == server_id) #获取所有登录事件 all_login_lst = daily_log_dat.filter_logs( all_log_lst, action=game_define.EVENT_ACTION_ROLE_LOGIN) # 获取日期数 search_days = (search_end_date - search_start_date).days table_result = [] for i in xrange(search_days + 1): cur_date = search_start_date + datetime.timedelta(days=i) # 今日全部日志 today_login_lst = daily_log_dat.get_new_log_lst_with_log( all_login_lst, cur_date, cur_date) # 获取登录日志列表 today_login_uid_lst = daily_log_dat.get_set_with_key( today_login_lst, 'uid') today_new_user_login_lst = daily_log_dat.filter_logs( today_login_lst, function=lambda log: log['install'] == cur_date) today_new_user_uid_num = daily_log_dat.get_set_num_with_key( today_new_user_login_lst, 'uid') # 登录用户数 today_login_uid_num = len(today_login_uid_lst) # 活跃用户数 today_active_uid_num = today_new_user_uid_num # 流失用户(3天内没登录) today_lost_uid_num = len( daily_log_dat.get_lost_user_set(all_login_lst, cur_date)) # 回流用户(3天内没登录 但今天登录) login_back_num = len( daily_log_dat.get_lost_back_user_set(all_login_lst, cur_date)) row = [ cur_date.strftime("%m/%d/%Y"), today_login_uid_num, today_active_uid_num, today_lost_uid_num, login_back_num ] table_result.append(row) return table_result
def get_table(search_start_date, search_end_date, channel_id=-1, server_id=-1): # 搜索日期到今天的所有日志 retained_day = search_start_date - datetime.timedelta(days=4) all_log_lst = daily_log_dat.get_new_log_lst(retained_day, search_end_date) if channel_id >= 0: all_log_lst = daily_log_dat.filter_logs(all_log_lst, function=lambda x: x["platform_id"] == channel_id) if server_id >= 0: all_log_lst = daily_log_dat.filter_logs(all_log_lst, function=lambda x: x["server_id"] == server_id) # 获取所有登录事件 all_login_lst = daily_log_dat.filter_logs(all_log_lst, action=game_define.EVENT_ACTION_ROLE_LOGIN) # 获取日期数 search_days = (search_end_date - search_start_date).days table_result = [] for i in xrange(search_days + 1): cur_date = search_start_date + datetime.timedelta(days=i) # 今日全部日志 today_login_lst = daily_log_dat.get_new_log_lst_with_log(all_login_lst, cur_date, cur_date) # 获取登录日志列表 today_login_uid_lst = daily_log_dat.get_set_with_key(today_login_lst, "uid") today_new_user_login_lst = daily_log_dat.filter_logs( today_login_lst, function=lambda log: log["install"] == cur_date ) today_new_user_uid_num = daily_log_dat.get_set_num_with_key(today_new_user_login_lst, "uid") # 登录用户数 today_login_uid_num = len(today_login_uid_lst) # 活跃用户数 today_active_uid_num = today_new_user_uid_num # 流失用户(3天内没登录) today_lost_uid_num = len(daily_log_dat.get_lost_user_set(all_login_lst, cur_date)) # 回流用户(3天内没登录 但今天登录) login_back_num = len(daily_log_dat.get_lost_back_user_set(all_login_lst, cur_date)) row = [ cur_date.strftime("%m/%d/%Y"), today_login_uid_num, today_active_uid_num, today_lost_uid_num, login_back_num, ] table_result.append(row) return table_result
def get_table(search_date, server_id): # 搜索日期到今天的所有日志 retained_day = search_date - datetime.timedelta(days=4) all_login_lst = [] total_days = (search_date - retained_day).days + 1 for i in xrange(total_days): search_date = retained_day + datetime.timedelta(days=i) date_str = "_" + search_date.strftime('%Y%m%d') login_lst = mysql_util.get_role_action_lst( 'EVENT_ACTION_ROLE_LOGIN' + str(date_str), search_date, search_date, -1, server_id, None, None) all_login_lst.extend(login_lst) table_result = [] cur_date = search_date # 今日全部日志 today_login_lst = daily_log_dat.get_new_log_lst_with_log( all_login_lst, cur_date, cur_date) # 获取登录日志列表 today_login_uid_lst = daily_log_dat.get_set_with_key( today_login_lst, 'uid') today_new_user_login_lst = daily_log_dat.filter_logs( today_login_lst, function=lambda log: log['install'] == cur_date) today_new_user_uid_num = daily_log_dat.get_set_num_with_key( today_new_user_login_lst, 'uid') # 登录用户数 today_login_uid_num = len(today_login_uid_lst) # 活跃用户数 today_active_uid_num = today_new_user_uid_num # 流失用户(3天内没登录) today_lost_uid_num = len( daily_log_dat.get_lost_user_set(all_login_lst, cur_date)) # 回流用户(3天内没登录 但今天登录) login_back_num = len( daily_log_dat.get_lost_back_user_set(all_login_lst, cur_date)) row = [ cur_date.strftime("%m/%d/%Y"), today_login_uid_num, today_active_uid_num, today_lost_uid_num, login_back_num ] table_result.append(row) return table_result
def get_table(search_date, server_id): # 搜索日期到今天的所有日志 retained_day = search_date - datetime.timedelta(days=4) all_login_lst = [] total_days = (search_date - retained_day).days + 1 for i in xrange(total_days): search_date = retained_day + datetime.timedelta(days=i) date_str = "_" + search_date.strftime("%Y%m%d") login_lst = mysql_util.get_role_action_lst( "EVENT_ACTION_ROLE_LOGIN" + str(date_str), search_date, search_date, -1, server_id, None, None ) all_login_lst.extend(login_lst) table_result = [] cur_date = search_date # 今日全部日志 today_login_lst = daily_log_dat.get_new_log_lst_with_log(all_login_lst, cur_date, cur_date) # 获取登录日志列表 today_login_uid_lst = daily_log_dat.get_set_with_key(today_login_lst, "uid") today_new_user_login_lst = daily_log_dat.filter_logs( today_login_lst, function=lambda log: log["install"] == cur_date ) today_new_user_uid_num = daily_log_dat.get_set_num_with_key(today_new_user_login_lst, "uid") # 登录用户数 today_login_uid_num = len(today_login_uid_lst) # 活跃用户数 today_active_uid_num = today_new_user_uid_num # 流失用户(3天内没登录) today_lost_uid_num = len(daily_log_dat.get_lost_user_set(all_login_lst, cur_date)) # 回流用户(3天内没登录 但今天登录) login_back_num = len(daily_log_dat.get_lost_back_user_set(all_login_lst, cur_date)) row = [cur_date.strftime("%m/%d/%Y"), today_login_uid_num, today_active_uid_num, today_lost_uid_num, login_back_num] table_result.append(row) return table_result