Commit 964d6021 authored by xianyang's avatar xianyang

优化异常数据修复

parent 4ce66559
......@@ -377,28 +377,55 @@ def create_fix_table(db: Session, param, h_list):
return '财务系统出错,请稍后再试!'
def recovery_thead_task(data):
account_sql = f"select name from fi_account where uuid='{data['uuid']}'"
user_sql = f"select nick_name from v2_user where uuid='{data['uuid']}'"
guild_sql = f"select guild_name from guild where uuid='{data['uuid']}'"
with ThreadPoolExecutor(max_workers=2) as pool:
future1 = pool.submit(LinkMysql(env.DB_3YV2).query_mysql, account_sql)
future2 = pool.submit(LinkMysql(env.DB_3YV2).query_mysql, user_sql)
future3 = pool.submit(LinkMysql(env.DB_3YV2).query_mysql, guild_sql)
acc_data = future1.result()
user_data = future2.result()
guild_data = future3.result()
if acc_data:
data['name'] = acc_data[0]['name']
elif user_data:
data['name'] = user_data[0]['nick_name']
elif guild_data:
data['name'] = guild_data[0]['guild_name']
else:
data['name'] = data['uuid']
data['out_money'] = float(data['out_money'])
data['entry_money'] = float(data['entry_money'])
data['create_time'] = str(data['create_time'])
data['from_time'] = str(data['from_time'])
def recovery_fix_data(**params):
recovery_list = []
if params.get("uuid"):
recovery_list.append(f"e.uuid = '{params.get('uuid')}'")
recovery_list.append(f" uuid = '{params.get('uuid')}'")
if params.get("start_time"):
recovery_list.append(f"e.create_time >= '{params.get('start_time')}'")
recovery_list.append(f" create_time >= '{params.get('start_time')}'")
if params.get("end_time"):
recovery_list.append(f"e.create_time < '{params.get('end_time')}'")
recovery_list.append(f" create_time < '{params.get('end_time')}'")
if recovery_list:
sum_sql = f"select count(e.id) as num from finance_error_transverse_log as e inner join fi_account as f on e.uuid=f.uuid where {' and '.join(recovery_list)}"
query_sql = f"select e.id,f.name,e.cont,e.out_money,e.entry_money,e.uuid,e.type,e.create_time,e.from_time from finance_error_transverse_log as e inner join fi_account as f on e.uuid=f.uuid where {' and '.join(recovery_list)} order by e.id DESC limit {(int(params.get('page')) - 1) * params.get('size')},{params.get('size')}"
sum_sql = f"select count(id) as num from finance_error_transverse_log where {' and '.join(recovery_list)}"
query_sql = f"select id,cont,out_money,entry_money,uuid,type,create_time,from_time from finance_error_transverse_log where {' and '.join(recovery_list)} order by id DESC limit {(int(params.get('page')) - 1) * params.get('size')},{params.get('size')}"
else:
query_sql = f"select e.id,f.name,e.cont,e.out_money,e.entry_money,e.uuid,e.type,e.create_time,e.from_time from finance_error_transverse_log as e inner join fi_account as f on e.uuid=f.uuid order by e.id DESC limit {(int(params.get('page')) - 1) * params.get('size')},{params.get('size')}"
sum_sql = f"select count(e.id) as num from finance_error_transverse_log as e inner join fi_account as f on e.uuid=f.uuid "
query_sql = f"select id,cont,out_money,entry_money,uuid,type,create_time,from_time from finance_error_transverse_log order by id DESC limit {(int(params.get('page')) - 1) * params.get('size')},{params.get('size')}"
sum_sql = f"select count(id) as num from finance_error_transverse_log"
result = LinkMysql(env.DB_3YV2).query_mysql(query_sql)
sum = LinkMysql(env.DB_3YV2).query_mysql(sum_sql)
if result:
for i in result:
i['out_money'] = float(i['out_money'])
i['entry_money'] = float(i['entry_money'])
i['create_time'] = str(i['create_time'])
i['from_time'] = str(i['from_time'])
ths = []
for x in range(len(result)):
ths.append(threading.Thread(target=recovery_thead_task, args=[result[x]]))
for y in range(len(result)):
ths[y].start()
for z in range(len(result)):
ths[z].join()
return result, sum[0]['num']
return [], 0
......
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