Files
water-back/modules/Payment/Http/Controllers/Admin/SettingController.php
2023-01-12 14:47:38 +08:00

74 lines
2.1 KiB
PHP

<?php
namespace Modules\Payment\Http\Controllers\Admin;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Modules\Payment\Models\Alipay;
use Modules\Payment\Models\Setting;
use Modules\Payment\Models\Wechat;
class SettingController extends AdminController
{
protected $title = '支付配置';
public function grid(): Grid
{
$grid = new Grid(new Setting());
$grid->disableFilter();
$grid->model()->orderByDesc('in_use');
$grid->column('name', '配置名称');
$grid->column('trade_id_counter_length', '计数器位数');
$grid->column('in_use', '使用中')->bool();
$grid->column('wechat.name', '微信支付');
$grid->column('alipay.name', '支付宝');
$grid->column('created_at', '创建时间');
return $grid;
}
public function form(): Form
{
$form = new Form(new Setting());
$form->text('name', '配置名称')
->required();
$form->number('trade_id_counter_length', '计数器位数')
->required()
->default(4)
->rules('integer|max:16', [
'max' => '计数器最大不能超过16',
]);
$form->switch('in_use', '当前配置');
$form->select('wechat_id', '微信支付')
->options(function ($wechatId) {
if ($wechatId) {
$wechat = Wechat::find($wechatId);
if ($wechat) {
return [$wechat->id => $wechat->name];
}
}
})
->ajax(route('admin.payment.wechats.ajax'));
$form->select('alipay_id', '支付宝')
->options(function ($alipayId) {
if ($alipayId) {
$alipay = Alipay::find($alipayId);
if ($alipay) {
return [$alipay->id => $alipay->name];
}
}
})
->ajax(route('admin.payment.alipays.ajax'));
return $form;
}
}