TaskRewardLogController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Module\Task\AdminControllers;
  3. use App\Module\Task\AdminControllers\Helper\FilterHelper;
  4. use App\Module\Task\AdminControllers\Helper\GridHelper;
  5. use App\Module\Task\AdminControllers\Helper\ShowHelper;
  6. use App\Module\Task\Models\TaskRewardLog;
  7. use App\Module\Task\Repositorys\TaskRewardLogRepository;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Show;
  10. use Spatie\RouteAttributes\Attributes\Resource;
  11. use UCore\DcatAdmin\AdminController;
  12. /**
  13. * 任务奖励发放日志控制器
  14. *
  15. * @package App\Module\Task\AdminControllers
  16. */
  17. #[Resource('task-reward-logs', names: 'dcat.admin.task-reward-logs')]
  18. class TaskRewardLogController extends AdminController
  19. {
  20. /**
  21. * 标题
  22. *
  23. * @var string
  24. */
  25. protected $title = '任务奖励发放日志';
  26. /**
  27. * 表格构建
  28. *
  29. * @return Grid
  30. */
  31. protected function grid()
  32. {
  33. return Grid::make(new TaskRewardLogRepository(), function (Grid $grid) {
  34. $helper = new GridHelper($grid, $this);
  35. $helper->columnId();
  36. $helper->columnUserId();
  37. $grid->column('task_id', '任务ID');
  38. $grid->column('user_task_id', '用户任务ID');
  39. $grid->column('task_name', '任务名称')->display(function () {
  40. return $this->task ? $this->task->name : '未知任务';
  41. });
  42. $helper->columnRewards();
  43. $grid->column('rewarded_at', '奖励发放时间')->sortable();
  44. $grid->column('ip_address', 'IP地址');
  45. $grid->column('device_info', '设备信息')->limit(30);
  46. $grid->filter(function (Grid\Filter $filter) {
  47. $filterHelper = new FilterHelper($filter, $this);
  48. $filterHelper->equalId();
  49. $filterHelper->equalUserId();
  50. $filterHelper->equalTaskId();
  51. $filterHelper->equal('user_task_id', '用户任务ID');
  52. $filterHelper->betweenDatetime('rewarded_at', '奖励发放时间');
  53. });
  54. // 禁用创建按钮
  55. $grid->disableCreateButton();
  56. // 禁用编辑和删除按钮
  57. $grid->actions(function (Grid\Displayers\Actions $actions) {
  58. $actions->disableEdit();
  59. $actions->disableDelete();
  60. });
  61. });
  62. }
  63. /**
  64. * 详情页构建
  65. *
  66. * @param mixed $id
  67. * @return Show
  68. */
  69. protected function detail($id)
  70. {
  71. return Show::make(TaskRewardLog::with('task')->findOrFail($id), function (Show $show) {
  72. $helper = new ShowHelper($show, $this);
  73. $helper->fieldId();
  74. $show->field('user_id', '用户ID');
  75. $show->field('task_id', '任务ID');
  76. $show->field('user_task_id', '用户任务ID');
  77. $show->field('task_name', '任务名称')->as(function () {
  78. return $this->task ? $this->task->name : '未知任务';
  79. });
  80. $helper->fieldRewards();
  81. $show->field('rewarded_at', '奖励发放时间');
  82. $show->field('ip_address', 'IP地址');
  83. $show->field('device_info', '设备信息');
  84. $helper->fieldCreatedAt();
  85. // 禁用编辑和删除按钮
  86. $show->panel()->tools(function (Show\Tools $tools) {
  87. $tools->disableEdit();
  88. $tools->disableDelete();
  89. });
  90. });
  91. }
  92. }