UrsUserReferralController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Module\UrsPromotion\AdminControllers;
  3. use UCore\DcatAdmin\AdminController;
  4. use Spatie\RouteAttributes\Attributes\Resource;
  5. use App\Module\UrsPromotion\Models\UrsUserReferral;
  6. use App\Module\UrsPromotion\Repositorys\UrsUserReferralRepository;
  7. use Dcat\Admin\Grid;
  8. use Dcat\Admin\Show;
  9. use Dcat\Admin\Form;
  10. /**
  11. * URS用户推荐关系管理控制器
  12. *
  13. * @route /admin/urs-promotion/user-referrals
  14. */
  15. #[Resource('urs-promotion/user-referrals', names: 'dcat.admin.urs-promotion.user-referrals')]
  16. class UrsUserReferralController extends AdminController
  17. {
  18. /**
  19. * 页面标题
  20. */
  21. protected $title = 'URS用户推荐关系';
  22. /**
  23. * 模型类
  24. */
  25. protected $model = UrsUserReferral::class;
  26. /**
  27. * 仓库类
  28. */
  29. protected $repository = UrsUserReferralRepository::class;
  30. /**
  31. * 列表页面
  32. */
  33. protected function grid(): Grid
  34. {
  35. return Grid::make(new UrsUserReferralRepository(), function (Grid $grid) {
  36. $grid->column('id', 'ID')->sortable();
  37. $grid->column('urs_user_id', 'URS用户ID')->sortable();
  38. $grid->column('urs_referrer_id', 'URS推荐人ID')->sortable();
  39. $grid->column('referral_time', '推荐时间')->sortable();
  40. $grid->column('status', '状态')->using([
  41. UrsUserReferral::STATUS_INVALID => '无效',
  42. UrsUserReferral::STATUS_VALID => '有效',
  43. ])->label([
  44. UrsUserReferral::STATUS_INVALID => 'danger',
  45. UrsUserReferral::STATUS_VALID => 'success',
  46. ]);
  47. $grid->column('created_at', '创建时间')->sortable();
  48. // 禁用创建按钮(推荐关系由系统自动创建)
  49. $grid->disableCreateButton();
  50. // 禁用编辑(推荐关系不允许修改)
  51. $grid->disableActions();
  52. // 只允许查看详情
  53. $grid->actions(function (Grid\Displayers\Actions $actions) {
  54. $actions->disableEdit();
  55. $actions->disableDelete();
  56. });
  57. $grid->filter(function (Grid\Filter $filter) {
  58. $filter->equal('urs_user_id', 'URS用户ID');
  59. $filter->equal('urs_referrer_id', 'URS推荐人ID');
  60. $filter->equal('status', '状态')->select([
  61. UrsUserReferral::STATUS_INVALID => '无效',
  62. UrsUserReferral::STATUS_VALID => '有效',
  63. ]);
  64. $filter->between('created_at', '创建时间')->datetime();
  65. });
  66. });
  67. }
  68. /**
  69. * 详情页面
  70. */
  71. protected function detail($id): Show
  72. {
  73. return Show::make($id, new UrsUserReferralRepository(), function (Show $show) {
  74. $show->field('id', 'ID');
  75. $show->field('urs_user_id', 'URS用户ID');
  76. $show->field('urs_referrer_id', 'URS推荐人ID');
  77. $show->field('referral_time', '推荐时间');
  78. $show->field('status', '状态')->using([
  79. UrsUserReferral::STATUS_INVALID => '无效',
  80. UrsUserReferral::STATUS_VALID => '有效',
  81. ]);
  82. $show->field('created_at', '创建时间');
  83. $show->field('updated_at', '更新时间');
  84. });
  85. }
  86. /**
  87. * 表单页面(禁用)
  88. */
  89. protected function form(): Form
  90. {
  91. return Form::make(new UrsUserReferralRepository(), function (Form $form) {
  92. // 推荐关系由系统自动创建,不提供手动创建表单
  93. $form->display('message', '提示')->default('推荐关系由系统自动创建,不支持手动添加或编辑');
  94. });
  95. }
  96. }