下载地址:https://download.youkuaiyun.com/download/geek_xiong/11585216
预定房间功能
在房间详情页提供预定功能,点击进入预定页面,提交预定后页面跳转到我的订单中
房东可在客户订单中查看
后端代码编写
后端需要接收前端传递过来的参数,经过处理与验证后将数据保存到数据库中。
URL:127.0.0.1:5000/api/v1.0/orders/house_id
请求方式:POST
大致流程:
- 获取用户id
- 获取订单信息,房子id,入住时间,结束时间
- 转换时间格式,计算入住的天数
- 判断房子是否存在
- 判断预定用户是否是房东
- 判断这个时间段内,该房子是否被别人下单
- 计算总额
- 保存数据
# POST 127.0.0.1:5000/orders
@api.route("/orders", methods=['POST'])
@login_required
def save_order():
"""保存订单
需要的参数:用户id,房子id,入住与结束的日期
参数要求:json 格式
"""
# 获取用户的 id
user_id = g.user_id
# 获取参数
order_data = request.get_json()
if order_data:
return jsonify(errno=RET.PARAMERR, errmsg='参数错误')
house_id = order_data.get("house_id") # 预订的房屋编号
start_date_str = order_data.get("start_date") # 预订的入住时间
end_date_str = order_data.get("end_date") # 预订的结束时间
# 验证参数的完整性
if not all([house_id, start_date_str, end_date_str]):
return jsonify(errno=RET.PARAMERR, errmsg='参数错误')
# 处理日期