diff --git a/api/api_v1/endpoints/xquery.py b/api/api_v1/endpoints/xquery.py index 1d5d36b..79594bb 100644 --- a/api/api_v1/endpoints/xquery.py +++ b/api/api_v1/endpoints/xquery.py @@ -16,7 +16,7 @@ from common import * from api import deps from db import get_database -from db.ckdb import get_ck_db, CKDrive +from db.ckdb import get_ck_db, CKDrive, ckdb from db.redisdb import get_redis_pool, RedisDrive from models.behavior_analysis import BehaviorAnalysis @@ -75,42 +75,42 @@ async def ltv_model_sql( split_="""AND 1 """ news_sql = split_sql[0] + split_+new_sql + split_sql[1] + split_+new_sql+ split_sql[2]+split_+split_sql[3] df = await ckdb.query_dataframe(news_sql) - # 判断11月23号之前的数据 - list_data_range=analysis.date_range - liststr_data_range=[] - for i in list_data_range: - liststr_data_range.append(str(i)) - quota = analysis.event_view['quota'] - #判断是设备LTV则执行下面代码,如是角色实充LTV则不执行 - if quota == '#distinct_id': - if '2021-11-22' in liststr_data_range or '2021-11-22' >=liststr_data_range[-1]: - #取搜索最后为11.23号之前的数据 - if '2021-11-22' >=liststr_data_range[-1]: - news_sql="""""" - split_sql=sql.split('AND is_new_device = 1') - new_sql=split_sql[0]+split_sql[1]+split_sql[2] - news_sql+=new_sql - df_twenty_three=await ckdb.query_dataframe(news_sql) - #取包含有11.23号之前和23号之后的那一段 - else: - start_date=str(list_data_range[0]) - end_date='2021-11-22' - news_sql = """""" - split_sql = sql.split('AND is_new_device = 1') - for i in split_sql: - news_sql += i - #用正则表达式切时间 - zhengze_time=r'\d{4}-\d{1,2}-\d{1,2}' - zhengze_sql=re.split(zhengze_time,news_sql) - zz_new_sql=zhengze_sql[0]+start_date+zhengze_sql[1]+end_date+zhengze_sql[2]+start_date+zhengze_sql[3]+end_date+zhengze_sql[4] - zz_news_sql="""""" - zz_news_sql+=zz_new_sql - df_twenty_three = await ckdb.query_dataframe(zz_news_sql) - #上下合并两组数据,忽略以前的索引下标 - df= pd.concat([df,df_twenty_three], axis=0, ignore_index=True) - df.sort_values('date', inplace=True) - #去重 - #df.drop_duplicates(inplace=True) + # # 判断11月23号之前的数据 + # list_data_range=analysis.date_range + # liststr_data_range=[] + # for i in list_data_range: + # liststr_data_range.append(str(i)) + # quota = analysis.event_view['quota'] + # #判断是设备LTV则执行下面代码,如是角色实充LTV则不执行 + # if quota == '#distinct_id': + # if '2021-11-22' in liststr_data_range or '2021-11-22' >=liststr_data_range[-1]: + # #取搜索最后为11.23号之前的数据 + # if '2021-11-22' >=liststr_data_range[-1]: + # news_sql="""""" + # split_sql=sql.split('AND is_new_device = 1') + # new_sql=split_sql[0]+split_sql[1]+split_sql[2] + # news_sql+=new_sql + # df_twenty_three=await ckdb.query_dataframe(news_sql) + # #取包含有11.23号之前和23号之后的那一段 + # else: + # start_date=str(list_data_range[0]) + # end_date='2021-11-22' + # news_sql = """""" + # split_sql = sql.split('AND is_new_device = 1') + # for i in split_sql: + # news_sql += i + # #用正则表达式切时间 + # zhengze_time=r'\d{4}-\d{1,2}-\d{1,2}' + # zhengze_sql=re.split(zhengze_time,news_sql) + # zz_new_sql=zhengze_sql[0]+start_date+zhengze_sql[1]+end_date+zhengze_sql[2]+start_date+zhengze_sql[3]+end_date+zhengze_sql[4] + # zz_news_sql="""""" + # zz_news_sql+=zz_new_sql + # df_twenty_three = await ckdb.query_dataframe(zz_news_sql) + # #上下合并两组数据,忽略以前的索引下标 + # df= pd.concat([df,df_twenty_three], axis=0, ignore_index=True) + # df.sort_values('date', inplace=True) + # #去重 + # #df.drop_duplicates(inplace=True) quota = res['quota'] #字段名 ltv_n = res['ltv_n'] #df = await ckdb.query_dataframe(sql) @@ -159,7 +159,7 @@ async def ltv_model_sql( split_time = str_time01.split('-') #str_time = str(res['date_range'][0]) # split_time = str_time.split('-') - now_time = time.strftime("%Y-%m-%d", time.localtime()) + now_time=time.strftime("%Y-%m-%d",time.localtime()) split_now_time = now_time.split('-') today = datetime.datetime(int(split_time[0]), int(split_time[1]), int(split_time[2])) now_day = datetime.datetime(int(split_now_time[0]), int(split_now_time[1]), int(split_now_time[2]))