from flask import request, redirect, url_for, g, flash from .config import db import pymysql def cancel_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) # 检查订单是否存在 check_order_sql = "SELECT ID FROM Orders WHERE ID = %s" cursor.execute(check_order_sql, (order_id,)) order_exists = cursor.fetchone() if not order_exists: cursor.close() conn.close() return redirect(url_for("order_list")) try: # 删除对应的机票 delete_tickets_sql = "DELETE FROM Tickets WHERE OrderID = %s" cursor.execute(delete_tickets_sql, (order_id,)) # 删除订单 delete_order_sql = "DELETE FROM Orders WHERE ID = %s" cursor.execute(delete_order_sql, (order_id,)) conn.commit() flash("订单取消成功", "success") except Exception as e: conn.rollback() print(e) flash(f"订单取消失败:{e}", "error") finally: cursor.close() conn.close() return redirect(url_for('order_list'))