Commit d359fa02 authored by xupeng's avatar xupeng

数据类型新增修改

parent 022014ed
......@@ -43,7 +43,6 @@ def data_to_file(db, data, name, header):
crud.create_export_data(db, params, user)
return StreamingResponse(file, media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
except Exception as e:
print(e)
params["status"] = 2
crud.create_export_data(db, params, user)
......@@ -69,7 +68,10 @@ class RechargeStatement(object):
if 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_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}")
if month_type==1:
if start_time:
......@@ -102,6 +104,7 @@ class RechargeStatement(object):
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,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)
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 \
......@@ -126,7 +129,7 @@ class RechargeStatement(object):
return count, once_res, moeny_data
def get_statements(self,data):
def get_statements(self,db,data):
query = []
if data.order_number:
query.append(f"id={data.order_number} ")
......@@ -134,7 +137,14 @@ class RechargeStatement(object):
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')} ")
......@@ -200,7 +210,10 @@ class WithdrawStatement(object):
if 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_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}")
if month_type==1:
if start_time:
......@@ -220,10 +233,12 @@ class WithdrawStatement(object):
def dispose_user(self,month_type,query,page,size,now_month):
if month_type == 1:
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(*)")
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)
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 \
self.linkmysql.query_mysql(money_sql)[0].get("sum(amount)") != None else 0
else:
......@@ -249,7 +264,10 @@ class WithdrawStatement(object):
if 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_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}")
if month_type == 1:
if start_time:
......
......@@ -26,6 +26,7 @@ class StatementList(BaseModel):
sid: Optional[str] = ""
pay_channel: Optional[str] = ""
month_type :Optional[int] =None
menu_id: Optional[list] = ""
class Statement(StatementBase):
......
......@@ -21,30 +21,36 @@ router = APIRouter()
@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)
return HttpResultResponse(total=total,count=float(money),data=statement_list)
@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")
statement_list = RechargeStatement().get_statements(data)
statement_list = RechargeStatement().get_statements(db,data)
return crud.data_to_file(db, statement_list, "充值报表", header_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)
return HttpResultResponse(total=total, count=float(money), data=statement_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)
return HttpResultResponse(total=total, count=float(money), data=statement_list)
......
......@@ -9,7 +9,7 @@ class Menuconfig(Base, SerializerMixin):
id = Column(Integer, primary_key=True, index=True)
menu_name = 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="备注")
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