56 lines
1.6 KiB
Python

from flask import render_template, request, redirect, url_for, g
from .config import db
import pymysql
def order():
order_id = request.args.get('order_id')
if not g.user:
return redirect(url_for("login"))
conn = pymysql.connect(**db)
cursor = conn.cursor(pymysql.cursors.DictCursor)
# 查询订单信息和航班信息
order_sql = """
SELECT o.*, f.*, d.Name as Departure_airport_name, a.Name as Arrival_airport_name
FROM Orders o
JOIN Tickets t ON o.ID = t.OrderID
JOIN Flights f ON t.FlightID = f.ID
JOIN Airports d ON f.Departure_airport = d.ID
JOIN Airports a ON f.Arrival_airport = a.ID
WHERE o.ID = %s
"""
cursor.execute(order_sql, (order_id,))
order_info = cursor.fetchone()
# 如果订单信息不存在,返回订单列表页面
if not order_info:
cursor.close()
conn.close()
return redirect(url_for("order_list"))
# 查询乘客信息和票据信息
tickets_sql = """
SELECT t.*, p.Name, p.Phone_number
FROM Tickets t
JOIN Passengers p ON t.PassengerID = p.ID
WHERE t.OrderID = %s
"""
cursor.execute(tickets_sql, (order_id,))
tickets = cursor.fetchall()
seatClass2Chinses = {
'First Class': '头等舱',
'Business Class': '商务舱',
'Economy Class': '经济舱'
}
for ticket in tickets:
ticket['Seat_class'] = seatClass2Chinses[ticket['Seat_class']]
cursor.close()
conn.close()
total_price = sum(ticket['Price'] for ticket in tickets)
return render_template('order.html', order=order_info, tickets=tickets, total_price=total_price, username=g.name)