Commit 5f2f32f8 authored by xianyang's avatar xianyang

增加消费,提现出入账字段

parent 8d7d167c
......@@ -206,15 +206,19 @@ def special_data_handle(old_data, special_data):
df = bk[(bk["create_time"] == old['create_time']) & (bk["amount_type"] == 2)] # 可消费
serializer_info = df.to_dict(orient='records')
if serializer_info:
old['consumable'] = serializer_info[0]['balance']
old['con_income'] = serializer_info[0]['income']
old['con_outcome'] = serializer_info[0]['outcome']
else:
old['consumable'] = 0
old['con_income'] = 0
old['con_outcome'] = 0
df = bk[(bk["create_time"] == old['create_time']) & (bk["amount_type"] == 3)] # 可提现
serializer_info = df.to_dict(orient='records')
if serializer_info:
old['can_withdraw'] = serializer_info[0]['balance']
old['with_income'] = serializer_info[0]['income']
old['with_outcome'] = serializer_info[0]['outcome']
else:
old['can_withdraw'] = 0
old['with_income'] = 0
old['with_outcome'] = 0
return old_data
......@@ -402,6 +406,29 @@ class AccountStatistics(object):
result = LinkMysql(env.DB_HISTORY).query_mysql(u_sql)
return result
def special_handle(self, old_data, special_data):
"""处理可消费,可提现数据"""
bk = pd.DataFrame(special_data)
for old in old_data:
df = bk[(bk["guild_id"] == old['guild_id']) & (bk["amount_type"] == 2)] # 可消费
serializer_info = df.to_dict(orient='records')
if serializer_info:
old['con_income'] = serializer_info[0]['income']
old['con_outcome'] = serializer_info[0]['outcome']
else:
old['con_income'] = 0
old['con_outcome'] = 0
df = bk[(bk["guild_id"] == old['guild_id']) & (bk["amount_type"] == 3)] # 可提现
serializer_info = df.to_dict(orient='records')
if serializer_info:
old['with_income'] = serializer_info[0]['income']
old['with_outcome'] = serializer_info[0]['outcome']
else:
old['with_income'] = 0
old['with_outcome'] = 0
return old_data
def user_guild_query(self, data):
guild_sql = f"select uuid from guild"
......@@ -523,22 +550,21 @@ class AccountStatistics(object):
guild_cond_list = []
start_time = time_str_to_timestamp(self.start_time + ' 00:00:00')
end_time = time_str_to_timestamp(self.end_time + ' 23:59:59')
if not self.amount_type:
guild_cond_list.append("amount_type=1")
else:
if self.amount_type == 'consumable':
amount_type_num = 2
else:
amount_type_num = 3
guild_cond_list.append(f"amount_type={amount_type_num}")
guild_cond_list.append(f" (income>0 or outcome>0 or initial_money>0) ")
guild_cond_list.append(f" create_time >={start_time} and create_time<= {end_time}")
if self.user_id:
guild_cond_list.append(f" guild_id={self.user_id}")
other_sql = f"select guild_id,initial_money as balance,income,outcome,create_time,amount_type from v3_guild_account_detail_copy where {' and '.join(guild_cond_list)} and amount_type != 1"
guild_cond_list.append("amount_type=1")
sql = f"select guild_id,initial_money,income,outcome,amount_type,create_time from v3_guild_account_detail_copy where {' and '.join(guild_cond_list)} order by create_time DESC"
mysql_data = LinkMysql(env.DB_3YV2).query_mysql(sql)
with ThreadPoolExecutor(max_workers=2) as pool:
future1 = pool.submit(LinkMysql(env.DB_3YV2).query_mysql, other_sql)
future2 = pool.submit(LinkMysql(env.DB_3YV2).query_mysql, sql)
other_data = future1.result()
mysql_data = future2.result()
for info in mysql_data:
info['guild_name'] = self.guild_dict.get(info['guild_id'])
mysql_data = self.special_handle(mysql_data, other_data)
return mysql_data[int(self.page - 1) * self.size: self.page * self.size], len(mysql_data)
def guild_calculation_pledge(self):
......
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