column('id', 'ID')->sortable(); $grid->column('dividend_record_id', '分红记录ID')->sortable()->display(function ($value) { return $value; })->link(function ($value) { return admin_url('urs-promotion/partner-dividend/' . $value); }); $grid->column('dividendRecord.dividend_date', '分红日期')->sortable()->display(function ($value) { return $value ? date('Y-m-d', strtotime($value)) : '-'; }); $grid->column('user_id', '用户ID')->sortable()->display(function ($value) { return $value; })->link(function ($value) { return admin_url('user/users/' . $value); }); $grid->column('urs_user_id', 'URS用户ID')->sortable(); $grid->column('user.username', '用户名')->display(function ($value) { return $value ?: '未知用户'; }); $grid->column('talent_level', '达人等级')->sortable()->display(function ($value) { $levels = [ 0 => '青铜', 1 => '白银', 2 => '黄金', 3 => '钻石', 4 => '至尊', 5 => '合伙人' ]; return $levels[$value] ?? '未知'; }); $grid->column('dividend_amount', '分红金额')->sortable()->display(function ($value) { return number_format($value, 4) . ' 钻石'; }); $grid->column('status', '状态')->using([ 'pending' => '待处理', 'completed' => '已完成', 'failed' => '失败' ])->label([ 'pending' => 'warning', 'completed' => 'success', 'failed' => 'danger' ]); $grid->column('transfer_order_id', '转账订单ID')->display(function ($value) { if ($value) { return '' . $value . ''; } return '-'; }); $grid->column('error_message', '错误信息')->limit(50); $grid->column('created_at', '创建时间')->sortable()->display(function ($value) { return $value ? date('Y-m-d H:i:s', strtotime($value)) : '-'; }); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $filter->equal('dividend_record_id', '分红记录ID'); $filter->equal('user_id', '用户ID'); $filter->equal('urs_user_id', 'URS用户ID'); $filter->equal('talent_level', '达人等级')->select([ 0 => '青铜', 1 => '白银', 2 => '黄金', 3 => '钻石', 4 => '至尊', 5 => '合伙人' ]); $filter->equal('status', '状态')->select([ 'pending' => '待处理', 'completed' => '已完成', 'failed' => '失败' ]); $filter->between('dividend_amount', '分红金额'); $filter->between('created_at', '创建时间')->datetime(); }); // 操作配置 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableEdit(); $actions->disableDelete(); }); $grid->disableCreateButton(); $grid->disableBatchActions(); // 默认排序 $grid->model()->orderBy('created_at', 'desc'); }); } /** * 详情页面 */ protected function detail($id): Show { return Show::make($id, new UrsPartnerDividendDetailRepository(['dividendRecord', 'user', 'transferOrder']), function (Show $show) { // 基础信息 $show->field('id', 'ID'); $show->field('dividend_record_id', '分红记录ID')->link(admin_url('urs-promotion/partner-dividend/{dividend_record_id}'), '_blank'); $show->field('dividendRecord.dividend_date', '分红日期')->as(function ($value) { return $value ? date('Y-m-d', strtotime($value)) : '-'; }); $show->field('user_id', '用户ID')->link(admin_url('user/users/{user_id}'), '_blank'); $show->field('urs_user_id', 'URS用户ID'); $show->field('user.username', '用户名')->as(function ($value) { return $value ?: '未知用户'; }); $show->field('talent_level_name', '达人等级'); $show->field('dividend_amount', '分红金额')->as(function ($value) { return number_format($value, 4) . ' 钻石'; }); $show->field('status', '状态')->as(function ($status) { $statuses = [ 'pending' => '待处理', 'completed' => '已完成', 'failed' => '失败' ]; return $statuses[$status] ?? '未知'; }); $show->field('error_message', '错误信息'); $show->field('transfer_order_id', '转账订单ID')->as(function ($value) { if ($value) { return '' . $value . ''; } return '-'; })->unescape(); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); // 显示关联的分红记录信息 $show->divider('分红记录信息'); $show->field('dividendRecord.total_fee_amount', '当日总手续费')->as(function ($value) { return number_format($value, 4) . ' 钻石'; }); $show->field('dividendRecord.dividend_amount', '分红总金额')->as(function ($value) { return number_format($value, 4) . ' 钻石'; }); $show->field('dividendRecord.partner_count', '合伙人数量'); $show->field('dividendRecord.per_partner_amount', '人均分红')->as(function ($value) { return number_format($value, 4) . ' 钻石'; }); $show->field('dividendRecord.status', '分红记录状态')->as(function ($status) { $statuses = [ 'pending' => '待处理', 'processing' => '处理中', 'completed' => '已完成', 'failed' => '失败' ]; return $statuses[$status] ?? '未知'; }); // 显示转账订单信息 if ($show->model()->transfer_order_id) { $show->divider('转账订单信息'); $show->field('transferOrder.order_no', '订单号'); $show->field('transferOrder.amount', '转账金额')->as(function ($value) { return number_format($value, 4) . ' 钻石'; }); $show->field('transferOrder.status', '转账状态'); $show->field('transferOrder.created_at', '转账创建时间'); $show->field('transferOrder.updated_at', '转账更新时间'); } }); } }