61 lines
2.4 KiB
Python
61 lines
2.4 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from sqlalchemy.orm import Session
|
|
|
|
from Utils.SqlAlchemyUtils import get_db, Base
|
|
from . import Schemas
|
|
from . import Crud
|
|
from Utils.SqlAlchemyUtils import QueryParams, query_common
|
|
from .Models import Finance
|
|
|
|
router = APIRouter(tags=["财务数据"])
|
|
|
|
|
|
@router.post("/finance/add", summary="添加财务数据", response_model=Schemas.FinanceAddRes)
|
|
def finance_add(req: Schemas.FinanceAddReq, db: Session = Depends(get_db)):
|
|
item = Crud.finance_add(db, req)
|
|
return Schemas.FinanceAddRes(**item.to_dict())
|
|
|
|
|
|
@router.post("/finance/delete", summary="删除财务数据")
|
|
def finance_delete(req: Schemas.FinanceDeleteReq, db: Session = Depends(get_db)):
|
|
Crud.finance_delete(db, req.id)
|
|
return "删除成功"
|
|
|
|
|
|
@router.post("/finance/update", summary="更新财务数据", response_model=Schemas.FinanceUpdateRes)
|
|
def finance_update(req: Schemas.FinanceUpdateReq, db: Session = Depends(get_db)):
|
|
item = Crud.finance_update(db, req)
|
|
return Schemas.FinanceUpdateRes(**item.to_dict())
|
|
|
|
|
|
@router.post("/finance/get", summary="获取财务数据", response_model=Schemas.FinanceGetRes)
|
|
def finance_get(req: Schemas.FinanceGetReq, db: Session = Depends(get_db)):
|
|
item = Crud.finance_get(db, req.id)
|
|
if not item:
|
|
raise HTTPException(detail="未查询到信息", status_code=404)
|
|
finance_info = item[0].to_dict()
|
|
finance_info['user_info'] = item[1].to_dict()
|
|
return Schemas.FinanceGetRes(**finance_info)
|
|
|
|
|
|
@router.post("/finance/query", summary="查询财务数据", response_model=Schemas.FinanceQueryRes)
|
|
def finance_query(req: Schemas.FinanceQueryReq, db: Session = Depends(get_db)):
|
|
count, query,total = Crud.finance_query(db, req)
|
|
items = []
|
|
for item in query:
|
|
finance_info = item[0].to_dict()
|
|
finance_info['user_info'] = item[1].to_dict()
|
|
items.append(Schemas.FinanceInfo(**finance_info))
|
|
print(total,"total")
|
|
return Schemas.FinanceQueryRes(count=count, items=items,total=total)
|
|
|
|
|
|
@router.post("/finance/query_common", summary="通用查询财务数据",
|
|
response_model=Schemas.FinanceQueryRes)
|
|
def finance_query_common(req: QueryParams, db: Session = Depends(get_db)):
|
|
count, query = query_common(db, Finance, req)
|
|
items = [Schemas.FinanceInfo(**item.to_dict()) for item in query]
|
|
return Schemas.FinanceQueryRes(count=count, items=items)
|
|
|
|
#########
|