海南旅游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.

81 lines
3.0 KiB

4 years ago
  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('company_name');
  36. $grid->column('created_at');
  37. $last_template_id = MiniProgramTemplate::max('template_id');
  38. $grid->column('op', '操作')
  39. ->style('min-width:7em;')
  40. ->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,并设置邮箱、头像、昵称等,再上传小程序即可')
  41. ->if(fn() => true)
  42. ->display('')
  43. ->then(function ($column) use ($last_template_id) {
  44. $is_success = $this->miniUpload->is_success ?? null;
  45. $template_id = $this->miniUpload->template_id ?? null;
  46. if (empty($this->appid)) { //注册小程序
  47. $column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append('&nbsp;');
  48. $column->append((new MiniProgramReg(null, 2))->setKey($this->id));
  49. } else if ($is_success === 0 && $template_id === $last_template_id) {
  50. $column->append("已发布最新模板");
  51. } else if (in_array($is_success, [-1, 2, 4])) { //如果状态是-1未检查过,或2审核中,或4审核延后,则显示审核状态按钮
  52. $column->append((new MiniProgramAuditStatus(null, 1))->setKey($this->id))->append('&nbsp;');
  53. $column->append((new MiniProgramAuditStatus(null, 2))->setKey($this->id));
  54. } else {
  55. $column->append((new MiniProgramUpload(null, 1))->setKey($this->id));
  56. $statusArr = [0 => '审核成功', 1 => '审核被拒绝', 2 => '审核中', 3 => '已撤回', 4 => '审核延后'];
  57. if (isset($is_success, $statusArr[$is_success])) {
  58. $column->append('<br>(模板' . $template_id . $statusArr[$is_success] . ')');
  59. }
  60. }
  61. });
  62. $grid->filter(function (Grid\Filter $filter) {
  63. $filter->panel();
  64. $filter->equal('id')->width(2);
  65. $filter->like('username')->width(3);
  66. $filter->like('company_name')->width(3);
  67. });
  68. });
  69. }
  70. }