56 lines
2.0 KiB
Python
56 lines
2.0 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from schema.order_request import OrderRequest, OrderResponse
|
|
from database import get_db
|
|
from model.order_model import Order
|
|
from dao.order_dao import add_student_dao, update_orders_dao
|
|
|
|
order_api = APIRouter()
|
|
|
|
|
|
@order_api.post('', response_model=OrderResponse)
|
|
def add_orders(order: OrderRequest, db=Depends(get_db)):
|
|
d = order.model_dump()
|
|
r = add_student_dao(o=d, db=db)
|
|
if not r:
|
|
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!')
|
|
return OrderResponse(totals=1, data=d)
|
|
|
|
|
|
@order_api.put('/{id}')
|
|
def get_orders(order: OrderRequest, id: int, db=Depends(get_db)):
|
|
d = order.model_dump(exclude_unset=True)
|
|
r = update_orders_dao(id=id, update_data=d, db=db)
|
|
if not r:
|
|
raise HTTPException(status_code=500, detail='没有更新!')
|
|
return {'code': 200, 'totals': r, 'detail': '更新成功'}
|
|
|
|
|
|
@order_api.get('')
|
|
def get_orders(order_title: str, db=Depends(get_db)):
|
|
r = db.query(Order).filter(Order.title == order_title).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]
|
|
|
|
raise HTTPException(status_code=404, detail='订单不存在!')
|
|
|
|
|
|
@order_api.delete('/{id}')
|
|
def get_orders(id: int, db=Depends(get_db)):
|
|
try: # 删除有返回值,删除的行数
|
|
rows = db.query(Order).filter(Order.id == id).delete()
|
|
except:
|
|
db.rollback()
|
|
raise HTTPException(status_code=500, detail='删除异常,稍后操作!')
|
|
else:
|
|
db.commit()
|
|
return {'code': 200, 'totals': rows, 'detail': '删除成功'}
|
|
|
|
|
|
# 要求:
|
|
'''
|
|
①把剩下的delete、get查询接口完成dao层的分层
|
|
②新增一个user_info的表,有外键联系,oder订单表外键依赖user_info,改造一下订单post的接口,新增订单前,判断下用户的id是否存在user_info表里
|
|
'''
|
|
|