dataplatform/APPData/Router/CompanyRouter.py

40 lines
1.3 KiB
Python
Raw Permalink Normal View History

2022-11-20 10:54:23 +08:00
from fastapi import APIRouter, Depends, HTTPException
2022-11-11 15:21:19 +08:00
from sqlalchemy.orm import Session
from APPData.Crud import CompanyCrud
from APPData.Schemas import CompanySchemas
2022-11-18 16:47:47 +08:00
from Utils.AccessControl.AccessUtil import rbac
2022-11-11 15:21:19 +08:00
from Utils.DataBase.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["企业管理"],
2022-11-19 15:12:03 +08:00
prefix="/api/wide_data/company",
2022-11-18 16:47:47 +08:00
dependencies=[Depends(rbac)]
2022-11-11 15:21:19 +08:00
)
@router.get("/create", summary="新建企业")
2022-11-20 10:54:23 +08:00
def func(name: str, db: Session = Depends(get_db)):
2022-11-11 15:21:19 +08:00
# 根据name查询企业是否存在
data = CompanyCrud.get_company_by_name(db=db, name=name)
if not data:
# 不能存在新建企业再返回cid
data = CompanyCrud.create_company_by_name(db=db, name=name)
return {"cid": data.id}
@router.post("/search", summary="查询企业")
2022-11-20 10:54:23 +08:00
def func(req_body: CompanySchemas.CompanySearch, db: Session = Depends(get_db)):
2022-11-11 15:21:19 +08:00
company = CompanyCrud.get_company_total(db, name=req_body.name, page=req_body.page, pagesize=req_body.pagesize)
return company
2022-11-20 10:54:23 +08:00
@router.post("/search_name_by_cid", summary="根据企业ID查询企业名称")
def func(schema: CompanySchemas.ViewCompanyByIDReqBody, db: Session = Depends(get_db)):
item = CompanyCrud.get_company_by_id(db=db, _id=schema.cid)
if not item:
raise HTTPException(status_code=404, detail="Company Not Found")
return {"company_name": item.name}