UrsUserReferralController.php 3.6 KB

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