种植日志
* 功能: 查看用户种植点数的变动记录,包括种植奖励等操作
*/
#[Resource('point-point-log', names: 'dcat.admin.point-log')]
class PointLogController extends AdminController
{
/**
* 数据仓库
*/
protected string $repository = PointLogRepository::class;
/**
* 页面标题
*/
protected $title = '种植日志';
/**
* 列表页面
*/
protected function grid(): Grid
{
return Grid::make(new PointLogRepository(), function (Grid $grid) {
$gridHelper = new GridHelper($grid,$this);
$grid->column('id', 'ID')->sortable();
$gridHelper->columnUserPoint();
$gridHelper->columnAmount();
$gridHelper->columnOperateType();
$grid->column('operate_id', '操作ID')->limit(20);
$grid->column('remark', '备注')->limit(30);
$gridHelper->columnTimestamp('create_time', '创建时间');
// 添加余额变化信息
$grid->column('balance_change', '余额变化')->display(function () {
return "前: " . number_format($this->before_balance) . "
后: " . number_format($this->later_balance);
});
$grid->filter(function (Grid\Filter $filter) {
$filterHelper = new FilterHelper($filter,$this);
$filterHelper->equalUserId();
$filterHelper->equalPointId();
$filterHelper->equalOperateType();
$filterHelper->likeOperateId();
$filterHelper->betweenAmount();
$filterHelper->betweenTimestamp('create_time', '创建时间');
$filterHelper->likeRemark();
});
$grid->disableCreateButton();
$grid->disableEditButton();
$grid->disableDeleteButton();
$grid->actions(function (Grid\Displayers\Actions $actions) {
$actions->disableEdit();
$actions->disableDelete();
});
$grid->tools(function (Grid\Tools $tools) {
$tools->append('用户积分');
});
});
}
/**
* 详情页面
*/
protected function detail($id): Show
{
return Show::make($id, new PointLogRepository(), function (Show $show) {
$showHelper = new ShowHelper($show,$this);
$show->field('id', 'ID');
$show->field('user_id', '用户ID');
$showHelper->fieldPointId();
$showHelper->fieldAmount();
$showHelper->fieldOperateType();
$show->field('operate_id', '操作ID');
$show->field('remark', '备注');
$showHelper->fieldTimestamp('create_time', '创建时间');
$show->field('create_ip', '创建IP');
// 余额信息
$show->divider('余额信息');
$showHelper->fieldPoints('before_balance', '操作前余额');
$showHelper->fieldPoints('later_balance', '操作后余额');
// 防篡改信息
$show->divider('防篡改信息');
$show->field('hash', '当前哈希值');
$show->field('prev_hash', '上一条哈希值');
$show->field('date_key', '日期键');
$show->disableEditButton();
$show->disableDeleteButton();
});
}
/**
* 禁用表单页面
*/
protected function form()
{
return redirect()->back()->with('error', '积分日志不允许编辑');
}
}