更新同步 所有库名、表名、model字段名 等,导致需要同步修改业务代码,现更新到update的request、api和dao了,暂存。

This commit is contained in:
Orangeeee
2026-09-21 23:11:45 +08:00
parent 1f87616004
commit fe7c95fa78
5 changed files with 138 additions and 74 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
import uvicorn import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=52000) uvicorn.run("main:app", host="0.0.0.0", port=51000)
"""students api """students api
IPv4 地址 . . . . . . . . . . . . : 192.168.6.40 IPv4 地址 . . . . . . . . . . . . : 192.168.6.40
+74 -46
View File
@@ -7,52 +7,80 @@ from fastapi import HTTPException
# 查询 # 查询
def get_student_dao( s , db): def get_student_dao( s , db):
q = db.query(Students).filter(Students.is_deleted == False) q = db.query(Students).filter(Students.is_deleted == False)
if s.get('sid'): if s.get('id'):
q = q.filter( Students.sid == s.get("sid") ) q = q.filter( Students.id == s.get("id") )
if s.get('student_name'): if s.get('num'):
q = q.filter( Students.student_name == s.get("student_name") ) q = q.filter( Students.num == s.get("num") )
if s.get('student_phone'): if s.get('name'):
q = q.filter(Students.student_phone == s.get("student_phone")) q = q.filter( Students.name == s.get("name") )
if s.get('class_name'): if s.get('age'):
q = q.filter(Students.class_name == s.get("class_name") ) q = q.filter( Students.age == s.get("age") )
if s.get('job_open_time'): if s.get('sex'):
q = q.filter(Students.job_open_time == s.get("job_open_time") ) q = q.filter( Students.sex == s.get("sex") )
if s.get('offer_issue_time'): if s.get('home_Place'):
q = q.filter(Students.offer_issue_time == s.get("offer_issue_time") ) q = q.filter( Students.home_Place == s.get("home_Place") )
if s.get('company_name'): if s.get('college'):
q = q.filter(Students.company_name == s.get("company_name") ) q = q.filter( Students.college == s.get("college") )
if s.get('salary'): if s.get('specialty'):
q = q.filter(Students.salary >= s.get("salary") ) q = q.filter( Students.specialty == s.get("specialty") )
if s.get('enrollment_time'):
q = q.filter( Students.enrollment_time == s.get("enrollment_time") )
if s.get('graduate_time'):
q = q.filter( Students.graduate_time == s.get("graduate_time") )
if s.get('education'):
q = q.filter( Students.education == s.get("education") )
if s.get('class_id'):
q = q.filter(Students.class_id == s.get("class_id") )
if s.get('adnisor_id'):
q = q.filter(Students.adnisor_id == s.get("adnisor_id") )
if s.get('phone'):
q = q.filter(Students.phone == s.get("phone"))
s1 = q.all() s1 = q.all()
if s1: if s1:
return [{ "sid": i.sid return [{ 'id':i.id
, "student_name": i.student_name , 'num':i.num
, "student_phone":i.student_phone , 'name':i.name
, "class_name": i.class_name , 'age':i.age
, "job_open_time": i.job_open_time , 'sex':i.sex
, "offer_issue_time": i.offer_issue_time , 'home_Place':i.home_Place
, "company_name": i.company_name , 'college':i.college
, "salary": i.salary , 'specialty':i.specialty
, 'enrollment_time':i.enrollment_time
, 'graduate_time':i.graduate_time
, 'education':i.education
# 外键字段
, 'class_id':i.class_id
, 'adnisor_id':i.adnisor_id
# 额外字段
, 'phone':i.phone
} for i in s1 } for i in s1
] ]
# 新增 # 新增
def add_student_dao( s , db): def add_student_dao( s , db):
try: try:
phone = s.get("student_phone") phone = s.get("phone")
s1_deleted = db.query( Students ).filter( Students.student_phone == phone ).first() s1_deleted = db.query( Students ).filter( Students.phone == phone ).first()
if s1_deleted and s1_deleted.is_deleted == False: if s1_deleted and s1_deleted.is_deleted == False:
return False return False
if not phone: if not phone:
return False return False
if s1_deleted and s1_deleted.is_deleted == True: if s1_deleted and s1_deleted.is_deleted == True:
s1_deleted.student_name = s.get("student_name") s1_deleted.name = s.get("name")
s1_deleted.student_phone = s.get("student_phone") s1_deleted.age = s.get("age")
s1_deleted.class_name = s.get("class_name") s1_deleted.sex = s.get("sex")
s1_deleted.job_open_time = s.get("job_open_time") s1_deleted.home_Place = s.get("home_Place")
s1_deleted.offer_issue_time = s.get("offer_issue_time") s1_deleted.college = s.get("college")
s1_deleted.company_name = s.get("company_name") s1_deleted.specialty = s.get("specialty")
s1_deleted.salary = s.get("salary") s1_deleted.enrollment_time = s.get("enrollment_time")
s1_deleted.graduate_time = s.get("graduate_time")
s1_deleted.education = s.get("education")
# 外键字段
s1_deleted.class_id = s.get("class_id")
s1_deleted.adnisor_id = s.get("adnisor_id")
# 额外字段
s1_deleted.phone = s.get("phone")
s1_deleted.create_date = datetime.now() s1_deleted.create_date = datetime.now()
s1_deleted.update_date = datetime.now() s1_deleted.update_date = datetime.now()
s1_deleted.is_deleted = False s1_deleted.is_deleted = False
@@ -76,29 +104,29 @@ def update_student_dao( s , db):
try: try:
phone = s.get("student_phone") phone = s.get("student_phone")
if phone is not None and phone != '': if phone is not None and phone != '':
s1_con = db.query( Students ).filter( Students.student_phone == phone s1_con = db.query( Students ).filter( Students.phone == phone
,Students.sid != s.get("sid") ,Students.id != s.get("id")
,Students.is_deleted == False ).first() ,Students.is_deleted == False ).first()
if s1_con: if s1_con:
return False return False
s1_sid = db.query( Students ).filter( Students.sid == s.get("sid") s1_id = db.query( Students ).filter( Students.id == s.get("id")
,Students.is_deleted == False ).first() ,Students.is_deleted == False ).first()
if not s1_sid: if not s1_id:
return False return False
if s.get("student_name") is not None: if s.get("name") is not None:
s1_sid.student_name = s.get("student_name") s1_id.name = s.get("name")
if s.get("student_phone") is not None: if s.get("phone") is not None:
s1_sid.student_phone = s.get("student_phone") s1_id.student_phone = s.get("phone")
if s.get("class_name") is not None: if s.get("class_name") is not None:
s1_sid.class_name = s.get("class_name") s1_id.class_name = s.get("class_name")
if s.get("job_open_time") is not None: if s.get("job_open_time") is not None:
s1_sid.job_open_time = s.get("job_open_time") s1_id.job_open_time = s.get("job_open_time")
if s.get("offer_issue_time") is not None: if s.get("offer_issue_time") is not None:
s1_sid.offer_issue_time = s.get("offer_issue_time") s1_id.offer_issue_time = s.get("offer_issue_time")
if s.get("company_name") is not None: if s.get("company_name") is not None:
s1_sid.company_name = s.get("company_name") s1_id.company_name = s.get("company_name")
if s.get("salary") is not None: if s.get("salary") is not None:
s1_sid.salary = s.get("salary") s1_id.salary = s.get("salary")
except Exception: except Exception:
db.rollback() db.rollback()
return False return False
+4 -4
View File
@@ -4,7 +4,7 @@ import datetime
from students.databases import * from students.databases import *
from datetime import datetime from datetime import datetime
from sqlalchemy.dialects.mysql import DATETIME from sqlalchemy.dialects.mysql import DATETIME
from sqlalchemy import Enum from students.schema.students_request import SexEnum
class Students(Base): class Students(Base):
__tablename__ = 'students' __tablename__ = 'students'
@@ -13,13 +13,13 @@ class Students(Base):
, autoincrement=True , autoincrement=True
, comment='学生ID,自增主键' , comment='学生ID,自增主键'
) )
num = Column(Integer num = Column(String(50)
, nullable=False , nullable=False
, unique=True , unique=True
, comment='学生编号' , comment='学生编号'
) )
name = Column(String(20) name = Column(String(50)
, comment='学生姓名' , comment='学生姓名'
, nullable=False ) , nullable=False )
@@ -27,7 +27,7 @@ class Students(Base):
, comment='年龄' , comment='年龄'
, nullable=False) , nullable=False)
sex = Column(Enum('男','女') sex = Column(Enum(SexEnum)
, comment='性别' , comment='性别'
, nullable=False) , nullable=False)
+59 -23
View File
@@ -2,38 +2,74 @@
from pydantic import BaseModel , Field , field_validator from pydantic import BaseModel , Field , field_validator
from datetime import datetime from datetime import datetime
import enum
class SexEnum(enum.Enum):
m = '男'
f = '女'
# 查询 # 查询
class StudentsQuery(BaseModel): class StudentsQuery(BaseModel):
sid:int | None = None id:int | None = None
student_name:str | None = None num:str | None = None
student_phone: str | None = None name:str | None = None
class_name:str | None = None age:int | None = None
job_open_time:datetime | None = None sex:SexEnum | None = None
offer_issue_time:datetime | None = None home_Place:str | None = None
company_name:str | None = None college:str | None = None
salary:int | None = None specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:str | None = None
# 外键字段
class_id:int | None = None
adnisor_id:int | None = None
# 额外字段
phone:str | None = None
class EducationEnum(enum.Enum):
zhuanke = '专科'
benke = '本科'
shuoshi = '硕士'
boshi = '博士'
# 新建 # 新建
class StudentsResponse(BaseModel): class StudentsResponse(BaseModel):
student_name:str = Field(...,min_length=1) num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
student_phone:str = Field(...,min_length=11,max_length=11) name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
class_name:str = Field(...,min_length=1) age:int = Field(..., gt=0, lt=200, description='学生年龄')
job_open_time:datetime | None = None sex:SexEnum
offer_issue_time:datetime | None = None home_Place:str | None = None
company_name:str | None = None college:str | None = None
salary:int | None = None specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:EducationEnum
# 外键字段
class_id:int = Field(..., gt=0, description='班级ID')
adnisor_id:int | None = None
# 额外字段
phone:str = Field(...,min_length=11,max_length=11,description='学生手机号')
# 更新 # 更新
class StudentsUpdate(BaseModel): class StudentsUpdate(BaseModel):
sid:int = Field(...,gt=0) id:int = Field(..., gt=0 , description='学生ID' )
student_name:str | None = None num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
student_phone: str | None = None name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
class_name:str | None = None age:int = Field(..., gt=0, lt=200, description='学生年龄')
job_open_time:datetime | None = None sex:SexEnum | None = None
offer_issue_time:datetime | None = None home_Place:str | None = None
company_name:str | None = None college:str | None = None
salary:int | None = None specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:str | None = None
# 外键字段
class_id:int = Field(..., gt=0, description='班级ID')
adnisor_id:int | None = None
# 额外字段
phone:str = Field(...,min_length=11,max_length=11,description='学生手机号')
# 删除 # 删除
class StudentsDelete(BaseModel): class StudentsDelete(BaseModel):