UrsUserReferralController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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 App\Module\UrsPromotion\AdminControllers\Helper\UrsUserReferralGridHelper;
  8. use App\Module\UrsPromotion\AdminControllers\Helper\UrsUserReferralShowHelper;
  9. use App\Module\UrsPromotion\AdminControllers\Helper\UrsUserReferralFormHelper;
  10. use App\Module\UrsPromotion\AdminControllers\Helper\UrsUserReferralFilterHelper;
  11. use Dcat\Admin\Grid;
  12. use Dcat\Admin\Show;
  13. use Dcat\Admin\Form;
  14. /**
  15. * URS用户推荐关系管理控制器
  16. *
  17. * @route /admin/urs-promotion/user-referrals
  18. */
  19. #[Resource('urs-promotion/user-referrals', names: 'dcat.admin.urs-promotion.user-referrals')]
  20. class UrsUserReferralController extends AdminController
  21. {
  22. /**
  23. * 页面标题
  24. */
  25. protected $title = 'URS用户推荐关系';
  26. /**
  27. * 模型类
  28. */
  29. protected $model = UrsUserReferral::class;
  30. /**
  31. * 仓库类
  32. */
  33. protected $repository = UrsUserReferralRepository::class;
  34. /**
  35. * 列表页面
  36. */
  37. protected function grid(): Grid
  38. {
  39. return Grid::make(new UrsUserReferralRepository(), function (Grid $grid) {
  40. $grid->column('id', 'ID')->sortable();
  41. $grid->column('user_id', '用户ID')->sortable();
  42. $grid->column('referrer_id', '推荐人ID')->sortable();
  43. $grid->column('referral_code', '推荐码');
  44. $grid->column('referral_time', '推荐时间')->sortable();
  45. $grid->column('status', '状态')->using([
  46. UrsUserReferral::STATUS_INVALID => '无效',
  47. UrsUserReferral::STATUS_VALID => '有效',
  48. ])->label([
  49. UrsUserReferral::STATUS_INVALID => 'danger',
  50. UrsUserReferral::STATUS_VALID => 'success',
  51. ]);
  52. $grid->column('created_at', '创建时间')->sortable();
  53. // 禁用创建按钮(推荐关系由系统自动创建)
  54. $grid->disableCreateButton();
  55. // 禁用编辑(推荐关系不允许修改)
  56. $grid->disableActions();
  57. // 只允许查看详情
  58. $grid->actions(function (Grid\Displayers\Actions $actions) {
  59. $actions->disableEdit();
  60. $actions->disableDelete();
  61. });
  62. $grid->filter(function (Grid\Filter $filter) {
  63. $filterHelper = new UrsUserReferralFilterHelper($filter, $this);
  64. });
  65. });
  66. }
  67. /**
  68. * 详情页面
  69. */
  70. protected function detail($id): Show
  71. {
  72. return Show::make($id, new UrsUserReferralRepository(), function (Show $show) {
  73. $show->field('id', 'ID');
  74. $show->field('user_id', '用户ID');
  75. $show->field('referrer_id', '推荐人ID');
  76. $show->field('referral_code', '推荐码');
  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. }