From 4262c7f3f47c239d0559cace4e082cd37e82e3ae Mon Sep 17 00:00:00 2001 From: 00MSJ1122 <1253313142@qq.com> Date: Mon, 21 Sep 2026 20:26:13 +0800 Subject: [PATCH] 1 --- PythonProject/api/statistics_api.py | 10 ++++++++-- PythonProject/dao/statistics_dao.py | 18 ++++++++++++++++++ PythonProject/schema/statistics_schema.py | 18 +++++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/PythonProject/api/statistics_api.py b/PythonProject/api/statistics_api.py index f934c21..f9538fd 100644 --- a/PythonProject/api/statistics_api.py +++ b/PythonProject/api/statistics_api.py @@ -1,7 +1,7 @@ from fastapi import APIRouter,Depends -from dao.statistics_dao import select_all,select_age,select_score,select_avg_score,select_salary,select_days +from dao.statistics_dao import * from schema.student_schema import StudentResponse -from schema.statistics_schema import AllStuResponse,AvgDayResponse,AcgScoreResponse +from schema.statistics_schema import * from util.database import get_db StatisticsAPI = APIRouter() @@ -35,3 +35,9 @@ def get_scores(db=Depends(get_db)): def get_days(db=Depends(get_db)): l = select_days(db) return l + + +@StatisticsAPI.get('/emp',response_model=AllEmpResponse,tags=['统计分析模块'],summary='统计每个学生的就业时长') +def get_emp(db=Depends(get_db)): + l= select_days2(db) + return l \ No newline at end of file diff --git a/PythonProject/dao/statistics_dao.py b/PythonProject/dao/statistics_dao.py index 52658c8..726c60d 100644 --- a/PythonProject/dao/statistics_dao.py +++ b/PythonProject/dao/statistics_dao.py @@ -91,3 +91,21 @@ def select_days(db): except Exception: raise HTTPException(status_code=500, detail="查询异常") +#统计每个学⽣的就业时⻓ +def select_days2(db): + try: + l2 =db.query( + Employment_info.stu_id + ,Employment_info.employment_opening_date + ,Employment_info.offer_issuance_date + ,func.datediff( + Employment_info.offer_issuance_date + ,Employment_info.employment_opening_date + ) + .label("employment_duration_day") + ).filter( + Employment_info.delete_status == 0 + ).all() + return l2 + except Exception: + raise HTTPException(status_code=500, detail="查询异常") \ No newline at end of file diff --git a/PythonProject/schema/statistics_schema.py b/PythonProject/schema/statistics_schema.py index ab8e87b..2b76ae4 100644 --- a/PythonProject/schema/statistics_schema.py +++ b/PythonProject/schema/statistics_schema.py @@ -1,4 +1,6 @@ -from pydantic import BaseModel +from pydantic import BaseModel,Field +from datetime import date +from typing import List, Optional class AllStuResponse(BaseModel): class_id: int @@ -13,3 +15,17 @@ class AvgDayResponse(BaseModel): class_id: int avg_days: str | None +class EmpRequest(BaseModel): + stu_id: int + +class EmpItem(BaseModel): + stu_id: int + employment_opening_date:date | None + offer_issuance_date:date | None + employment_duration_day: int | None + +class AllEmpResponse(BaseModel): + code: int + msg: str + data: List[EmpItem] +