TaskRewardLogController.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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', '任务名称');
  40. $helper->columnRewards();
  41. $grid->column('rewarded_at', '奖励发放时间')->sortable();
  42. $grid->column('ip_address', 'IP地址');
  43. $grid->column('device_info', '设备信息')->limit(30);
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filterHelper = new FilterHelper($filter, $this);
  46. $filterHelper->equal();
  47. $filterHelper->equalUserId();
  48. $filterHelper->equalTaskId();
  49. $filterHelper->equal('user_task_id', '用户任务ID');
  50. $filterHelper->betweenDatetime('rewarded_at', '奖励发放时间');
  51. });
  52. // 禁用创建按钮
  53. $grid->disableCreateButton();
  54. // 禁用编辑和删除按钮
  55. $grid->actions(function (Grid\Displayers\Actions $actions) {
  56. $actions->disableEdit();
  57. $actions->disableDelete();
  58. });
  59. });
  60. }
  61. /**
  62. * 详情页构建
  63. *
  64. * @param mixed $id
  65. * @return Show
  66. */
  67. protected function detail($id)
  68. {
  69. return Show::make(TaskRewardLog::findOrFail($id), function (Show $show) {
  70. $helper = new ShowHelper($show, $this);
  71. $helper->fieldId();
  72. $show->field('user_id', '用户ID');
  73. $show->field('task_id', '任务ID');
  74. $show->field('user_task_id', '用户任务ID');
  75. $show->field('task_name', '任务名称');
  76. $helper->fieldRewards();
  77. $show->field('rewarded_at', '奖励发放时间');
  78. $show->field('ip_address', 'IP地址');
  79. $show->field('device_info', '设备信息');
  80. $helper->fieldCreatedAt();
  81. // 禁用编辑和删除按钮
  82. $show->panel()->tools(function (Show\Tools $tools) {
  83. $tools->disableEdit();
  84. $tools->disableDelete();
  85. });
  86. });
  87. }
  88. }