100 lines
5.1 KiB
Python
100 lines
5.1 KiB
Python
"""企查查控制器。"""
|
|
|
|
from typing import Any
|
|
|
|
from fastapi import Depends, Query
|
|
from fastapi.responses import JSONResponse
|
|
|
|
from fastapi_common.fastapi_common_security.security import verify_access_token
|
|
from fastapi_common.fastapi_common_web.controller import BaseController
|
|
from fastapi_common.fastapi_common_web.domain.responses import Result
|
|
from fastapi_modules.fastapi_leaudit.domian.Dto.qichachaDto import QichachaBatchQueryDTO, QichachaCompanyQueryDTO
|
|
from fastapi_modules.fastapi_leaudit.domian.vo.qichachaVo import (
|
|
QichachaBatchQueryVO,
|
|
QichachaCompanyQueryVO,
|
|
QichachaRecordStatusVO,
|
|
)
|
|
from fastapi_modules.fastapi_leaudit.services.impl.permissionServiceImpl import PermissionServiceImpl
|
|
from fastapi_modules.fastapi_leaudit.services.impl.qichachaServiceImpl import QichachaServiceImpl
|
|
from fastapi_modules.fastapi_leaudit.services.permissionService import IPermissionService
|
|
from fastapi_modules.fastapi_leaudit.services.qichachaService import IQichachaService
|
|
|
|
|
|
class QichachaController(BaseController):
|
|
"""企查查控制器。"""
|
|
|
|
def __init__(self):
|
|
super().__init__(prefix="/v2/qichacha", tags=["企查查"])
|
|
self.QichachaService: IQichachaService = QichachaServiceImpl()
|
|
self.PermissionService: IPermissionService = PermissionServiceImpl()
|
|
|
|
@self.router.post("/company", response_model=Result[QichachaCompanyQueryVO])
|
|
async def QueryCompany(Body: QichachaCompanyQueryDTO, payload: dict[str, Any] = Depends(verify_access_token)):
|
|
"""查询企业完整信息。"""
|
|
if not await self.PermissionService.CheckPermission(int(payload["user_id"]), "qichacha:company:query"):
|
|
return JSONResponse(
|
|
status_code=403,
|
|
content={"code": 403, "message": "当前用户没有查询企业信息权限", "data": None},
|
|
)
|
|
data = await self.QichachaService.QueryCompany(
|
|
Keyword=Body.keyword,
|
|
ForceRefresh=Body.forceRefresh,
|
|
)
|
|
return Result.success(data=data)
|
|
|
|
@self.router.post("/enterprise", response_model=Result[QichachaCompanyQueryVO])
|
|
async def QueryEnterprise(Body: QichachaCompanyQueryDTO, payload: dict[str, Any] = Depends(verify_access_token)):
|
|
"""仅查询企业工商信息。"""
|
|
if not await self.PermissionService.CheckPermission(int(payload["user_id"]), "qichacha:company:query"):
|
|
return JSONResponse(
|
|
status_code=403,
|
|
content={"code": 403, "message": "当前用户没有查询企业信息权限", "data": None},
|
|
)
|
|
data = await self.QichachaService.QueryEnterpriseOnly(
|
|
Keyword=Body.keyword,
|
|
ForceRefresh=Body.forceRefresh,
|
|
)
|
|
return Result.success(data=data)
|
|
|
|
@self.router.post("/dishonesty", response_model=Result[QichachaCompanyQueryVO])
|
|
async def QueryDishonesty(Body: QichachaCompanyQueryDTO, payload: dict[str, Any] = Depends(verify_access_token)):
|
|
"""仅查询企业失信信息。"""
|
|
if not await self.PermissionService.CheckPermission(int(payload["user_id"]), "qichacha:company:query"):
|
|
return JSONResponse(
|
|
status_code=403,
|
|
content={"code": 403, "message": "当前用户没有查询企业信息权限", "data": None},
|
|
)
|
|
data = await self.QichachaService.QueryDishonestyOnly(
|
|
Keyword=Body.keyword,
|
|
ForceRefresh=Body.forceRefresh,
|
|
)
|
|
return Result.success(data=data)
|
|
|
|
@self.router.post("/batch", response_model=Result[QichachaBatchQueryVO])
|
|
async def BatchQuery(Body: QichachaBatchQueryDTO, payload: dict[str, Any] = Depends(verify_access_token)):
|
|
"""批量查询企业信息。"""
|
|
if not await self.PermissionService.CheckPermission(int(payload["user_id"]), "qichacha:company:query"):
|
|
return JSONResponse(
|
|
status_code=403,
|
|
content={"code": 403, "message": "当前用户没有查询企业信息权限", "data": None},
|
|
)
|
|
data = await self.QichachaService.BatchQuery(
|
|
Keywords=Body.keywords,
|
|
ForceRefresh=Body.forceRefresh,
|
|
)
|
|
return Result.success(data=data)
|
|
|
|
@self.router.get("/status", response_model=Result[QichachaRecordStatusVO])
|
|
async def GetRecordStatus(
|
|
keyword: str = Query(..., min_length=2, description="企业名称或统一社会信用代码"),
|
|
payload: dict[str, Any] = Depends(verify_access_token),
|
|
):
|
|
"""查询企业缓存状态。"""
|
|
if not await self.PermissionService.CheckPermission(int(payload["user_id"]), "qichacha:status:read"):
|
|
return JSONResponse(
|
|
status_code=403,
|
|
content={"code": 403, "message": "当前用户没有查看企业缓存状态权限", "data": None},
|
|
)
|
|
data = await self.QichachaService.GetRecordStatus(Keyword=keyword)
|
|
return Result.success(data=data)
|