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

113 lines
3.8 KiB

  1. <?php
  2. namespace App\AdminSettled\Controllers;
  3. use App\Admin\Repositories\Agent;
  4. use App\Common\AgentType;
  5. use App\Common\UserStatus;
  6. use Dcat\Admin\Admin;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. use Dcat\Admin\Widgets\Alert;
  10. use Illuminate\Support\Facades\Config;
  11. class AgentController extends AdminController
  12. {
  13. protected $title = '代理商入驻';
  14. public function __construct()
  15. {
  16. admin_inject_section(Admin::SECTION['LEFT_SIDEBAR_MENU'], '');
  17. app('view')->prependNamespace('admin', resource_path('views/admin'));
  18. }
  19. protected function grid()
  20. {
  21. config::set('admin.helpers.enable', false);
  22. $tip = '你可能需要
  23. <a href="' . admin_url('supplier/create') . '" style="color:#ef5228;">供应商入驻</a>
  24. <a href="' . admin_url('agent/create') . '" style="color:#ef5228;">代理商入驻</a>
  25. <a href="' . admin_url('guide/create') . '" style="color:#ef5228;">地接入驻</a>';
  26. return Alert::make($tip, '页面不存在')->danger();
  27. }
  28. /**
  29. * Make a show builder.
  30. *
  31. * @param mixed $id
  32. */
  33. protected function detail($id)
  34. {
  35. config::set('admin.helpers.enable', false);
  36. return Alert::make('', '页面不存在')->danger();
  37. }
  38. /**
  39. * Make a form builder.
  40. *
  41. * @return Form
  42. */
  43. protected function form()
  44. {
  45. config::set('admin.helpers.enable', false);
  46. return Form::make(new Agent(), function (Form $form) {
  47. $form->disableListButton();
  48. $form->disableViewCheck();
  49. $form->disableCreatingCheck();
  50. $form->disableEditingCheck();
  51. $form->disableDeleteButton();
  52. $form->text('username')->required();
  53. $form->text('password')->required();
  54. $form->text('name')->required();
  55. $form->text('appid')->placeholder('可以先不填,审核通过之后再设置');
  56. $form->text('appsecret')->placeholder('可以先不填,审核通过之后再设置');
  57. $form->text('mchid')->placeholder('可以先不填,审核通过之后再设置');
  58. $form->text('mchkey')->placeholder('可以先不填,审核通过之后再设置');
  59. $form->radio('type')
  60. ->options(AgentType::array())
  61. ->default(AgentType::OPERATOR)
  62. ->required();
  63. $form->text('company_name')->required();
  64. $form->image('logo')->required()->removable(false)->uniqueName();
  65. $form->text('address')->required();
  66. $form->image('license_pic')->required()->removable(false)->uniqueName();
  67. $form->text('director')->required();
  68. $form->text('contact_phone')->required()->maxLength(13);
  69. })->saving(function (Form $form) {
  70. if ($form->isEditing()) {
  71. return $form->response()->error('服务器出错了~~');
  72. }
  73. //判断账号是否唯一
  74. if ($form->repository()->model()->where('username', $form->username)->exists()) {
  75. return $form->response()->error($form->username . ' 的账号已经存在');
  76. }
  77. //不允许编辑的字段
  78. if ($form->isEditing()) {
  79. $form->ignore(['id', 'remember_token', 'username', 'rate', 'created_at', 'updated_at', 'deleted_at']);
  80. }
  81. //过滤null字段
  82. foreach($form->input() as $k => $v) {
  83. if (is_null($v)) {
  84. $form->$k = '';
  85. }
  86. }
  87. //处理特殊字段
  88. $form->status = UserStatus::UNAUDITED;
  89. $form->rate = 0.05;
  90. $form->appid = $form->appid ?: '暂未填写';
  91. $form->appsecret = $form->appsecret ?: '暂未填写';
  92. $form->mchid = $form->appid ?: '暂未填写';
  93. $form->mchkey = $form->appid ?: '暂未填写';
  94. $form->type = in_array($form->type, UserStatus::array()) ? $form->type : AgentType::OPERATOR;
  95. })->saved(function (Form $form) {
  96. return $form->response()->success('操作成功,请等待管理员审核');
  97. })->deleting(function (Form $form) {
  98. return $form->response()->error('服务器出错了~~');
  99. });
  100. }
  101. }