更新同步 所有库名、表名、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
+12
View File
@@ -0,0 +1,12 @@
show databases;
create database student_manage_system;
use student_manage_system;
show tables;
drop table students;
select * from students limit 50;
+74 -46
View File
@@ -7,52 +7,80 @@ from fastapi import HTTPException
# 查询
def get_student_dao( s , db):
q = db.query(Students).filter(Students.is_deleted == False)
if s.get('sid'):
q = q.filter( Students.sid == s.get("sid") )
if s.get('student_name'):
q = q.filter( Students.student_name == s.get("student_name") )
if s.get('student_phone'):
q = q.filter(Students.student_phone == s.get("student_phone"))
if s.get('class_name'):
q = q.filter(Students.class_name == s.get("class_name") )
if s.get('job_open_time'):
q = q.filter(Students.job_open_time == s.get("job_open_time") )
if s.get('offer_issue_time'):
q = q.filter(Students.offer_issue_time == s.get("offer_issue_time") )
if s.get('company_name'):
q = q.filter(Students.company_name == s.get("company_name") )
if s.get('salary'):
q = q.filter(Students.salary >= s.get("salary") )
if s.get('id'):
q = q.filter( Students.id == s.get("id") )
if s.get('num'):
q = q.filter( Students.num == s.get("num") )
if s.get('name'):
q = q.filter( Students.name == s.get("name") )
if s.get('age'):
q = q.filter( Students.age == s.get("age") )
if s.get('sex'):
q = q.filter( Students.sex == s.get("sex") )
if s.get('home_Place'):
q = q.filter( Students.home_Place == s.get("home_Place") )
if s.get('college'):
q = q.filter( Students.college == s.get("college") )
if s.get('specialty'):
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()
if s1:
return [{ "sid": i.sid
, "student_name": i.student_name
, "student_phone":i.student_phone
, "class_name": i.class_name
, "job_open_time": i.job_open_time
, "offer_issue_time": i.offer_issue_time
, "company_name": i.company_name
, "salary": i.salary
return [{ 'id':i.id
, 'num':i.num
, 'name':i.name
, 'age':i.age
, 'sex':i.sex
, 'home_Place':i.home_Place
, 'college':i.college
, '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
]
# 新增
def add_student_dao( s , db):
try:
phone = s.get("student_phone")
s1_deleted = db.query( Students ).filter( Students.student_phone == phone ).first()
phone = s.get("phone")
s1_deleted = db.query( Students ).filter( Students.phone == phone ).first()
if s1_deleted and s1_deleted.is_deleted == False:
return False
if not phone:
return False
if s1_deleted and s1_deleted.is_deleted == True:
s1_deleted.student_name = s.get("student_name")
s1_deleted.student_phone = s.get("student_phone")
s1_deleted.class_name = s.get("class_name")
s1_deleted.job_open_time = s.get("job_open_time")
s1_deleted.offer_issue_time = s.get("offer_issue_time")
s1_deleted.company_name = s.get("company_name")
s1_deleted.salary = s.get("salary")
s1_deleted.name = s.get("name")
s1_deleted.age = s.get("age")
s1_deleted.sex = s.get("sex")
s1_deleted.home_Place = s.get("home_Place")
s1_deleted.college = s.get("college")
s1_deleted.specialty = s.get("specialty")
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.update_date = datetime.now()
s1_deleted.is_deleted = False
@@ -76,29 +104,29 @@ def update_student_dao( s , db):
try:
phone = s.get("student_phone")
if phone is not None and phone != '':
s1_con = db.query( Students ).filter( Students.student_phone == phone
,Students.sid != s.get("sid")
s1_con = db.query( Students ).filter( Students.phone == phone
,Students.id != s.get("id")
,Students.is_deleted == False ).first()
if s1_con:
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()
if not s1_sid:
if not s1_id:
return False
if s.get("student_name") is not None:
s1_sid.student_name = s.get("student_name")
if s.get("student_phone") is not None:
s1_sid.student_phone = s.get("student_phone")
if s.get("name") is not None:
s1_id.name = s.get("name")
if s.get("phone") is not None:
s1_id.student_phone = s.get("phone")
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:
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:
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:
s1_sid.company_name = s.get("company_name")
s1_id.company_name = s.get("company_name")
if s.get("salary") is not None:
s1_sid.salary = s.get("salary")
s1_id.salary = s.get("salary")
except Exception:
db.rollback()
return False
+4 -4
View File
@@ -4,7 +4,7 @@ import datetime
from students.databases import *
from datetime import datetime
from sqlalchemy.dialects.mysql import DATETIME
from sqlalchemy import Enum
from students.schema.students_request import SexEnum
class Students(Base):
__tablename__ = 'students'
@@ -13,13 +13,13 @@ class Students(Base):
, autoincrement=True
, comment='学生ID,自增主键'
)
num = Column(Integer
num = Column(String(50)
, nullable=False
, unique=True
, comment='学生编号'
)
name = Column(String(20)
name = Column(String(50)
, comment='学生姓名'
, nullable=False )
@@ -27,7 +27,7 @@ class Students(Base):
, comment='年龄'
, nullable=False)
sex = Column(Enum('男','女')
sex = Column(Enum(SexEnum)
, comment='性别'
, nullable=False)
+59 -23
View File
@@ -2,38 +2,74 @@
from pydantic import BaseModel , Field , field_validator
from datetime import datetime
import enum
class SexEnum(enum.Enum):
m = '男'
f = '女'
# 查询
class StudentsQuery(BaseModel):
sid:int | None = None
student_name:str | None = None
student_phone: str | None = None
class_name:str | None = None
job_open_time:datetime | None = None
offer_issue_time:datetime | None = None
company_name:str | None = None
salary:int | None = None
id:int | None = None
num:str | None = None
name:str | None = None
age:int | None = None
sex:SexEnum | None = None
home_Place:str | None = None
college:str | 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):
student_name:str = Field(...,min_length=1)
student_phone:str = Field(...,min_length=11,max_length=11)
class_name:str = Field(...,min_length=1)
job_open_time:datetime | None = None
offer_issue_time:datetime | None = None
company_name:str | None = None
salary:int | None = None
num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
age:int = Field(..., gt=0, lt=200, description='学生年龄')
sex:SexEnum
home_Place:str | None = None
college:str | 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):
sid:int = Field(...,gt=0)
student_name:str | None = None
student_phone: str | None = None
class_name:str | None = None
job_open_time:datetime | None = None
offer_issue_time:datetime | None = None
company_name:str | None = None
salary:int | None = None
id:int = Field(..., gt=0 , description='学生ID' )
num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
age:int = Field(..., gt=0, lt=200, description='学生年龄')
sex:SexEnum | None = None
home_Place:str | None = None
college:str | 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):