feat(payment): 卡密管理改为独立页面并对齐参考主题
- 移除「余额充值」设置中的充值卡(card_pass_*)配置组,PHP schema 与 SPA mirror 双轨同步 - 重写后台卡密管理页:列表过滤/排序/搜索/批量删除/同款分页/点击复制、自动生成与导入、text/xls 导出 - ChargeCard 服务新增 generate_cards/rand_number/rand_password/delete_by_ids/get_export_rows,get_list 支持参考主题排序别名与标识过滤 - 删除无消费方的 /payment/charge-cards REST 路由及 batch_create/disable 死代码,数据层零迁移
This commit is contained in:
1 parent
ba1c8c2822
commit
678143e7b9
9 files changed
+1227
-788
No files matched your search
@@ -175,15 +175,6 @@ trait CreditsPaymentGroups {
|
||||
return PaymentRuntime::get_order_settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取充值卡设置
|
||||
*
|
||||
* @return array{enabled:bool,desc:string,type:string,prefix:string,length:int,batch_size:int,max_redeem:int,expiry_days:int,amount:string,vip_days:int,credits:int,redeem_page:string,success_msg:string,fail_msg:string}
|
||||
*/
|
||||
public static function get_card_pass_settings(): array {
|
||||
return PaymentRuntime::get_card_pass_settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取提现管理设置
|
||||
*
|
||||
|
||||
@@ -272,7 +272,6 @@ trait DisplayPageGroups {
|
||||
'affiliate' => self::get_payment_affiliate_settings(),
|
||||
'gateway' => self::get_payment_gateway_settings(),
|
||||
'order' => self::get_order_settings(),
|
||||
'card_pass' => self::get_card_pass_settings(),
|
||||
'withdrawal' => self::get_withdrawal_settings(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -242,10 +242,6 @@ class HomeCms {
|
||||
return PaymentRuntime::get_order_settings();
|
||||
}
|
||||
|
||||
public static function get_card_pass_settings(): array {
|
||||
return PaymentRuntime::get_card_pass_settings();
|
||||
}
|
||||
|
||||
public static function get_withdrawal_settings(): array {
|
||||
return PaymentRuntime::get_withdrawal_settings();
|
||||
}
|
||||
|
||||
@@ -504,38 +504,8 @@ class PaymentRuntime {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string,mixed>
|
||||
* @return array{min_amount:string,service_charge_rate:int,daily_count:int,daily_limit:string,reset_time:string,payout_channels:string[]}
|
||||
*/
|
||||
public static function get_card_pass_settings(): array {
|
||||
$s = Settings::get_all();
|
||||
|
||||
$type = sanitize_key((string) ($s['card_pass_type'] ?? 'balance'));
|
||||
if (!in_array($type, ['balance', 'vip', 'credits'], true)) {
|
||||
$type = 'balance';
|
||||
}
|
||||
|
||||
$success_msg = trim((string) ($s['card_pass_success_msg'] ?? ''));
|
||||
$fail_msg = trim((string) ($s['card_pass_fail_msg'] ?? ''));
|
||||
|
||||
return [
|
||||
'enabled' => !empty($s['card_pass_enabled']),
|
||||
'desc' => sanitize_textarea_field((string) ($s['card_pass_desc'] ?? '')),
|
||||
'type' => $type,
|
||||
'prefix' => sanitize_text_field((string) ($s['card_pass_prefix'] ?? 'AK')),
|
||||
'length' => max(8, min(32, (int) ($s['card_pass_length'] ?? 16))),
|
||||
'batch_size' => max(1, min(500, (int) ($s['card_pass_batch_size'] ?? 50))),
|
||||
'max_redeem' => max(1, min(100, (int) ($s['card_pass_max_redeem'] ?? 1))),
|
||||
'expiry_days' => max(0, (int) ($s['card_pass_expiry'] ?? 0)),
|
||||
'amount' => self::money_decimal($s['card_pass_amount'] ?? '10.00', '10.00', 999900),
|
||||
'vip_days' => max(1, min(3650, (int) ($s['card_pass_vip_days'] ?? 30))),
|
||||
'credits' => max(0, min(99999, (int) ($s['card_pass_credits'] ?? 0))),
|
||||
'redeem_page' => esc_url_raw((string) ($s['card_pass_redeem_page'] ?? '')),
|
||||
'success_msg' => $success_msg !== '' ? $success_msg : __('兑换成功!', 'aksrt'),
|
||||
'fail_msg' => $fail_msg !== '' ? $fail_msg : __('卡号无效或已过期', 'aksrt'),
|
||||
];
|
||||
}
|
||||
|
||||
/** @return array{min_amount:string,service_charge_rate:int,daily_count:int,daily_limit:string,reset_time:string,payout_channels:string[]} */
|
||||
public static function get_withdrawal_settings(): array {
|
||||
$s = Settings::get_all();
|
||||
$channels = array_values(array_intersect(['alipay', 'wechat'], array_map('sanitize_key', (array) ($s['affiliate_payout_channels'] ?? ['alipay', 'wechat']))));
|
||||
|
||||
Reference in new issue
Block a user