Commit 0f9d5fa7 authored by xianyang's avatar xianyang

保证金操作接口

parent f21e5452
......@@ -4,8 +4,9 @@ from sqlalchemy import and_
from sqlalchemy.orm import Session
from app.api.account import schemas
from libs.functions import wrapper_out
from libs.orm import QueryAllData
from models import account as models
from models.account import AccountFinance, AccountFinanceDetails
from models.account import AccountFinance, AccountFinanceDetails, AccountType
def get_account(db: Session, name: str):
......@@ -143,3 +144,21 @@ def get_finance_details(db, data, is_list=None):
return serial_info[(int(data.page) - 1) * data.size:data.size * data.page], len(serial_info), count
else:
return serial_info
def get_account_type(db: Session, data):
"""礼物类型配置列表"""
finance_filters = []
if data.get("key_name"):
finance_filters.append(AccountType.key_name == data.get("key_name"))
if data.get("key_value"):
finance_filters.append(AccountType.key_value == data.get("key_value"))
if data.get("type") or data.get("type") == 0:
finance_filters.append(AccountType.type == data.get("type"))
if data.get("start_time"):
finance_filters.append(AccountType.create_time >= data.get("start_time") + " 00:00:00")
if data.get("end_time"):
finance_filters.append(AccountType.create_time <= data.get("end_time") + " 23:59:59")
querydata, count = QueryAllData(db, AccountType, data, finance_filters).query_data()
data = [QueryAllData.serialization(item) for item in querydata]
return data, count
......@@ -47,3 +47,11 @@ class FixTable(BaseModel):
money: float
amount_type: str = ""
remark: str
class AccountTypeList(BaseModel):
page: int = None
size: int = None
key_name: str = ""
key_value: str = ""
type: int = None
......@@ -67,3 +67,10 @@ def finance_info_excel(data: schemas.FinanceDetails, db: Session = Depends(get_d
"""账户财务明细导出"""
statement_list = crud.get_finance_details(db, data)
return statement_crud.data_to_file(statement_list, "财务明细")
@router.post("/type")
def finance_fix(data: schemas.AccountTypeList, db: Session = Depends(get_db)):
"""出入账目配置列表"""
res, num = crud.get_account_type(db, data.dict(exclude_none=True))
return HttpResultResponse(total=num, data=res)
from sqlalchemy.orm import Session
from libs.functions import get_now_datetime
from libs.orm import QueryAllData
from models.margin import GuildMargin
from models.guild import Guild, GuildPledgeRecord
from models.margin import GuildMargin
def get_margin(db: Session, param):
......@@ -17,3 +21,32 @@ def get_margin(db: Session, param):
querydata, count = QueryAllData(db, GuildMargin, param, guild_filters).query_data()
data = [QueryAllData.serialization(item) for item in querydata]
return data, count
def margin_dispose(db: Session, param):
if param.get("examine_status") == -1:
db.query(GuildMargin).filter(GuildMargin.id == param.get("id")).update({GuildMargin.status: 5})
db.commit()
return '拒绝成功'
# 查询公会
guid_info = db.query(Guild).filter(Guild.id == param.get("guild_id")).first()
if not guid_info:
return '公会不存在'
try:
# 修改公会保证金记录 状态
db.query(GuildMargin).filter(GuildMargin.id == param.get("id")).update({GuildMargin.status: 4})
db.commit()
except Exception as e:
print(e)
# 给公会添加保证金
db.query(Guild).filter(Guild.id == param.get("guild_id")).update({Guild.margin: guid_info.margin + param.get("amount")})
# 添加保证金添加记录
try:
gpr = GuildPledgeRecord(guild_id=param.get("guild_id"), before_pears=guid_info.margin, after_pears=guid_info.margin + param.get("amount"),
create_time=get_now_datetime(), update_time=get_now_datetime(), tixian_id=0,
is_handle=1, pledge_pearl=0, margin=param.get("amount"))
db.add(gpr)
db.commit()
db.refresh(gpr)
except Exception as e:
print(e)
......@@ -9,3 +9,10 @@ class GuildMarginList(BaseModel):
status: Optional[int] = None
start_time: Optional[int] = None
end_time: Optional[int] = None
class MarginExamine(BaseModel):
id: int
guild_id: int
examine_status: int
amount: float
......@@ -12,3 +12,10 @@ def guild_margin_list(data: schemas.GuildMarginList, db: Session = Depends(get_d
"""保证金列表"""
result, total = crud.get_margin(db, data.dict(exclude_none=True))
return HttpResultResponse(total=total, data=result)
@router.post("/examine")
def margin_examine(data: schemas.MarginExamine, db: Session = Depends(get_db)):
"""保证金确认,拒绝"""
result = crud.margin_dispose(db, data.dict(exclude_none=True))
return HttpResultResponse(msg=result)
......@@ -27,7 +27,7 @@ class HttpResultResponse(Response):
def __init__(self, code=None, msg=None, **kwargs):
result_dict = {
'code': code if code else status.HTTP_200_OK,
'msg': msg if code else HttpMessage.SUCCESS
'msg': msg if msg else HttpMessage.SUCCESS
}
result_dict = {**result_dict, **kwargs}
......@@ -35,4 +35,4 @@ class HttpResultResponse(Response):
content=json.dumps(result_dict,cls=DecimalEncoder),
media_type="application/json",
status_code=result_dict.get('code')
)
\ No newline at end of file
)
from core.storage.db import engine
from models import users, roles, recharge, account, margin
from models import users, roles, recharge, account, margin, guild
# 映射模型表
users.Base.metadata.create_all(bind=engine)
......@@ -7,3 +7,4 @@ 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)
guild.Base.metadata.create_all(bind=engine)
......@@ -113,3 +113,20 @@ class Guild(Base, SerializerMixin):
operation_pwd = Column(String(255), default=0, comment="操作密码")
__table_args__ = {'comment': '公会表'}
class GuildPledgeRecord(Base, SerializerMixin):
"""公会质押记录表"""
__tablename__ = 'guild_pledge_record'
id = Column(Integer, primary_key=True, index=True)
guild_id = Column(Integer, default=0, comment="公会id")
before_pears = Column(Float, comment="变动前金额(元)")
after_pears = Column(Float, comment="变动后金额(元)")
create_time = Column(DateTime, comment="创建时间")
update_time = Column(DateTime, comment="修改时间")
tixian_id = Column(Integer, comment="提现id")
is_handle = Column(Integer, default=2, comment="是否处理 2表示未处理 1为处理")
pledge_pearl = Column(Float, default=0.00, comment="质押金(元)")
margin = Column(Float, default=0.00, 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