Files
ai0824_0002/dao/order_dao.py
T
2026-09-19 15:29:46 +08:00

52 lines
1.4 KiB
Python

from day22.model.order_model import Order,User
def add_student_dao(o,db):
try:
r = db.query(User).filter(User.id == o['userid']).all()
if r:
o1 = Order( **o) # 将字典解析成键值对关键字参数输入 title = xxx, userid = XXX
db.add(o1)
else:
raise ValueError
except:
db.rollback()
return False
else:
db.commit()
return True
def update_orders_dao(id,update_data,db):
try: # 数据更新是有返回值的,返回的是影响的行数
rows = db.query( Order ).filter( Order.id == id ).update( update_data )
except:
db.rollback()
return False
else:
db.commit()
return rows
def get_orders_dao(id,order_title,db,page,page_size):
q = db.query(Order)
if id:
q = q.filter( Order.id == id )
if order_title:
q = q.filter( Order.title == order_title )
r = q.offset( (page-1)*page_size ).limit( page_size ).all()
if r:
return [{"order_id": i.id, 'order_title': i.title, "user_id": i.userid, "create_date": i.create_date,
"update_date": i.update_date} for i in r]
def delete_orders_dao(id,db):
try: # 删除有返回值,删除的行数
rows = db.query(Order).filter(Order.id == id).delete()
except:
db.rollback()
rows = 0
else:
db.commit()
finally:
return rows