Commit 10c0bdd2 authored by xianyang's avatar xianyang

充值报表导出优化

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