Commit d359fa02 authored by xupeng's avatar xupeng

数据类型新增修改

parent 022014ed
...@@ -43,7 +43,6 @@ def data_to_file(db, data, name, header): ...@@ -43,7 +43,6 @@ def data_to_file(db, data, name, header):
crud.create_export_data(db, params, user) crud.create_export_data(db, params, user)
return StreamingResponse(file, media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') return StreamingResponse(file, media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
except Exception as e: except Exception as e:
print(e)
params["status"] = 2 params["status"] = 2
crud.create_export_data(db, params, user) crud.create_export_data(db, params, user)
...@@ -69,7 +68,10 @@ class RechargeStatement(object): ...@@ -69,7 +68,10 @@ class RechargeStatement(object):
if menu_id: if menu_id:
querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id))) querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id)))
reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata] reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata]
reference_type=tuple([item.get("menu_label") for item in reference_data]) 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}") query.append(f"reference_type in {reference_type}")
if month_type==1: if month_type==1:
if start_time: if start_time:
...@@ -102,6 +104,7 @@ class RechargeStatement(object): ...@@ -102,6 +104,7 @@ class RechargeStatement(object):
count_sql = f"SELECT count(*) FROM assets_log_{now_month} where {query}" count_sql = f"SELECT count(*) FROM assets_log_{now_month} where {query}"
count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)") count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)")
sql = f"SELECT id,a.uuid,a.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}" sql = f"SELECT id,a.uuid,a.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}"
print(sql)
once_res = self.linkmysql.query_mysql(sql) once_res = self.linkmysql.query_mysql(sql)
money_sql = f"SELECT sum(amount) FROM assets_log_{now_month} where {query}" 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 \ moeny_data = self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") if \
...@@ -126,7 +129,7 @@ class RechargeStatement(object): ...@@ -126,7 +129,7 @@ class RechargeStatement(object):
return count, once_res, moeny_data return count, once_res, moeny_data
def get_statements(self,data): def get_statements(self,db,data):
query = [] query = []
if data.order_number: if data.order_number:
query.append(f"id={data.order_number} ") query.append(f"id={data.order_number} ")
...@@ -134,7 +137,14 @@ class RechargeStatement(object): ...@@ -134,7 +137,14 @@ class RechargeStatement(object):
query.append(f"uuid='{data.user_id}' ") query.append(f"uuid='{data.user_id}' ")
if data.sid: if data.sid:
query.append(f"sid='{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.month_type==1:
if data.start_time: if data.start_time:
query.append(f" create_time >= {time_str_to_timestamp(data.start_time + ' 00:00:00')} ") query.append(f" create_time >= {time_str_to_timestamp(data.start_time + ' 00:00:00')} ")
...@@ -200,7 +210,10 @@ class WithdrawStatement(object): ...@@ -200,7 +210,10 @@ class WithdrawStatement(object):
if menu_id: if menu_id:
querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id))) querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id)))
reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata] reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata]
reference_type=tuple([item.get("menu_label") for item in reference_data]) 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}") query.append(f"reference_type in {reference_type}")
if month_type==1: if month_type==1:
if start_time: if start_time:
...@@ -220,10 +233,12 @@ class WithdrawStatement(object): ...@@ -220,10 +233,12 @@ class WithdrawStatement(object):
def dispose_user(self,month_type,query,page,size,now_month): def dispose_user(self,month_type,query,page,size,now_month):
if month_type == 1: if month_type == 1:
count_sql = f"SELECT count(*) FROM assets_log_{now_month} where {query}" count_sql = f"SELECT count(*) FROM assets_log_{now_month} where {query}"
print(count_sql)
count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)") count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)")
sql = f'SELECT uuid,a.reference_type,a.reference_number,FROM_UNIXTIME(a.create_time,"%Y-%c-%d %h:%i:%s") as payment_time,a.reference_type FROM assets_log_{now_month} as a where {query} ORDER BY id desc limit {(int(page) - 1) * size},{size}' sql = f'SELECT uuid,a.reference_type,a.reference_number,FROM_UNIXTIME(a.create_time,"%Y-%c-%d %h:%i:%s") as payment_time,a.reference_type 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) once_res = self.linkmysql.query_mysql(sql)
money_sql = f"SELECT sum(amount) FROM assets_log_{now_month} where {query} " money_sql = f"SELECT sum(amount) FROM assets_log_{now_month} where {query} "
print(money_sql)
moeny_data = self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") if \ moeny_data = self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") if \
self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") != None else 0 self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") != None else 0
else: else:
...@@ -249,7 +264,10 @@ class WithdrawStatement(object): ...@@ -249,7 +264,10 @@ class WithdrawStatement(object):
if menu_id: if menu_id:
querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id))) querydata=db.query(Menuconfig).filter(Menuconfig.id.in_(tuple(menu_id)))
reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata] reference_data = [QueryAllData.serialization(item,remove={'menu_name','remark','menu_type','create_time','id'}) for item in querydata]
reference_type=tuple([item.get("menu_label") for item in reference_data]) 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}") query.append(f"reference_type in {reference_type}")
if month_type == 1: if month_type == 1:
if start_time: if start_time:
......
...@@ -26,6 +26,7 @@ class StatementList(BaseModel): ...@@ -26,6 +26,7 @@ class StatementList(BaseModel):
sid: Optional[str] = "" sid: Optional[str] = ""
pay_channel: Optional[str] = "" pay_channel: Optional[str] = ""
month_type :Optional[int] =None month_type :Optional[int] =None
menu_id: Optional[list] = ""
class Statement(StatementBase): class Statement(StatementBase):
......
...@@ -21,30 +21,36 @@ router = APIRouter() ...@@ -21,30 +21,36 @@ router = APIRouter()
@router.get("/recharge/list") @router.get("/recharge/list")
def statement_recharge_list(db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,order_number: Optional[str] = "",uuid: Optional[str] = "",sid: Optional[str]="",start_time:Optional[str]='',end_time:Optional[str]="",types:Optional[str]="",menu_id:Optional[str]="",month_type:Optional[int]=""): def statement_recharge_list(request:Request,db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,order_number: Optional[str] = "",uuid: Optional[str] = "",sid: Optional[str]="",start_time:Optional[str]='',end_time:Optional[str]="",types:Optional[str]="",month_type:Optional[int]=""):
"""充值报表列表""" """充值报表列表"""
query_params=request.query_params
menu_id=query_params.getlist("menu_id[]")
total,statement_list,money= RechargeStatement().query_data(db,page,size,order_number,uuid,sid,start_time,end_time,types,menu_id,month_type) total,statement_list,money= RechargeStatement().query_data(db,page,size,order_number,uuid,sid,start_time,end_time,types,menu_id,month_type)
return HttpResultResponse(total=total,count=float(money),data=statement_list) return HttpResultResponse(total=total,count=float(money),data=statement_list)
@router.post("/derive/excel") @router.post("/derive/excel")
def statement_derive_excel(data: schemas.StatementList, request: Request, 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")
statement_list = RechargeStatement().get_statements(data) statement_list = RechargeStatement().get_statements(db,data)
return crud.data_to_file(db, statement_list, "充值报表", header_list) return crud.data_to_file(db, statement_list, "充值报表", header_list)
@router.get("/userWithdrawal/list") @router.get("/userWithdrawal/list")
def user_withdrawal_list(db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,uuid:Optional[str]='',status:Optional[int]='',start_time:Optional[str]='',end_time:Optional[str]="",month_type:Optional[int]="",menu_id:Optional[str]="",token=Depends(login_required)): def user_withdrawal_list(request:Request,db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,uuid:Optional[str]='',status:Optional[int]='',start_time:Optional[str]='',end_time:Optional[str]="",month_type:Optional[int]="",menu_id:Optional[list]="",token=Depends(login_required)):
"""用户提现列表""" """用户提现列表"""
query_params = request.query_params
menu_id = query_params.getlist("menu_id[]")
total,statement_list,money = WithdrawStatement(). get_user_withdraw_cash(db,page,size,uuid,status,start_time,end_time,month_type,menu_id) total,statement_list,money = WithdrawStatement(). get_user_withdraw_cash(db,page,size,uuid,status,start_time,end_time,month_type,menu_id)
return HttpResultResponse(total=total, count=float(money), data=statement_list) return HttpResultResponse(total=total, count=float(money), data=statement_list)
@router.get("/guildWithdrawal/list") @router.get("/guildWithdrawal/list")
def guild_withdrawal_list(db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,guild_id:Optional[int]='',status:Optional[int]='',start_time:Optional[str]='',end_time:Optional[str]="", month_type:Optional[int]="",menu_id:Optional[str]="",token=Depends(login_required)): def guild_withdrawal_list(request:Request,db: Session = Depends(get_db),page: Optional[int] = 1, size: Optional[int] = 10,guild_id:Optional[int]='',status:Optional[int]='',start_time:Optional[str]='',end_time:Optional[str]="", month_type:Optional[int]="",menu_id:Optional[list]="",token=Depends(login_required)):
"""公会提现列表 暂无""" """公会提现列表 暂无"""
query_params=request.query_params
menu_id=query_params.getlist("menu_id[]")
total,statement_list,money= WithdrawStatement(). get_guild_withdraw_cash(db,page,size,guild_id,status,start_time,end_time,month_type,menu_id) total,statement_list,money= WithdrawStatement(). get_guild_withdraw_cash(db,page,size,guild_id,status,start_time,end_time,month_type,menu_id)
return HttpResultResponse(total=total, count=float(money), data=statement_list) return HttpResultResponse(total=total, count=float(money), data=statement_list)
......
...@@ -9,7 +9,7 @@ class Menuconfig(Base, SerializerMixin): ...@@ -9,7 +9,7 @@ class Menuconfig(Base, SerializerMixin):
id = Column(Integer, primary_key=True, index=True) id = Column(Integer, primary_key=True, index=True)
menu_name = Column(String(100), unique=True, index=True, comment="菜单类型名") menu_name = Column(String(100), unique=True, index=True, comment="菜单类型名")
menu_label= Column(String(100), unique=True, index=True, comment="菜单类型别名") menu_label= Column(String(100), unique=True, index=True, comment="菜单类型别名")
menu_type = Column(Integer, comment="1是充值 2是消费") menu_type = Column(Integer, comment="1是充值 2是消费 3是用户提现 4是公会提现")
remark = Column(Text, comment="备注") remark = Column(Text, comment="备注")
create_time = Column(DateTime, comment="创建时间") create_time = Column(DateTime, comment="创建时间")
......
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