海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.0 KiB

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Extensions\Grid\MiniProgramAuditStatus;
  4. use App\Admin\Extensions\Grid\MiniProgramPull;
  5. use App\Admin\Extensions\Grid\MiniProgramReg;
  6. use App\Admin\Extensions\Grid\MiniProgramUpload;
  7. use App\Common\AgentType;
  8. use App\Common\UserStatus;
  9. use App\Models\Agent;
  10. use App\Models\MiniProgramTemplate;
  11. use Dcat\Admin\Grid;
  12. use Dcat\Admin\Http\Controllers\AdminController;
  13. class MiniProgramController extends AdminController
  14. {
  15. protected $title = '小程序管理';
  16. protected $translation = 'agent';
  17. /**
  18. * Make a grid builder.
  19. *
  20. * @return Grid
  21. */
  22. protected function grid()
  23. {
  24. return Grid::make(new Agent(), function (Grid $grid) {
  25. $grid->disableRowSelector();
  26. $grid->disableCreateButton();
  27. $grid->disableActions();
  28. $grid->model()
  29. ->whereIn('type', [AgentType::CLUSTER, AgentType::SUPPLIER])
  30. ->where([['status', '=', UserStatus::NORMAL], ['id', '>', 1]]); //隐藏ID=1的领峰云管理员
  31. $grid->tools(new MiniProgramPull('更新小程序模板'));
  32. $grid->column('id')->sortable();
  33. $grid->column('username');
  34. $grid->column('appid');
  35. $grid->column('name');
  36. $grid->column('company_name');
  37. $grid->column('created_at');
  38. $last_template_id = MiniProgramTemplate::max('template_id');
  39. $grid->column('op', '操作')
  40. ->style('min-width:7em;')
  41. ->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,并设置邮箱、头像、昵称等,再上传小程序即可')
  42. ->if(fn() => true)
  43. ->display('')
  44. ->then(function ($column) use ($last_template_id) {
  45. $is_success = $this->miniUpload->is_success ?? null;
  46. $template_id = $this->miniUpload->template_id ?? null;
  47. if (empty($this->appid)) { //注册小程序
  48. $column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append('&nbsp;');
  49. $column->append((new MiniProgramReg(null, 2))->setKey($this->id));
  50. } else if ($is_success === 0 && $template_id === $last_template_id) {
  51. $column->append("已发布(模板:{$template_id})");
  52. } else if (in_array($is_success, [-1, 2, 4])) { //如果状态是-1未检查过,或2审核中,或4审核延后,则显示审核状态按钮
  53. $column->append((new MiniProgramAuditStatus(null, 1))->setKey($this->id))->append('&nbsp;');
  54. $column->append((new MiniProgramAuditStatus(null, 2))->setKey($this->id));
  55. } else {
  56. $column->append((new MiniProgramUpload(null, 1))->setKey($this->id));
  57. $statusArr = [0 => '审核成功', 1 => '审核被拒绝', 2 => '审核中', 3 => '已撤回', 4 => '审核延后'];
  58. if (isset($is_success, $statusArr[$is_success])) {
  59. $column->append('<br>(模板' . $template_id . $statusArr[$is_success] . ')');
  60. }
  61. }
  62. });
  63. $grid->filter(function (Grid\Filter $filter) {
  64. $filter->panel();
  65. $filter->equal('id')->width(2);
  66. $filter->like('name')->width(3);
  67. $filter->like('company_name')->width(3);
  68. });
  69. });
  70. }
  71. }