feat(pay): content cashier coupon and rebate discount chain

Wire zibll-style cash content discounts: VIP list price → buyer 推广折扣 → coupon, then commission on final pay. Reuse AKSRT_Coupon, add Invite::get_referrer, cashier UI, and paid-time coupon burn + rebate_log.
This commit is contained in:
2026-07-14 19:38:05 +08:00
parent 9eaddce457
commit 5d7b138c2c
11 changed files with 724 additions and 22 deletions
@@ -23,6 +23,8 @@ export const paidSchema = {
payment_download_post_log: 50,
payment_download_remote_size: 2048,
payment_download_remote_ext: 'zip,rar,7z',
coupon_post_s: false,
coupon_desc: '',
},
groups: [
{
@@ -72,5 +74,14 @@ export const paidSchema = {
{ key: 'payment_download_remote_ext', label: '远程文件格式限制', type: 'input', default: 'zip,rar,7z', help: '逗号分隔扩展名', dependsOn: { key: 'payment_download_remote_s', value: true } },
],
},
{
key: 'coupon',
title: '内容优惠码',
icon: 'fas fa-ticket-alt',
fields: [
{ key: 'coupon_post_s', label: '全站内容允许优惠码', type: 'switch', default: false, help: '开启后所有付费内容收银台可用优惠码;关闭时仅单篇勾选「允许优惠码」的文章可用。' },
{ key: 'coupon_desc', label: '优惠码说明', type: 'textarea', default: '', dependsOn: { key: 'coupon_post_s', value: true }, help: '展示在内容收银台优惠码输入框下方。' },
],
},
],
}