50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from day23sk.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 |