from database import MySqlDao from fastapi import APIRouter, status, HTTPException from .request_body import ReportRequest from core import get_logger logger = get_logger("api.report") dao = MySqlDao() router = APIRouter() @router.post("/report") async def report(request: ReportRequest): """获取推荐相关报告接口""" logger.info(f"Report request: cultivacation_id={request.cultivacation_id}") file_id_record = dao.get_report_file_id(request.cultivacation_id) if file_id_record.empty: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="Reports not found" ) file_id_map = { '卷烟信息表': file_id_record['product_info_table'].item(), '品规商户特征关系表': file_id_record['relation_table'].item(), '相似卷烟表': file_id_record['similarity_product_table'].item() } request_data = [] for index, filename in enumerate(file_id_map): request_data.append( { "id": index + 1, "filename": filename, "file_id": file_id_map.get(filename) } ) return {"code": 200, "msg": "success", "data": {"reportInfo": request_data}}