撤销判断11.23之前数据的逻辑

This commit is contained in:
李伟 2022-01-06 10:00:19 +08:00
parent effad3ca10
commit af7091adcc

View File

@ -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]))