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}