Commit 6027db0c authored by xianyang's avatar xianyang

优化充值列表导出

parent eae155c1
......@@ -63,6 +63,7 @@ class RechargeStatement(object):
# self.moeny_data=[]
def query_data(self, db, page, size, order_number, uuid, sid, start_time, end_time, type, menu_id, month_type):
"""列表"""
query = []
if order_number:
query.append(f"reference_number='{order_number}'")
......@@ -116,7 +117,7 @@ class RechargeStatement(object):
if month_type == 1:
count_sql = f"SELECT count(*) FROM assets_log_{now_month} where {query}"
count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)")
sql = f"SELECT id,a.uuid,a.amount/1000 as amount,FROM_UNIXTIME(a.create_time,'%Y-%c-%d %h:%i:%s') as payment_time,a.reference_type,a.reference_number,a.amount_type FROM assets_log_{now_month} as a where {query} ORDER BY id desc limit {(int(page) - 1) * size},{size}"
sql = f"SELECT a.uuid,a.amount/1000 as amount,FROM_UNIXTIME(a.create_time,'%Y-%c-%d %h:%i:%s') as payment_time,a.reference_type,a.reference_number FROM assets_log_{now_month} as a where {query} ORDER BY id desc limit {(int(page) - 1) * size},{size}"
once_res = self.linkmysql.query_mysql(sql)
money_sql = f"SELECT sum(amount) FROM assets_log_{now_month} where {query}"
moeny_data = self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") if \
......@@ -127,7 +128,7 @@ class RechargeStatement(object):
count = self.linkmysql.query_mysql(count_sql)[0].get("sum(a.b)")
query1 = (' and '.join(query[0]))
query2 = (' and '.join(query[1]))
sql = f"SELECT id,uuid,amount/1000 as amount,FROM_UNIXTIME(create_time,'%Y-%c-%d %h:%i:%s') as payment_time,reference_type,reference_number,amount_type FROM assets_log_{int(now_month[0])} where {query1} UNION ALL SELECT id,uuid,amount,FROM_UNIXTIME(create_time,'%Y-%c-%d %h:%i:%s') as payment_time,reference_type,reference_number,amount_type FROM assets_log_{int(now_month[1])} where {query2} ORDER BY id desc limit {(int(page) - 1) * size},{size}"
sql = f"SELECT uuid,amount/1000 as amount,FROM_UNIXTIME(create_time,'%Y-%c-%d %h:%i:%s') as payment_time,reference_type,reference_number FROM assets_log_{int(now_month[0])} where {query1} UNION ALL SELECT id,uuid,amount,FROM_UNIXTIME(create_time,'%Y-%c-%d %h:%i:%s') as payment_time,reference_type,reference_number,amount_type FROM assets_log_{int(now_month[1])} where {query2} ORDER BY id desc limit {(int(page) - 1) * size},{size}"
once_res = self.linkmysql.query_mysql(sql)
money_sql = f"SELECT sum(a.b) FROM ("f"SELECT sum(amount) as b FROM assets_log_{int(now_month[0])} where {(' and '.join(query[0]))} UNION ALL SELECT sum(amount)FROM assets_log_{int(now_month[1])} where {(' and '.join(query[1]))}) AS a "
moeny_data = self.linkmysql.query_mysql(money_sql)[0].get("sum(a.b)") if \
......@@ -140,6 +141,7 @@ class RechargeStatement(object):
return count, once_res, moeny_data
def get_statements(self, db, data):
"""导出"""
query = []
if data.order_number:
query.append(f"id={data.order_number} ")
......
......@@ -24,9 +24,9 @@ class StatementList(BaseModel):
start_time: Optional[str] = ""
end_time: Optional[str] = ""
order_number: Optional[str] = ""
user_id: Optional[str] = ""
uuid: Optional[str] = ""
sid: Optional[str] = ""
pay_channel: Optional[str] = ""
types: Optional[str] = ""
month_type: Optional[int] = None
menu_id: Optional[list] = ""
......
......@@ -33,7 +33,9 @@ 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")
statement_list = RechargeStatement().get_statements(db,data)
total,statement_list,money= RechargeStatement().query_data(db, data.page, data.size, data.order_number, data.uuid,
data.sid, data.start_time, data.end_time, data.types,
data.menu_id, data.month_type)
field_list = ["uuid", "充值金额(元)", "支付时间", "类型", "订单号"]
return crud.data_to_file(db, statement_list, "充值报表", header_list, field_list)
......
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