74 lines
2.6 KiB
Python
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'))
|
|
|