2025-03-10 08:35:19 +08:00

74 lines
2.6 KiB
Python

from flask import Blueprint, render_template, session, redirect, url_for, flash, request
import requests
from frontend.config import Config
coupons_bp = Blueprint('coupons', __name__, url_prefix='/admin/coupons')
@coupons_bp.route('/')
def list_coupons():
if not session.get('token'):
return redirect(url_for('auth.login'))
try:
response = requests.get(
f"{Config.BASE_API_URL}/admin/coupons",
params={"token": session['token']}
)
if response.status_code == 200:
return render_template('coupons/list.html', coupons=response.json())
flash("获取优惠券列表失败", "danger")
return render_template('coupons/list.html', coupons=[])
except requests.exceptions.ConnectionError:
flash("后端服务不可用", "danger")
return render_template('coupons/list.html', coupons=[])
@coupons_bp.route('/create', methods=['POST'])
def create_coupon():
if not session.get('token'):
return redirect(url_for('auth.login'))
form_data = {
"token": session['token'],
"coupon_code": request.form['coupon_code'],
"discount_type": request.form['discount_type'],
"discount_amount": request.form['discount_amount'],
"min_order_amount": request.form.get('min_order_amount'),
"valid_from": request.form['valid_from'],
"valid_to": request.form['valid_to'],
"quantity": request.form['quantity']
}
try:
response = requests.post(
f"{Config.BASE_API_URL}/admin/coupons/create",
json=form_data
)
if response.status_code == 200:
flash("优惠券创建成功", "success")
else:
flash(response.json().get('detail', '创建失败'), "danger")
except requests.exceptions.ConnectionError:
flash("后端服务不可用", "danger")
return redirect(url_for('coupons.list_coupons'))
@coupons_bp.route('/delete/<int:coupon_id>', methods=['POST'])
def delete_coupon(coupon_id):
if not session.get('token'):
return redirect(url_for('auth.login'))
try:
response = requests.delete(
f"{Config.BASE_API_URL}/admin/coupons/{coupon_id}",
params={"token": session['token']}
)
if response.status_code == 200:
flash("优惠券删除成功", "success")
else:
flash(response.json().get('detail', '删除失败'), "danger")
except requests.exceptions.ConnectionError:
flash("后端服务不可用", "danger")
return redirect(url_for('coupons.list_coupons'))