From 1b9e5b8a57600ec391681405d20bdcd884abaad4 Mon Sep 17 00:00:00 2001 From: chen <2966418553@qq.com> Date: Mon, 21 Sep 2026 14:54:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=88=90=E7=BB=A9=E5=BB=BA=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scores/api/score_api.py | 41 ++++++++++++++++++++++++++ scores/dao/score_dao.py | 53 ++++++++++++++++++++++++++++++++++ scores/database.py | 15 ++++++++++ scores/main.py | 12 ++++++++ scores/model/score_model.py | 29 +++++++++++++++++++ scores/schema/score_request.py | 12 ++++++++ 6 files changed, 162 insertions(+) create mode 100644 scores/api/score_api.py create mode 100644 scores/dao/score_dao.py create mode 100644 scores/database.py create mode 100644 scores/main.py create mode 100644 scores/model/score_model.py create mode 100644 scores/schema/score_request.py diff --git a/scores/api/score_api.py b/scores/api/score_api.py new file mode 100644 index 0000000..fd71ddd --- /dev/null +++ b/scores/api/score_api.py @@ -0,0 +1,41 @@ +from fastapi import APIRouter, Depends,HTTPException +from scores.database import get_db +from scores.dao.score_dao import get_scores_dao,add_scores_dao,update_scores_dao,delete_scores_dao +from scores.model.score_model import Score +from scores.schema.score_request import ScoreRequest, ScoreResponse + + +score_api = APIRouter() + + +@score_api.get('/Score') +def get_scores(cid:int,score,subject:str,abc=Depends(get_db)): + aa = get_scores_dao(cid,score,subject,abc) + if aa: + return aa + raise HTTPException(status_code=404,detail='不存在') + +@score_api.post('/Score',response_model=ScoreResponse) +def add_scores(score:ScoreRequest,db=Depends(get_db)): + a = score.model_dump() + aa = add_scores_dao(b=a,db=db) + if not aa: + raise HTTPException(status_code=500,detail='没有') + return ScoreResponse(data=a) + +@score_api.put('/Score,{cid}') +def get_scores(score:ScoreRequest,cid:int,db=Depends(get_db)): + a = score.model_dump(exclude_unset=True) + aa = update_scores_dao(cid = cid,update_date=a,db=db) + if not aa: + raise HTTPException(status_code=500,detail='没有更新') + return {'code':200,'totals':a,'detail':'更新成功'} + +@score_api.delete('/Score,{cid}') +def get_scores(cid:int,db=Depends(get_db)): + aaa = delete_scores_dao(cid,db) + if not aaa: + raise HTTPException(status_code=500,detail='没有删除') + return {'code':200,'totals':aaa,'detail':'更新成功'} + + diff --git a/scores/dao/score_dao.py b/scores/dao/score_dao.py new file mode 100644 index 0000000..73212bc --- /dev/null +++ b/scores/dao/score_dao.py @@ -0,0 +1,53 @@ +from scores.model.score_model import Score + +def get_scores_dao(cid,score,subject,db): + ab = db.query(Score) + if cid: + ab = ab.filter(Score.cid==cid) + if score: + ab = ab.filter(Score.score==score) + if subject: + ab = ab.filter(Score.subject==subject) + aa = ab.all() + if aa: + return [{'Score_cid':i.cid,'Score_score':i.cscore + ,'Score_subject':i.subject,'reate_date':i.create_date + ,'update_date':i.update_date}for i in aa] + +def add_scores_dao(b,db): + try: + aa = db.query(Score).filter(Score.cid==b['cid']).all() + if aa: + z = Score(**b) + db.add(z) + else: + raise ValueError + except: + db.rollback() + return False + else: + db.commit() + return True + +def update_scores_dao(cid,update_date,db): + try: + aa = db.query(Score).filter(Score.cid ==cid).update(update_date) + except: + db.rollback() + return False + else: + db.commit() + return aa + +def delete_scores_dao(cid,db): + try: + aaa = db.query(Score).filter(Score.cid ==cid).delete() + except: + db.rollback() + aaa = 0 + else: + db.commit() + finally: + return aaa + + diff --git a/scores/database.py b/scores/database.py new file mode 100644 index 0000000..f50aec9 --- /dev/null +++ b/scores/database.py @@ -0,0 +1,15 @@ +from sqlalchemy import * +from sqlalchemy.orm import declarative_base,sessionmaker + +db_url='mysql+pymysql://root:123456@127.0.0.1:3306/a0824?charset=utf8mb4' +engine = create_engine(db_url) + +Base = declarative_base() +Session = sessionmaker(bind=engine, autoflush = False, autocommit = False) + +def get_db(): + db = Session() + try: + yield db + finally: + db.close() \ No newline at end of file diff --git a/scores/main.py b/scores/main.py new file mode 100644 index 0000000..ee674a9 --- /dev/null +++ b/scores/main.py @@ -0,0 +1,12 @@ +from fastapi import FastAPI +from scores.api.score_api import score_api +from scores.database import * +app = FastAPI() + +app.include_router(score_api) + +Base.metadata.create_all(engine) + +if __name__ == '__main__': + import uvicorn + uvicorn.run('main:app',host='127.0.0.1',port=12346) \ No newline at end of file diff --git a/scores/model/score_model.py b/scores/model/score_model.py new file mode 100644 index 0000000..5a38e60 --- /dev/null +++ b/scores/model/score_model.py @@ -0,0 +1,29 @@ +from scores.database import Base +from datetime import datetime +from sqlalchemy import DateTime,Column,Integer,String,Float +class Score(Base): + __tablename__='score' + cid = Column(Integer + ,primary_key = True + ,autoincrement = True + ,comment ='考试序次' + ) + score = Column(Float,nullable = False) + subject = Column(String(100) + ,nullable = False + ) + create_date = Column(DateTime + ,default = datetime.now + ) + update_date = Column(DateTime + ,default = datetime.now + ,onupdate = datetime.now + ) + is_deleted = Column(Integer + ,default = 0 + ,comment='是否删除: 0-正常,1-已删除' + ) + deleted_date=Column(DateTime + ,default=datetime.now + ,comment='删除时间' + ) diff --git a/scores/schema/score_request.py b/scores/schema/score_request.py new file mode 100644 index 0000000..f924b8d --- /dev/null +++ b/scores/schema/score_request.py @@ -0,0 +1,12 @@ +from pydantic import BaseModel + +class ScoreRequest(BaseModel): + cid:int + cscore:float + subject:str + +class ScoreResponse(BaseModel): + code:int = 200 + detail:str = 'OK' + totals:int = 0 + data:str|dict|tuple|list \ No newline at end of file From 6e526d9f6ba9ba43f31971d792ee23afbc42f820 Mon Sep 17 00:00:00 2001 From: chen <2966418553@qq.com> Date: Mon, 21 Sep 2026 16:30:07 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=88=90=E7=BB=A9=E5=BB=BA=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scores/model/score_model.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scores/model/score_model.py b/scores/model/score_model.py index 5a38e60..253b5e6 100644 --- a/scores/model/score_model.py +++ b/scores/model/score_model.py @@ -6,9 +6,13 @@ class Score(Base): cid = Column(Integer ,primary_key = True ,autoincrement = True - ,comment ='考试序次' + ,comment ='编号' ) - score = Column(Float,nullable = False) + score_num = Column(Integer + ,primary_key = True + ,comment ='考试序次' + ) + score = Column(Integer,nullable = False) subject = Column(String(100) ,nullable = False ) From e88306a555a71574f2f0d9861e0e3538ffcc6e4f Mon Sep 17 00:00:00 2001 From: chen <2966418553@qq.com> Date: Mon, 21 Sep 2026 19:36:17 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=88=90=E7=BB=A9=E5=BB=BA=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scores/api/score_api.py | 34 +++++++++++++++---------------- scores/dao/score_dao.py | 37 +++++++++++++++++----------------- scores/model/score_model.py | 16 +++++++++------ scores/schema/score_request.py | 15 ++++++++++++-- 4 files changed, 59 insertions(+), 43 deletions(-) diff --git a/scores/api/score_api.py b/scores/api/score_api.py index fd71ddd..b87cd6a 100644 --- a/scores/api/score_api.py +++ b/scores/api/score_api.py @@ -4,36 +4,36 @@ from scores.dao.score_dao import get_scores_dao,add_scores_dao,update_scores_dao from scores.model.score_model import Score from scores.schema.score_request import ScoreRequest, ScoreResponse - score_api = APIRouter() - @score_api.get('/Score') -def get_scores(cid:int,score,subject:str,abc=Depends(get_db)): - aa = get_scores_dao(cid,score,subject,abc) +def get_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): + a = score.model_dump() + aa = get_scores_dao(s=a,db=db) if aa: return aa raise HTTPException(status_code=404,detail='不存在') @score_api.post('/Score',response_model=ScoreResponse) -def add_scores(score:ScoreRequest,db=Depends(get_db)): +def add_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): a = score.model_dump() + # print(a,type(a)) aa = add_scores_dao(b=a,db=db) - if not aa: - raise HTTPException(status_code=500,detail='没有') - return ScoreResponse(data=a) + if aa: + return ScoreResponse(data=a) + raise HTTPException(status_code=500,detail='没有') -@score_api.put('/Score,{cid}') -def get_scores(score:ScoreRequest,cid:int,db=Depends(get_db)): - a = score.model_dump(exclude_unset=True) - aa = update_scores_dao(cid = cid,update_date=a,db=db) +@score_api.put('/Score') +def update_scores(score:ScoreRequest,student_id:int,class_id:int,db=Depends(get_db)): + a = score.model_dump() + aa = update_scores_dao(student_id = student_id,class_id = class_id,update_date=a,db=db) if not aa: - raise HTTPException(status_code=500,detail='没有更新') - return {'code':200,'totals':a,'detail':'更新成功'} + raise HTTPException(status_code=404,detail='没有更新') + return {'message':'更新成功','data':a} -@score_api.delete('/Score,{cid}') -def get_scores(cid:int,db=Depends(get_db)): - aaa = delete_scores_dao(cid,db) +@score_api.delete('/Score') +def get_scores(student_id:int,class_id:int,db=Depends(get_db)): + aaa = delete_scores_dao(student_id,class_id,db) if not aaa: raise HTTPException(status_code=500,detail='没有删除') return {'code':200,'totals':aaa,'detail':'更新成功'} diff --git a/scores/dao/score_dao.py b/scores/dao/score_dao.py index 73212bc..937c993 100644 --- a/scores/dao/score_dao.py +++ b/scores/dao/score_dao.py @@ -1,37 +1,38 @@ from scores.model.score_model import Score -def get_scores_dao(cid,score,subject,db): +def get_scores_dao(s,db): ab = db.query(Score) - if cid: - ab = ab.filter(Score.cid==cid) - if score: - ab = ab.filter(Score.score==score) - if subject: - ab = ab.filter(Score.subject==subject) + if s.get('score_id'): + ab = ab.filter(Score.score_id==s.get('score_id')) aa = ab.all() if aa: - return [{'Score_cid':i.cid,'Score_score':i.cscore - ,'Score_subject':i.subject,'reate_date':i.create_date - ,'update_date':i.update_date}for i in aa] + return [{'Score.score_id':i.score_id,'Score.student_id':i.student_id + ,'Score.class_id':i.class_id,'Score.score_num':i.score_num + ,'Score.score': i.score,'Score.subject':i.subject + ,'Score.create_date':i.create_date,'Score.update_date':i.update_date + ,'Score.is_deleted': i.is_deleted,'Score.deleted_date': i.deleted_date + }for i in aa] def add_scores_dao(b,db): try: - aa = db.query(Score).filter(Score.cid==b['cid']).all() + aa = db.query(Score).filter(Score.student_id==b['student_id'] + ,Score.subject==b['subject']).all() if aa: + raise ValueError + else: z = Score(**b) db.add(z) - else: - raise ValueError - except: + except Exception as e: db.rollback() + print(e) return False else: db.commit() return True -def update_scores_dao(cid,update_date,db): +def update_scores_dao(student_id:int,class_id:int,update_date,db): try: - aa = db.query(Score).filter(Score.cid ==cid).update(update_date) + aa = db.query(Score).filter(Score.student_id == student_id , Score.class_id == class_id,update_date=a).update() except: db.rollback() return False @@ -39,9 +40,9 @@ def update_scores_dao(cid,update_date,db): db.commit() return aa -def delete_scores_dao(cid,db): +def delete_scores_dao(student_id,class_id,db): try: - aaa = db.query(Score).filter(Score.cid ==cid).delete() + aaa = db.query(Score).filter(Score.student_id ==student_id,class_id = class_id).delete() except: db.rollback() aaa = 0 diff --git a/scores/model/score_model.py b/scores/model/score_model.py index 253b5e6..006215a 100644 --- a/scores/model/score_model.py +++ b/scores/model/score_model.py @@ -3,15 +3,20 @@ from datetime import datetime from sqlalchemy import DateTime,Column,Integer,String,Float class Score(Base): __tablename__='score' - cid = Column(Integer + score_id = Column(Integer ,primary_key = True ,autoincrement = True ,comment ='编号' ) + student_id = Column(Integer + ,comment ='学生ID' + ) + class_id = Column(Integer + ,comment ='班级ID' + ) score_num = Column(Integer - ,primary_key = True ,comment ='考试序次' - ) + ) score = Column(Integer,nullable = False) subject = Column(String(100) ,nullable = False @@ -21,13 +26,12 @@ class Score(Base): ) update_date = Column(DateTime ,default = datetime.now - ,onupdate = datetime.now - ) + ) is_deleted = Column(Integer ,default = 0 ,comment='是否删除: 0-正常,1-已删除' ) deleted_date=Column(DateTime - ,default=datetime.now + ,default=None ,comment='删除时间' ) diff --git a/scores/schema/score_request.py b/scores/schema/score_request.py index f924b8d..6d21f5b 100644 --- a/scores/schema/score_request.py +++ b/scores/schema/score_request.py @@ -1,10 +1,21 @@ from pydantic import BaseModel class ScoreRequest(BaseModel): - cid:int - cscore:float + score_id:int + student_id:int + class_id:int + score_num:int + score:int subject:str +class ScoreQuery(BaseModel): + score_id:int|None = None + student_id:int|None = None + class_id:int|None = None + score_num:int|None = None + score:int|None = None + subject:str|None = None + class ScoreResponse(BaseModel): code:int = 200 detail:str = 'OK' From 7cdad9a9fe9eaf1739baae1ac5fb574e1a61f3a5 Mon Sep 17 00:00:00 2001 From: chen <2966418553@qq.com> Date: Mon, 21 Sep 2026 21:56:16 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=88=90=E7=BB=A9=E5=BB=BA=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scores/api/score_api.py | 8 +++---- scores/dao/score_dao.py | 40 ++++++++++++++++++++++------------ scores/database.py | 2 +- scores/model/score_model.py | 12 +++++----- scores/schema/score_request.py | 20 ++++++++--------- 5 files changed, 47 insertions(+), 35 deletions(-) diff --git a/scores/api/score_api.py b/scores/api/score_api.py index b87cd6a..eb9b266 100644 --- a/scores/api/score_api.py +++ b/scores/api/score_api.py @@ -2,12 +2,12 @@ from fastapi import APIRouter, Depends,HTTPException from scores.database import get_db from scores.dao.score_dao import get_scores_dao,add_scores_dao,update_scores_dao,delete_scores_dao from scores.model.score_model import Score -from scores.schema.score_request import ScoreRequest, ScoreResponse +from scores.schema.score_request import ScoreRequest, ScoreResponse,ScoreQuery score_api = APIRouter() @score_api.get('/Score') -def get_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): +def get_scores(score:ScoreQuery=Depends(),db=Depends(get_db)): a = score.model_dump() aa = get_scores_dao(s=a,db=db) if aa: @@ -24,9 +24,9 @@ def add_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): raise HTTPException(status_code=500,detail='没有') @score_api.put('/Score') -def update_scores(score:ScoreRequest,student_id:int,class_id:int,db=Depends(get_db)): +def update_scores(score:ScoreRequest,sid:int,cid:int,db=Depends(get_db)): a = score.model_dump() - aa = update_scores_dao(student_id = student_id,class_id = class_id,update_date=a,db=db) + aa = update_scores_dao(sid = sid,cid = cid,update_date = a,db=db) if not aa: raise HTTPException(status_code=404,detail='没有更新') return {'message':'更新成功','data':a} diff --git a/scores/dao/score_dao.py b/scores/dao/score_dao.py index 937c993..4899123 100644 --- a/scores/dao/score_dao.py +++ b/scores/dao/score_dao.py @@ -1,22 +1,34 @@ from scores.model.score_model import Score def get_scores_dao(s,db): - ab = db.query(Score) - if s.get('score_id'): - ab = ab.filter(Score.score_id==s.get('score_id')) + ab = db.query(Score).filter(Score.is_deleted ==0) + if s.get('id'): + ab = ab.filter(Score.id==s.get('id')) + if s.get('sid'): + ab = ab.filter(Score.sid==s.get('sid')) + if s.get('cid'): + ab = ab.filter(Score.cid==s.get('cid')) + if s.get('num'): + ab = ab.filter(Score.num==s.get('num')) + if s.get('score'): + ab = ab.filter(Score.score==s.get('score')) + if s.get('tsub'): + ab = ab.filter(Score.tsub==s.get('tsub')) aa = ab.all() if aa: - return [{'Score.score_id':i.score_id,'Score.student_id':i.student_id - ,'Score.class_id':i.class_id,'Score.score_num':i.score_num - ,'Score.score': i.score,'Score.subject':i.subject - ,'Score.create_date':i.create_date,'Score.update_date':i.update_date - ,'Score.is_deleted': i.is_deleted,'Score.deleted_date': i.deleted_date + return [{'id':i.id,'sid':i.sid + ,'cid':i.cid,'num':i.num + ,'score': i.score,'tsub':i.tsub + ,'create_date':i.create_date,'update_date':i.update_date + ,'is_deleted': i.is_deleted,'deleted_date': i.deleted_date }for i in aa] + else: + return [] def add_scores_dao(b,db): try: - aa = db.query(Score).filter(Score.student_id==b['student_id'] - ,Score.subject==b['subject']).all() + aa = db.query(Score).filter(Score.sid==b['sid'] + ,Score.tsub==b['tsub']).all() if aa: raise ValueError else: @@ -30,9 +42,9 @@ def add_scores_dao(b,db): db.commit() return True -def update_scores_dao(student_id:int,class_id:int,update_date,db): +def update_scores_dao(sid:int,cid:int,db): try: - aa = db.query(Score).filter(Score.student_id == student_id , Score.class_id == class_id,update_date=a).update() + aa = db.query(Score).filter(Score.sid == sid , Score.cid == cid,update_date=a).update() except: db.rollback() return False @@ -40,9 +52,9 @@ def update_scores_dao(student_id:int,class_id:int,update_date,db): db.commit() return aa -def delete_scores_dao(student_id,class_id,db): +def delete_scores_dao(sid,cid,db): try: - aaa = db.query(Score).filter(Score.student_id ==student_id,class_id = class_id).delete() + aaa = db.query(Score).filter(Score.sid ==sid,cid = cid).delete() except: db.rollback() aaa = 0 diff --git a/scores/database.py b/scores/database.py index f50aec9..a88f8d9 100644 --- a/scores/database.py +++ b/scores/database.py @@ -1,7 +1,7 @@ from sqlalchemy import * from sqlalchemy.orm import declarative_base,sessionmaker -db_url='mysql+pymysql://root:123456@127.0.0.1:3306/a0824?charset=utf8mb4' +db_url='mysql+pymysql://root:123456@127.0.0.1:3306/student_manage_system?charset=utf8mb4' engine = create_engine(db_url) Base = declarative_base() diff --git a/scores/model/score_model.py b/scores/model/score_model.py index 006215a..e40eba4 100644 --- a/scores/model/score_model.py +++ b/scores/model/score_model.py @@ -2,23 +2,23 @@ from scores.database import Base from datetime import datetime from sqlalchemy import DateTime,Column,Integer,String,Float class Score(Base): - __tablename__='score' - score_id = Column(Integer + __tablename__='scores' + id = Column(Integer ,primary_key = True ,autoincrement = True ,comment ='编号' ) - student_id = Column(Integer + sid = Column(Integer ,comment ='学生ID' ) - class_id = Column(Integer + cid = Column(Integer ,comment ='班级ID' ) - score_num = Column(Integer + num = Column(Integer ,comment ='考试序次' ) score = Column(Integer,nullable = False) - subject = Column(String(100) + tsub = Column(String(100) ,nullable = False ) create_date = Column(DateTime diff --git a/scores/schema/score_request.py b/scores/schema/score_request.py index 6d21f5b..a92e9ce 100644 --- a/scores/schema/score_request.py +++ b/scores/schema/score_request.py @@ -1,20 +1,20 @@ from pydantic import BaseModel class ScoreRequest(BaseModel): - score_id:int - student_id:int - class_id:int - score_num:int + # id:int + cid:int + sid:int + num:int score:int - subject:str + tsub:str class ScoreQuery(BaseModel): - score_id:int|None = None - student_id:int|None = None - class_id:int|None = None - score_num:int|None = None + id:int|None = None + sid:int|None = None + cid:int|None = None + num:int|None = None score:int|None = None - subject:str|None = None + tsub:str|None = None class ScoreResponse(BaseModel): code:int = 200 From ed151b55ae33012a785b2abb5625b38581b52ab6 Mon Sep 17 00:00:00 2001 From: chen <2966418553@qq.com> Date: Tue, 22 Sep 2026 10:26:25 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E8=BF=98=E5=9C=A8=E8=B0=83=E8=AF=95=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scores/api/score_api.py | 14 +++++++------- scores/dao/score_dao.py | 14 ++++++++++---- scores/schema/score_request.py | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/scores/api/score_api.py b/scores/api/score_api.py index eb9b266..ce8177a 100644 --- a/scores/api/score_api.py +++ b/scores/api/score_api.py @@ -24,18 +24,18 @@ def add_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): raise HTTPException(status_code=500,detail='没有') @score_api.put('/Score') -def update_scores(score:ScoreRequest,sid:int,cid:int,db=Depends(get_db)): - a = score.model_dump() - aa = update_scores_dao(sid = sid,cid = cid,update_date = a,db=db) +def update_scores(score:ScoreRequest,sid:int,cid:int,num:int,tsub:str,db=Depends(get_db)): + a = score.model_dump(exclude_unset=True,exclude={'id','sid','cid','num','tsub'}) + aa = update_scores_dao(sid = sid,cid = cid,num = num,tsub = tsub,update_data = a,db=db) if not aa: raise HTTPException(status_code=404,detail='没有更新') return {'message':'更新成功','data':a} @score_api.delete('/Score') -def get_scores(student_id:int,class_id:int,db=Depends(get_db)): - aaa = delete_scores_dao(student_id,class_id,db) +def delete_scores(sid:int,cid:int,tsub:str,db=Depends(get_db)): + aaa = delete_scores_dao(sid,cid,tsub,db) if not aaa: - raise HTTPException(status_code=500,detail='没有删除') - return {'code':200,'totals':aaa,'detail':'更新成功'} + raise HTTPException(status_code=404,detail='记录不存在') + return {'message':'更新成功','detail':aaa} diff --git a/scores/dao/score_dao.py b/scores/dao/score_dao.py index 4899123..61926a9 100644 --- a/scores/dao/score_dao.py +++ b/scores/dao/score_dao.py @@ -42,9 +42,12 @@ def add_scores_dao(b,db): db.commit() return True -def update_scores_dao(sid:int,cid:int,db): +def update_scores_dao(sid:int,cid:int,num:int,tsub:str,update_data:dict,db): try: - aa = db.query(Score).filter(Score.sid == sid , Score.cid == cid,update_date=a).update() + aa = db.query(Score).filter(Score.sid == sid + ,Score.cid == cid + ,Score.num == num + ,Score.tsub == tsub ).update(update_data) except: db.rollback() return False @@ -52,9 +55,12 @@ def update_scores_dao(sid:int,cid:int,db): db.commit() return aa -def delete_scores_dao(sid,cid,db): +def delete_scores_dao(sid:int,cid:int,tsub:str,db): try: - aaa = db.query(Score).filter(Score.sid ==sid,cid = cid).delete() + aaa = db.query(Score).filter(Score.sid ==sid + ,Score.cid == cid + ,Score.tsub == tsub + ,Score.is_deleted==0).delete() except: db.rollback() aaa = 0 diff --git a/scores/schema/score_request.py b/scores/schema/score_request.py index a92e9ce..7c80390 100644 --- a/scores/schema/score_request.py +++ b/scores/schema/score_request.py @@ -2,8 +2,8 @@ from pydantic import BaseModel class ScoreRequest(BaseModel): # id:int - cid:int sid:int + cid:int num:int score:int tsub:str