Commit fe53f03e authored by linfang.wang's avatar linfang.wang

提取业务数据OK

parent 80ece739
...@@ -2,7 +2,7 @@ import pandas as pd ...@@ -2,7 +2,7 @@ import pandas as pd
from data.datasource.mysqldb import * from data.datasource.mysqldb import *
from data.samples import mysqlquery from data.samples import mysqlquery
''' '''
目的:提供业务数据,包括 order_no,loan_id,用户类型【直接使用risk_info】,渠道,申请时间,拒绝原因,首逾天数,最大逾期天数,放款期数 目的:提供业务数据,包括 order_no,loan_id,用户类型,支持策略用risk_info,渠道,申请时间,拒绝原因,首逾天数,最大逾期天数,放款期数
''' '''
...@@ -12,10 +12,11 @@ def query_risk_info(order_nos): ...@@ -12,10 +12,11 @@ def query_risk_info(order_nos):
:param order_nos: :param order_nos:
:return:order_no,user_loan_type-- 策略使用的用户类型,审核拒绝原因,是否黑名单拒绝或其他拒绝 :return:order_no,user_loan_type-- 策略使用的用户类型,审核拒绝原因,是否黑名单拒绝或其他拒绝
''' '''
# audit_result :1: 通过,其他未通过
res = [] res = []
sql = ''' sql = '''
select biz_no as order_no, select biz_no as order_no,
ifnull(JSON_EXTRACT(audit_context_data, '$.user_loan_type_v3'), ifnull(JSON_EXTRACT( audit_context_data, '$.user_loan_type_v3'),
JSON_EXTRACT(audit_context_data, '$.user_loan_type_v4')) as user_loan_type, JSON_EXTRACT(audit_context_data, '$.user_loan_type_v4')) as user_loan_type,
JSON_EXTRACT(audit_context_data, '$.filter_info_in_black') qg_black, JSON_EXTRACT(audit_context_data, '$.filter_info_in_black') qg_black,
JSON_EXTRACT(audit_context_data, '$."third_data_source#xy_neg_code"') as xy_black, JSON_EXTRACT(audit_context_data, '$."third_data_source#xy_neg_code"') as xy_black,
...@@ -28,11 +29,11 @@ def query_risk_info(order_nos): ...@@ -28,11 +29,11 @@ def query_risk_info(order_nos):
res.append(pd.read_sql(sql % str(tuple(order_nos[i:i + 1000])), engine_risk)) res.append(pd.read_sql(sql % str(tuple(order_nos[i:i + 1000])), engine_risk))
df= pd.concat(res) df= pd.concat(res)
df.drop_duplicates(['order_no'],inplace=True) df.drop_duplicates(['order_no'],inplace=True)
df['refuse']='其他' df['reason']='未知'
df.loc[df.audit_result==1,'refuse']='审核通过' df.loc[df.audit_result==1,'reason']='审核通过'
df.loc[(df.audit_result!=1) & (df.qg_black> 0),'refuse']='命中QG黑名单' df.loc[(df.audit_result!=1) & (df.qg_black> 0),'reason']='命中QG黑名单'
df.loc[(df.audit_result != 1) & (df.xy_black=='0'), 'refuse'] = '命中新颜黑名单' df.loc[(df.audit_result != 1) & (df.xy_black=='0'), 'reason'] = '命中新颜黑名单'
return df[['order_no','uesr_loan_type','refuse']] return df[['order_no','uesr_loan_type','reason']]
def query_byloanid(loan_ids): def query_byloanid(loan_ids):
''' '''
...@@ -42,7 +43,7 @@ def query_byloanid(loan_ids): ...@@ -42,7 +43,7 @@ def query_byloanid(loan_ids):
''' '''
sql=''' sql='''
select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day, select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day,
t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as reason, t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as refuse,
max(t2.passdue_day) as max_passdue_day max(t2.passdue_day) as max_passdue_day
from loan_application t1 from loan_application t1
left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4 left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4
...@@ -68,7 +69,7 @@ def query_by_orderno(order_nos): ...@@ -68,7 +69,7 @@ def query_by_orderno(order_nos):
''' '''
sql = ''' sql = '''
select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day, select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day,
t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as reason, t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as refuse,
max(t2.passdue_day) as max_passdue_day max(t2.passdue_day) as max_passdue_day
from loan_application t1 from loan_application t1
left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4 left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4
...@@ -97,7 +98,7 @@ def query_bydate(start_date,end_date,is_loan=True): ...@@ -97,7 +98,7 @@ def query_bydate(start_date,end_date,is_loan=True):
if is_loan: if is_loan:
sql=''' sql='''
select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day, select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day,
t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as reason, t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as refuse,
max(t2.passdue_day) as max_passdue_day max(t2.passdue_day) as max_passdue_day
from loan_application t1 from loan_application t1
join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4 join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4
...@@ -108,7 +109,7 @@ def query_bydate(start_date,end_date,is_loan=True): ...@@ -108,7 +109,7 @@ def query_bydate(start_date,end_date,is_loan=True):
else: else:
sql=''' sql='''
select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day, select t1.loan_id,t1.user_id,t2.order_no,t2.contract_term,if(t2.term_no==1,t2.passdue_day,null) as passdue_day,
t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as reason, t1.applied_at,t1.applied_type,t1.applied_channel,if(t2.loan_id is not null,'已放款',if(t1.approval==1,'审核通过','审核未通过')) as refuse,
max(t2.passdue_day) as max_passdue_day max(t2.passdue_day) as max_passdue_day
from loan_application t1 from loan_application t1
left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4 left join loan_repay t2 on t1.loan_id=t2.loan_id and t2.repayment_status!=4
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment