WxUserInviteTempCodeController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. namespace App\Admin\Controllers\User;
  3. use App\Admin\Actions\Extensions\User\UserInviteTmpCodeBatchButton;
  4. use App\Admin\Actions\Extensions\User\UserInviteTmpCodeBgButton;
  5. use App\Admin\Actions\Grid\User\UserInviteTmpCodeBgDownBatchAction;
  6. use App\Admin\Actions\Grid\User\UserInviteTmpCodeDownBatchAction;
  7. use App\Admin\Repositories\User\WxUserInviteTempCode;
  8. use App\Models\WxTenant;
  9. use App\Wen\Utils\Settings;
  10. use App\Wen\Utils\Utils;
  11. use Dcat\Admin\Form;
  12. use Dcat\Admin\Grid;
  13. use Dcat\Admin\Show;
  14. use Dcat\Admin\Http\Controllers\AdminController;
  15. class WxUserInviteTempCodeController extends AdminController
  16. {
  17. /**
  18. * Make a grid builder.
  19. *
  20. * @return Grid
  21. */
  22. protected function grid()
  23. {
  24. return Grid::make(new WxUserInviteTempCode(), function (Grid $grid) {
  25. $grid->model()->orderBy('id', 'desc');
  26. $grid->column('id')->sortable();
  27. $grid->column('type')->using([1=>'传单', 2=>'桌牌'])->label([1=>'#28a745', 2=>'#007bff']);
  28. $grid->column('code')->image('', 50, 50);
  29. $grid->column('path');
  30. $grid->column('owers', '头像')->display(function ($v) {
  31. if(_empty_($this->ower)){
  32. return '';
  33. }
  34. return '<img src="' . ($this->ower['user_avatar'] ?? Settings::get('img_default', 'https://img.mini.minisns.cn/icons/dafault.png')) . '" style="border-radius:50px;width:30px;" />';
  35. })->width('50px');
  36. $grid->column('ower', '用户名称')->display(function ($v) {
  37. if(_empty_($this->code)){
  38. $scene = 'from_user=itc'.$this->id;
  39. if($this->tenant_id !== null && $this->tenant_id >= 0){
  40. if(!_empty_($scene)){
  41. $scene .= '&';
  42. }
  43. $scene .= 'tenant='.$this->tenant_id;
  44. }
  45. if(!_empty_($this->scene) && strlen($scene) < 32){
  46. if(!_empty_($scene)){
  47. $scene .= '&';
  48. }
  49. $scene .= $this->scene;
  50. }
  51. $code = Utils::getMiniCode(_empty_default_($this->path, '/pages/tabbar/index/index') , $scene, 0, 430, false, null, true);
  52. \App\Models\User\WxUserInviteTempCode::where('id', $this->id)->update(['code' => $code]);
  53. }
  54. if($v && $v['user_name']){
  55. return '<a target="_blank" href="'.admin_url('users?id='.$v['id']).'">'.$v['user_name'].'</a>' ?? '用户已删除';
  56. }
  57. return '';
  58. })->width('100px');
  59. $grid->column('shop_id');
  60. $grid->column('club_id');
  61. $grid->column('circle_id');
  62. $grid->column('tag_id');
  63. $grid->column('voter_id');
  64. $grid->column('tenant_id');
  65. $grid->column('status')->using([0=>'待绑定', 1=>'已绑定', 2=>'已解绑'])->label([0=>'#5ac725', 1=>'primary', 2=>'gray']);
  66. $grid->column('created_at');
  67. $grid->column('updated_at')->sortable();
  68. $grid->tools([
  69. new UserInviteTmpCodeBatchButton(),
  70. new UserInviteTmpCodeBgButton()
  71. ]);
  72. $grid->filter(function (Grid\Filter $filter) {
  73. $filter->equal('id');
  74. });
  75. $grid->batchActions(function ($batch) {
  76. $batch->add(new UserInviteTmpCodeDownBatchAction());
  77. $batch->add(new UserInviteTmpCodeBgDownBatchAction());
  78. });
  79. });
  80. }
  81. /**
  82. * Make a show builder.
  83. *
  84. * @param mixed $id
  85. *
  86. * @return Show
  87. */
  88. protected function detail($id)
  89. {
  90. return Show::make($id, new WxUserInviteTempCode(), function (Show $show) {
  91. $show->field('id');
  92. $show->field('type');
  93. $show->field('code');
  94. $show->field('path');
  95. $show->field('scene');
  96. $show->field('with_target_type');
  97. $show->field('with_target_id');
  98. $show->field('user_id');
  99. $show->field('shop_id');
  100. $show->field('club_id');
  101. $show->field('circle_id');
  102. $show->field('tag_id');
  103. $show->field('voter_id');
  104. $show->field('tenant_id');
  105. $show->field('status');
  106. $show->field('created_at');
  107. $show->field('updated_at');
  108. });
  109. }
  110. /**
  111. * Make a form builder.
  112. *
  113. * @return Form
  114. */
  115. protected function form()
  116. {
  117. return Form::make(new WxUserInviteTempCode(), function (Form $form) {
  118. $form->display('id');
  119. $form->radio('type')->options([1=>'传单', 2=>'桌牌'])->default(1);
  120. $form->text('path')->default('/pages/tabbar/index/index');
  121. $form->text('user_id');
  122. // $form->text('shop_id');
  123. // $form->text('club_id');
  124. // $form->text('circle_id');
  125. // $form->text('tag_id');
  126. // $form->text('voter_id');
  127. $form->select('tenant_id')->options(WxTenant::orderBy('order', 'desc')->orderBy('tenant_id')->pluck('name', 'tenant_id'));
  128. // $form->text('status');
  129. $form->display('created_at');
  130. $form->display('updated_at');
  131. });
  132. }
  133. }