from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from context.common import common_db, CompanyUserTokenDataModel, company_user_auth_util from . import schemas from . import crud from utils.sqlalchemy_common_utils import QueryParams, query_common from .models import CompanyRate router = APIRouter(tags=["公司评级数据"]) @router.post("/company_rate/add", summary="添加公司评级数据", response_model=schemas.CompanyRateAddRes) def company_rate_add(req: schemas.CompanyRateAddReq, db: Session = Depends(common_db.get_db), token_data: CompanyUserTokenDataModel = Depends(company_user_auth_util.token_data_depend)): req.company_name = token_data.company_name item = crud.company_rate_add(db, req) return schemas.CompanyRateAddRes(**item.to_dict()) @router.post("/company_rate/delete", summary="删除公司评级数据") def company_rate_delete(req: schemas.CompanyRateDeleteReq, db: Session = Depends(common_db.get_db)): crud.company_rate_delete(db, req.id) return "删除成功" @router.post("/company_rate/update", summary="更新公司评级数据", response_model=schemas.CompanyRateUpdateRes) def company_rate_update(req: schemas.CompanyRateUpdateReq, db: Session = Depends(common_db.get_db)): item = crud.company_rate_update(db, req) return schemas.CompanyRateUpdateRes(**item.to_dict()) @router.post("/company_rate/get", summary="获取公司评级数据", response_model=schemas.CompanyRateGetRes) def company_rate_get(req: schemas.CompanyRateGetReq, db: Session = Depends(common_db.get_db)): item = crud.company_rate_get(db, req.id) if not item: raise HTTPException(detail="未查询到信息", status_code=404) return schemas.CompanyRateGetRes(**item.to_dict()) @router.post("/company_rate/query", summary="查询公司评级数据", response_model=schemas.CompanyRateQueryRes) def company_rate_query(req: schemas.CompanyRateQueryReq, db: Session = Depends(common_db.get_db)): count, query = crud.company_rate_query(db, req) items = [schemas.CompanyRateInfo(**item.to_lite_dict()) for item in query] return schemas.CompanyRateQueryRes(count=count, items=items) @router.post("/company_rate/query_common", summary="通用查询公司评级数据", response_model=schemas.CompanyRateQueryRes) def company_rate_query_common(req: QueryParams, db: Session = Depends(common_db.get_db)): count, query = query_common(db, CompanyRate, req) items = [schemas.CompanyRateInfo(**item.to_lite_dict()) for item in query] return schemas.CompanyRateQueryRes(count=count, items=items) @router.post("/company_rate/company_rate", summary="评级") def company_rate(req: schemas.CompanyRateReq, db: Session = Depends(common_db.get_db)): res = crud.company_rate(db, req.id) return res @router.post("/company_rate/load_api_data_to_db", summary="三方接口数据导入", response_model=schemas.CompanyRateGetRes) def company_rate(req: schemas.CompanyRateGetReq, db: Session = Depends(common_db.get_db)): res = crud.load_api_data_to_db(db, req.id) return res.to_dict() @router.post("/company_rate/get_full_info", summary="获取详细信息") def company_rate(req: schemas.CompanyRateGetReq, db: Session = Depends(common_db.get_db)): res = crud.get_full_info(db, req.id) return res #########