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', '转账更新时间');
}
});
}
}