Commit 10c0bdd2 authored by xianyang's avatar xianyang

充值报表导出优化

parent 5a523d5f
......@@ -113,7 +113,11 @@ class RechargeStatement(object):
for bus in query_data:
bus.pop('id')
if bus['reference_type'] == 'userRecharge':
ref_type, o_id = bus['reference_number'].split('_')
try:
ref_type, o_id = bus['reference_number'].split('_')
except:
Logger().logger.info(str(bus))
continue
if o_id not in self.order_id:
self.order_id.append(o_id)
Logger().logger.info("获取筛选条件")
......@@ -272,38 +276,37 @@ class RechargeStatement(object):
count, once_res, moeny_data = self.statistics_data(month_type, query, page, size, now_month,export_status)
return count, once_res, moeny_data
def get_statements(self, db, data):
def get_statements(self, data):
"""导出"""
query = []
if data.order_number:
query.append(f"id={data.order_number} ")
if data.user_id:
query.append(f"uuid='{data.user_id}' ")
if data.sid:
query.append(f"sid='{data.sid}' ")
if data.menu_id:
querydata = db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(data.menu_id)))
reference_data = [
QueryAllData.serialization(item, remove={'menu_name', 'remark', 'menu_type', 'create_time', 'id'}) for
item in querydata]
if len([item.get("menu_label") for item in reference_data]) > 1:
reference_type = tuple([item.get("menu_label") for item in reference_data])
else:
reference_type = "('" + [item.get("menu_label") for item in reference_data][0] + "')"
query.append(f"reference_type in {reference_type}")
if data.month_type == 1:
if data.start_time:
query.append(f" create_time >= {time_str_to_timestamp(data.start_time + ' 00:00:00')} ")
if data.end_time:
query.append(f" create_time < {time_str_to_timestamp(data.end_time + ' 23:59:59')} ")
query = ' and '.join(query)
now_month = get_month_last_month(data.month_type,data.start_time)
once_res = self.data_delcy(data.month_type, query, now_month[1])
else:
query_data = self.query_add_time(query,data.start_time, data.end_time)
now_month = get_month_last_month(data.month_type)
once_res = self.data_delcy(data.month_type, query_data, now_month)
return once_res
Logger().logger.info(f"查询reference_number是:{data.order_number}!!!!!")
_, number = data.order_number.split('_')
query.append(f"o.id={number}")
if data.uuid:
u_sql = f"SELECT user_id FROM v2_user WHERE uuid='{data.uuid}'"
user_info = LinkMysql(env.DB_3YV2).query_mysql(u_sql)
if user_info:
if user_info[0]['user_id']:
query.append(f" o.userid={user_info[0]['user_id']}")
if data.start_time:
query.append(f" o.lastupdate >= {time_str_to_timestamp(data.start_time + ' 00:00:00')} ")
if data.end_time:
query.append(f" o.lastupdate <= {time_str_to_timestamp(data.end_time + ' 23:59:59')} ")
Logger().logger.info("查询支付配置")
p_sql = "SELECT id,name FROM pay_config"
pay_data = LinkMysql(env.DB_3YV2).query_mysql(p_sql)
pay_dict = {}
for i in pay_data:
pay_dict[i['id']] = i['name']
Logger().logger.info("查询orders表!!!!!")
or_sql = f"SELECT o.userid,v.nick_name,o.money,o.status,o.paychannel,o.sid,o.lastupdate FROM orders as o LEFT JOIN v2_user as v on o.userid=v.user_id WHERE {' and '.join(query)}"
order_info = LinkMysql(env.DB_3YV2).query_mysql(or_sql)
for order in order_info:
order['paychannel'] = pay_dict.get(order['paychannel'], order['paychannel'])
order['status'] = '成功' if order['status'] else '失败'
order['lastupdate'] = timestamp_to_time_str(order['lastupdate'])
return order_info
def data_delcy(self, month_type, query, now_month):
if month_type == 1:
......
......@@ -36,11 +36,8 @@ def statement_recharge_list(request: Request,db: Session = Depends(get_db),page:
def statement_derive_excel(request:Request,data: schemas.StatementList,db: Session = Depends(get_db),token=Depends(login_required)):
"""充值报表导出"""
header_list = request.get("headers")
export_status =1
total,statement_list,money, sun_m= RechargeStatement().query_data(db, data.page, 99999999, data.order_number, data.uuid,
data.sid, data.start_time, data.end_time, data.types,
data.menu_id, data.month_type,export_status)
field_list = ["uuid", "充值金额(元)", "支付时间", "业务类型", "订单号", "昵称", "充值状态", "到账金额(元)", "用户Id", "渠道", "商户订单号"]
statement_list = RechargeStatement().get_statements(data)
field_list = ["用户Id", "昵称", "充值金额(元)", "充值状态", "渠道", "商户订单号", "充值时间"]
url = TableToFile(db, statement_list, "充值报表", header_list, field_list).main_method()
return HttpResultResponse(data=url)
......
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