53 lines
2.3 KiB
Python
53 lines
2.3 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 RevenueType
|
|
|
|
router = APIRouter(tags=["营收类型"])
|
|
|
|
|
|
@router.post("/revenue_type/add", summary="添加营收类型", response_model=Schemas.RevenueTypeAddRes)
|
|
def revenue_type_add(req: Schemas.RevenueTypeAddReq, db: Session = Depends(get_db)):
|
|
item = Crud.revenue_type_add(db, req)
|
|
return Schemas.RevenueTypeAddRes(**item.to_dict())
|
|
|
|
|
|
@router.post("/revenue_type/delete", summary="删除营收类型")
|
|
def revenue_type_delete(req: Schemas.RevenueTypeDeleteReq, db: Session = Depends(get_db)):
|
|
Crud.revenue_type_delete(db, req.id)
|
|
return "删除成功"
|
|
|
|
|
|
@router.post("/revenue_type/update", summary="更新营收类型", response_model=Schemas.RevenueTypeUpdateRes)
|
|
def revenue_type_update(req: Schemas.RevenueTypeUpdateReq, db: Session = Depends(get_db)):
|
|
item = Crud.revenue_type_update(db, req)
|
|
return Schemas.RevenueTypeUpdateRes(**item.to_dict())
|
|
|
|
|
|
@router.post("/revenue_type/get", summary="获取营收类型", response_model=Schemas.RevenueTypeGetRes)
|
|
def revenue_type_get(req: Schemas.RevenueTypeGetReq, db: Session = Depends(get_db)):
|
|
item = Crud.revenue_type_get(db, req.id)
|
|
if not item:
|
|
raise HTTPException(detail="未查询到信息", status_code=404)
|
|
return Schemas.RevenueTypeGetRes(**item.to_dict())
|
|
|
|
|
|
@router.post("/revenue_type/query", summary="查询营收类型", response_model=Schemas.RevenueTypeQueryRes)
|
|
def revenue_type_query(req: Schemas.RevenueTypeQueryReq, db: Session = Depends(get_db)):
|
|
count, query = Crud.revenue_type_query(db, req)
|
|
items = [Schemas.RevenueTypeInfo(**item.to_dict()) for item in query]
|
|
return Schemas.RevenueTypeQueryRes(count=count, items=items)
|
|
|
|
|
|
@router.post("/revenue_type/query_common", summary="通用查询营收类型",
|
|
response_model=Schemas.RevenueTypeQueryRes)
|
|
def revenue_type_query_common(req: QueryParams, db: Session = Depends(get_db)):
|
|
count, query = query_common(db, RevenueType, req)
|
|
items = [Schemas.RevenueTypeInfo(**item.to_dict()) for item in query]
|
|
return Schemas.RevenueTypeQueryRes(count=count, items=items)
|
|
|
|
#########
|