From be1edae34c479ef9bf952273ff8df228c0dde074 Mon Sep 17 00:00:00 2001 From: geyuan <2732801331@qq.com> Date: Tue, 22 Sep 2026 19:14:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=91=E7=9B=AE=E8=A1=A8?= =?UTF-8?q?=E7=9A=84id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Teachers/api/tea_api.py | 8 ++++---- Teachers/dao/tea_dao.py | 28 +++++++++++++++++++++++----- Teachers/model/tea_model.py | 4 +++- Teachers/schema/tea_request.py | 22 ++++++++++++++++++---- 4 files changed, 48 insertions(+), 14 deletions(-) diff --git a/Teachers/api/tea_api.py b/Teachers/api/tea_api.py index 8fc7ddc..b9fd3ec 100644 --- a/Teachers/api/tea_api.py +++ b/Teachers/api/tea_api.py @@ -3,19 +3,19 @@ from Teachers.schema import * from Teachers.database import * from Teachers.model.tea_model import * from Teachers.dao.tea_dao import * -from Teachers.schema.tea_request import TeaRequest,NewTeaRequest +from Teachers.schema.tea_request import TeaRequest,NewTeaRequest,NewTeaRequest1 from Teachers.schema.tea_response import TeaResponse tea_api = APIRouter() @tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空') -def add_tea(tea: NewTeaRequest,db=Depends(get_db)): +def add_tea(tea: NewTeaRequest=Depends(),db=Depends(get_db)): r = add_tea_dao(tea.model_dump(),db) if not r: raise HTTPException(status_code=500,detail='添加失败!') return TeaResponse(totals=1,data=tea.model_dump()) @tea_api.get('/tea',response_model=TeaResponse,summary='查询老师',description='任意选择输入的信息数量,不输入则查询全部老师') -def get_tea(t:TeaRequest=Depends(),db=Depends(get_db)): #开启会话窗口 +def get_tea(t:NewTeaRequest1=Depends(),db=Depends(get_db)): #开启会话窗口 r = get_tea_dao(t.model_dump(),db=db) if not r: raise HTTPException(status_code=404,detail='老师不存在') @@ -37,7 +37,7 @@ def update_tea(id:int,tea:NewTeaRequest,db=Depends(get_db)): #根据任意信息删除 @tea_api.delete('/tea',summary='根据任意信息逻辑删除',description='输入任意信息删除') -def delete_other_tea_dao1(t:TeaRequest,db=Depends(get_db)): +def delete_other_tea_dao1(t:TeaRequest=Depends(),db=Depends(get_db)): row1 = delete_other_tea_dao(t.model_dump(exclude_unset=True),db) if not row1: raise HTTPException(status_code=404,detail='没有找到符合条件的老师') diff --git a/Teachers/dao/tea_dao.py b/Teachers/dao/tea_dao.py index df8fdfa..3216e1b 100644 --- a/Teachers/dao/tea_dao.py +++ b/Teachers/dao/tea_dao.py @@ -4,14 +4,27 @@ from datetime import datetime #增加 def add_tea_dao(t,db): try: + not_delete = db.query(Tea).filter(Tea.phone ==t.get('phone'),Tea.is_delete == False).first() + if not_delete: + print('该老师已存在') + raise Exception('老师已存在') + existing = db.query(Tea).filter(Tea.phone == t.get('phone'),Tea.is_delete == True).first() + if existing: + for key,value in t.items(): + if hasattr(existing,key) and value is not None and value != '': + setattr(existing,key,value) + existing.is_delete = False + db.commit() + return '恢复修改成功' t1 = Tea(**t) db.add(t1) - except: - db.rollback() - return False - else: db.commit() return True + except Exception as e: + db.rollback() + print('新增失败原因',e) + return '新增失败' + #更新 def update_tea_dao(id,t, db): @@ -49,9 +62,12 @@ def get_tea_dao(t,db): query = query.filter(Tea.education == t.get('education') ) if t.get('collage'): query = query.filter(Tea.collage == t.get('collage') ) + if t.get('phone'): + query = query.filter(Tea.phone == t.get('phone') ) r = query.all() return [{'id':i.id,'name':i.name,'class_id':i.class_id,'sub':i.sub,'sex':i.sex,'home_place':i.home_place - ,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience,'collage':i.collage} for i in r] + ,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience + ,'collage':i.collage,'phone':i.phone} for i in r] #删除 def delete_tea_dao(id,db): @@ -94,6 +110,8 @@ def delete_other_tea_dao(t,db): query1 = query1.filter(Tea.start_time == t.get('start_time')) if t.get('specialty'): query1 = query1.filter(Tea.specialty == t.get('specialty')) + if t.get('phone'): + query1 = query1.filter(Tea.phone == t.get('phone')) row = query1.update({'is_delete':True,'delete_time':datetime.now()}) db.commit() return row diff --git a/Teachers/model/tea_model.py b/Teachers/model/tea_model.py index a5ef706..24df8bd 100644 --- a/Teachers/model/tea_model.py +++ b/Teachers/model/tea_model.py @@ -23,7 +23,9 @@ class Tea(Base): class_id = Column(Integer ,nullable=False ,comment='班级id') - sub = Column(String(50) + phone = Column(String(50)) + subject_id = Column(Integer + , ForeignKey('subject.id') ,nullable=False ,comment='教学科目') home_place = Column(String(50) diff --git a/Teachers/schema/tea_request.py b/Teachers/schema/tea_request.py index f5a275a..675eb09 100644 --- a/Teachers/schema/tea_request.py +++ b/Teachers/schema/tea_request.py @@ -1,31 +1,45 @@ from pydantic import BaseModel from Teachers.model.tea_model import * -#查询使用请求体 +#查询使用请求体,都可以为空 class TeaRequest(BaseModel): id: int|None = None name: str|None = None sex: Gender|None = None class_id: int | None = None sub: str|None = None + phone: str|None = None home_place: str|None = None collage: str|None = None education: str|None = None work_experience: str|None = None - start_time: str|None = None + start_time: datetime|None = None specialty: str|None = None -#更新、任意逻辑删除、新增使用请求体,没有自增键 +#更新、任意逻辑删除、新增使用请求体,没有自增键,电话号码不能为空 class NewTeaRequest(BaseModel): name: str | None = None - sex: Gender + sex: Gender|None = None class_id: int | None = None sub: str | None = None home_place: str | None = None + phone: str collage: str | None = None education: str | None = None work_experience: str | None = None start_time: datetime | None = None specialty: str | None = None +class NewTeaRequest1(BaseModel): + name: str | None = None + sex: Gender|None = None + class_id: int | None = None + sub: str | None = None + home_place: str | None = None + phone: str|None = None + collage: str | None = None + education: str | None = None + work_experience: str | None = None + start_time: datetime | None = None + specialty: str | None = None