Commit 0327d8ed authored by xianyang's avatar xianyang

公会保证金接口

parent 10ff7a34
......@@ -43,11 +43,29 @@ def get_account_list(db: Session, param):
return result_list
def get_gift_type(db: Session):
"""礼物类型"""
out_list = []
income_list = []
output = db.query(models.AccountType).all()
for i in output:
try:
zer_info = i.to_dict(only=('id', 'key_name', 'key_value', 'type'))
except:
zer_info = i
if zer_info.get("type") == 1:
income_list.append(zer_info)
else:
out_list.append(zer_info)
return {"income": income_list, "output": out_list}
def create_account(db: Session, param: schemas.AccountCreate):
"""创建"""
try:
db_account = models.Account(name=param.name, unique_tag=param.unique_tag, config_key=param.config_key,
remark=param.remark, create_time=datetime.now())
remark=param.remark, income=','.join(map(str, param.income)),
output=','.join(map(str, param.output)), create_time=datetime.now())
db.add(db_account)
db.commit()
db.refresh(db_account)
......
......@@ -26,6 +26,13 @@ def user_list(data: schemas.AccountList, db: Session = Depends(get_db)):
return HttpResultResponse(total=len(result), data=result)
@router.get("/gift/type")
def gift_type_list(db: Session = Depends(get_db)):
"""礼物类型配置返回"""
result = crud.get_gift_type(db)
return HttpResultResponse(data=result)
@router.post("/update")
def read_account(data: schemas.AccountUpdate, db: Session = Depends(get_db)):
"""账户修改"""
......
......@@ -3,9 +3,11 @@ from app.api.users import views as u_view
from app.api.statement import views as s_view
from app.api.role import views as r_view
from app.api.account import views as a_view
from app.api.margin import views as m_view
api_router = APIRouter()
api_router.include_router(u_view.router, prefix="/users", tags=["users"])
api_router.include_router(s_view.router, prefix="/statement", tags=["statement"])
api_router.include_router(r_view.router, prefix="/role", tags=["role"])
api_router.include_router(a_view.router, prefix="/account", tags=["account"])
api_router.include_router(m_view.router, prefix="/margin", tags=["margin"])
from sqlalchemy import and_
from sqlalchemy.orm import Session
from libs.functions import wrapper_out
from models.margin import GuildMargin
@wrapper_out()
def get_margin(db: Session, param):
guild_filters = []
if param.guild_id:
guild_filters.append(GuildMargin.guild_id == param.guild_id)
if param.status:
guild_filters.append(GuildMargin.status == param.status)
if param.start_time:
guild_filters.append(GuildMargin.create_time >= param.start_time)
if param.end_time:
guild_filters.append(GuildMargin.create_time <= param.end_time)
if not guild_filters:
query_res = db.query(GuildMargin).all()
return [i.to_dict() for i in query_res][::-1]
else:
get_user_orm_sql = db.query(GuildMargin).filter(and_(*guild_filters))
query_res = db.execute(get_user_orm_sql).fetchall()
return [i[0].to_dict() for i in query_res][::-1]
from pydantic import BaseModel
from typing import Optional
class GuildMarginList(BaseModel):
page: Optional[int] = None
size: Optional[int] = None
guild_id: Optional[int] = None
status: Optional[int] = None
start_time: Optional[int] = None
end_time: Optional[int] = None
from fastapi import Depends, APIRouter
from sqlalchemy.orm import Session
from app import get_db
from app.api.margin import schemas, crud
from libs.result_format import HttpResultResponse
router = APIRouter()
@router.post("/list")
def guild_margin_list(data: schemas.GuildMarginList, db: Session = Depends(get_db)):
"""保证金列表"""
result = crud.get_margin(db, data)
return HttpResultResponse(total=len(result), data=result[int(data.page-1)*data.size:data.page*data.size])
from pydantic import BaseModel
from typing import Optional
from sqlalchemy.orm import Session
from models import roles as models
class RoleCreate(BaseModel):
......
......@@ -208,5 +208,3 @@ class WithdrawStatement(object):
final_count = df['final_money'].apply(lambda x: float(x)).sum()
return guild_info[(int(cond.page) - 1) * cond.size:cond.size * cond.page], total, count, final_count
return [], 0, 0, 0
......@@ -61,3 +61,9 @@ class GuildSet(object):
if guild_info:
return guild_info[(int(param.page) - 1) * param.size:param.size * param.page], len(guild_info)
return [], 0
def update_guild_info(self, db: Session, data):
"""公会结算修改"""
if (data.status or data.status == 0) and data.status < 2:
db.query(Settlement).filter(Settlement.id == data.id).update({Settlement.status: data.status + 1})
db.commit()
......@@ -50,3 +50,8 @@ class GuildWithdrawalList(BaseModel):
end_time: Optional[str] = ""
status: Optional[int] = None
guild_id: Optional[int] = None
class GuildUpdate(BaseModel):
id: int
status: int
......@@ -42,3 +42,10 @@ def guild_settlement_list(data: schemas.GuildWithdrawalList, db: Session = Depen
"""公会结算"""
guild_list, total = GuildSet().get_guild_data(db, data)
return HttpResultResponse(total=total, data=guild_list)
@router.post("/guild/update")
def guild_update_list(data: schemas.GuildUpdate, db: Session = Depends(get_db)):
"""公会结算"""
GuildSet().update_guild_info(db, data)
return HttpResultResponse()
from core.storage.db import engine
from models import users, roles, recharge, account
from models import users, roles, recharge, account, margin
# 映射模型表
users.Base.metadata.create_all(bind=engine)
roles.Base.metadata.create_all(bind=engine)
recharge.Base.metadata.create_all(bind=engine)
account.Base.metadata.create_all(bind=engine)
margin.Base.metadata.create_all(bind=engine)
......@@ -24,3 +24,16 @@ class Account(Base, SerializerMixin):
create_time = Column(DateTime, comment="创建时间")
__table_args__ = {'comment': '财务系统-账号管理'}
class AccountType(Base, SerializerMixin):
"""礼物类型配置"""
__tablename__ = "account_type"
id = Column(Integer, primary_key=True, index=True)
key_name = Column(String(255), comment="礼物类型名字")
key_value = Column(String(255), comment="礼物类型value")
type = Column(Integer, comment="方式:0出账,1:入账")
create_time = Column(DateTime, comment="创建时间")
__table_args__ = {'comment': '礼物类型配置'}
from sqlalchemy import Column, Integer, String, Text, DateTime, Float
from core.storage.db import Base
from sqlalchemy_serializer import SerializerMixin
class GuildMargin(Base, SerializerMixin):
"""公会保证金表"""
__tablename__ = "guild_margin"
id = Column(Integer, primary_key=True, index=True)
guild_id = Column(Integer, index=True, comment="公会id")
guild_name = Column(String(100), comment="公会名字")
amount = Column(Float, comment="操作金额")
type = Column(Integer, default=1, comment="1:缴纳保证金 -1:扣减保证金")
remark = Column(String(255), comment="扣减理由")
violate_images = Column(String(255), comment="违规图片地址")
deduction_images = Column(String(255), comment="扣减图片地址")
status = Column(Integer, comment="3表示未处理 4表示成功 5表示拒绝")
create_time = Column(Integer, comment="添加时间")
__table_args__ = {'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