更新同步 所有库名、表名、model字段名 等,导致需要同步修改业务代码,现更新到update的request、api和dao了,暂存。
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user