dataplatform/APPData/Router/CompanyRouter.py

40 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from APPData.Crud import CompanyCrud
from APPData.Schemas import CompanySchemas
from Utils.AccessControl.AccessUtil import rbac
from Utils.DataBase.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["企业管理"],
prefix="/api/wide_data/company",
dependencies=[Depends(rbac)]
)
@router.get("/create", summary="新建企业")
def func(name: str, db: Session = Depends(get_db)):
# 根据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="查询企业")
def func(req_body: CompanySchemas.CompanySearch, db: Session = Depends(get_db)):
company = CompanyCrud.get_company_total(db, name=req_body.name, page=req_body.page, pagesize=req_body.pagesize)
return company
@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}