FarmGodBuffController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace App\Module\Farm\AdminControllers;
  3. use App\Module\Farm\Enums\BUFF_TYPE;
  4. use App\Module\Farm\Repositories\FarmGodBuffRepository;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use UCore\DcatAdmin\AdminController;
  9. use Spatie\RouteAttributes\Attributes\Resource;
  10. /**
  11. * 神灵加持管理控制器
  12. */
  13. #[Resource('farm-buffs', names: 'dcat.admin.farm-buffs')]
  14. class FarmGodBuffController extends AdminController
  15. {
  16. /**
  17. * 页面标题
  18. *
  19. * @var string
  20. */
  21. protected $title = '神灵加持管理';
  22. /**
  23. * 页面描述
  24. *
  25. * @var string
  26. */
  27. protected $description = '管理用户的神灵加持状态';
  28. /**
  29. * 构建表格
  30. *
  31. * @return Grid
  32. */
  33. protected function grid()
  34. {
  35. return Grid::make(new FarmGodBuffRepository(), function (Grid $grid) {
  36. $grid->column('id', 'ID')->sortable();
  37. $grid->column('user_id', '用户ID')->sortable();
  38. $grid->column('buff_type', '加持类型')->display(function ($value) {
  39. return BUFF_TYPE::getName($value);
  40. })->sortable();
  41. $grid->column('expire_time', '过期时间')->sortable();
  42. $grid->column('created_at', '创建时间')->sortable();
  43. $grid->column('updated_at', '更新时间')->sortable();
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filter->equal('id', 'ID');
  46. $filter->equal('user_id', '用户ID');
  47. $filter->equal('buff_type', '加持类型')->select([
  48. BUFF_TYPE::HARVEST_GOD => BUFF_TYPE::getName(BUFF_TYPE::HARVEST_GOD),
  49. BUFF_TYPE::RAIN_GOD => BUFF_TYPE::getName(BUFF_TYPE::RAIN_GOD),
  50. BUFF_TYPE::WEED_KILLER_GOD => BUFF_TYPE::getName(BUFF_TYPE::WEED_KILLER_GOD),
  51. BUFF_TYPE::PEST_CLEANER_GOD => BUFF_TYPE::getName(BUFF_TYPE::PEST_CLEANER_GOD),
  52. ]);
  53. $filter->between('expire_time', '过期时间')->datetime();
  54. $filter->between('created_at', '创建时间')->datetime();
  55. });
  56. });
  57. }
  58. /**
  59. * 构建详情页
  60. *
  61. * @param mixed $id
  62. * @return Show
  63. */
  64. protected function detail($id)
  65. {
  66. return Show::make($id, new FarmGodBuffRepository(), function (Show $show) {
  67. $show->field('id', 'ID');
  68. $show->field('user_id', '用户ID');
  69. $show->field('buff_type', '加持类型')->as(function ($value) {
  70. return BUFF_TYPE::getName($value);
  71. });
  72. $show->field('expire_time', '过期时间');
  73. $show->field('created_at', '创建时间');
  74. $show->field('updated_at', '更新时间');
  75. });
  76. }
  77. /**
  78. * 构建表单
  79. *
  80. * @return Form
  81. */
  82. protected function form()
  83. {
  84. return Form::make(new FarmGodBuffRepository(), function (Form $form) {
  85. $form->display('id', 'ID');
  86. $form->text('user_id', '用户ID')->required()->rules('required|integer');
  87. $form->select('buff_type', '加持类型')->options([
  88. BUFF_TYPE::HARVEST_GOD => BUFF_TYPE::getName(BUFF_TYPE::HARVEST_GOD),
  89. BUFF_TYPE::RAIN_GOD => BUFF_TYPE::getName(BUFF_TYPE::RAIN_GOD),
  90. BUFF_TYPE::WEED_KILLER_GOD => BUFF_TYPE::getName(BUFF_TYPE::WEED_KILLER_GOD),
  91. BUFF_TYPE::PEST_CLEANER_GOD => BUFF_TYPE::getName(BUFF_TYPE::PEST_CLEANER_GOD),
  92. ])->required();
  93. $form->datetime('expire_time', '过期时间')->required();
  94. $form->display('created_at', '创建时间');
  95. $form->display('updated_at', '更新时间');
  96. });
  97. }
  98. }