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

128 lines
5.2 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  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 App\Models\Supplier;
  7. use Dcat\Admin\Admin;
  8. use Dcat\Admin\Form;
  9. use Dcat\Admin\Http\Controllers\AdminController;
  10. use Dcat\Admin\Widgets\Alert;
  11. use Illuminate\Support\Facades\Config;
  12. class AgentController extends AdminController
  13. {
  14. protected $title = '代理商入驻';
  15. public function __construct()
  16. {
  17. admin_inject_section(Admin::SECTION['LEFT_SIDEBAR_MENU'], '');
  18. app('view')->prependNamespace('admin', resource_path('views/admin'));
  19. }
  20. protected function grid()
  21. {
  22. config::set('admin.helpers.enable', false);
  23. $tip = '你可能需要
  24. <a href="' . admin_url('supplier/create') . '" style="color:#ef5228;">供应商入驻</a>
  25. <a href="' . admin_url('agent/create') . '" style="color:#ef5228;">代理商入驻</a>
  26. <a href="' . admin_url('guide/create') . '" style="color:#ef5228;">地接入驻</a>';
  27. return Alert::make($tip, '页面不存在')->danger();
  28. }
  29. /**
  30. * Make a show builder.
  31. *
  32. * @param mixed $id
  33. */
  34. protected function detail($id)
  35. {
  36. config::set('admin.helpers.enable', false);
  37. return Alert::make('', '页面不存在')->danger();
  38. }
  39. /**
  40. * Make a form builder.
  41. *
  42. * @return Form
  43. */
  44. protected function form()
  45. {
  46. config::set('admin.helpers.enable', false);
  47. return Form::make(new Agent(), function (Form $form) {
  48. $form->disableListButton();
  49. $form->disableViewCheck();
  50. $form->disableCreatingCheck();
  51. $form->disableEditingCheck();
  52. $form->disableDeleteButton();
  53. $form->text('username')->required();
  54. $form->password('password')->minLength(6, '密码最少6个字符')->required();
  55. $form->text('name')->required();
  56. // $form->text('appid')->placeholder('可以先不填,审核通过之后再设置');
  57. // $form->text('appsecret')->placeholder('可以先不填,审核通过之后再设置');
  58. // $form->text('mchid')->placeholder('可以先不填,审核通过之后再设置');
  59. // $form->text('mchkey')->placeholder('可以先不填,审核通过之后再设置');
  60. $form->radio('type')
  61. ->options(AgentType::array())
  62. ->default(AgentType::OPERATOR)
  63. ->required();
  64. $form->text('company_name')->required()->help('请正确填写,保持跟营业执照上的完全一致,如:海南易游天下供应链有限公司');
  65. $form->text('credit_codes')->required()->help('请正确填写,保持跟营业执照上的完全一致,如:91440300577652919M');
  66. $form->distpicker(['province_id', 'city_id', 'area_id'], '请选择区域')->required();
  67. $form->image('logo')->required()->removable(false)->uniqueName();
  68. $form->text('address')->required();
  69. $form->image('license_pic')->required()->removable(false)->uniqueName();
  70. $form->text('director')->required();
  71. $form->text('contact_phone')->required()->maxLength(13);
  72. $form->text('legal_persona_name')->required()->maxLength(20)->help('很重要,注册小程序时需要用到,用于实名认证');
  73. $form->text('legal_persona_wechat')->required()->maxLength(100)->help('很重要,用于接收实名认证信息,不能是手机号或QQ号,微信号请前往微信“我的”页面查看');
  74. })->saving(function (Form $form) {
  75. if ($form->isEditing()) {
  76. return $form->response()->error('服务器出错了~~');
  77. }
  78. //判断账号是否唯一
  79. if ($form->repository()->model()->where('username', $form->username)->exists()) {
  80. return $form->response()->error($form->username . ' 的账号已经存在');
  81. }
  82. //判断公司名称是否唯一
  83. if ($form->repository()->model()->where(['company_name' => $form->company_name, 'credit_codes' => $form->credit_codes])->exists()) {
  84. return $form->response()->error("公司名称 {$form->company_name} 已经存在");
  85. }
  86. //如果是供应商版旅行社,也不能存在相同的供应商账号,因为后台审核之后需要再次插入相同的供应商账号
  87. if ($form->type == AgentType::SUPPLIER && Supplier::where('username', $form->username)->exists()) {
  88. return $form->response()->error($form->username . ' 的账号已经存在');
  89. }
  90. //不允许编辑的字段
  91. if ($form->isEditing()) {
  92. $form->ignore(['id', 'remember_token', 'username', 'rate', 'created_at', 'updated_at', 'deleted_at']);
  93. }
  94. //过滤null字段
  95. foreach($form->input() as $k => $v) {
  96. if (is_null($v)) {
  97. $form->$k = '';
  98. }
  99. }
  100. //处理特殊字段
  101. $form->status = UserStatus::UNAUDITED;
  102. $form->rate = 0.05;
  103. // $form->appid = $form->appid ?: '暂未填写';
  104. // $form->appsecret = $form->appsecret ?: '暂未填写';
  105. // $form->mchid = $form->appid ?: '暂未填写';
  106. // $form->mchkey = $form->appid ?: '暂未填写';
  107. $form->type = in_array($form->type, UserStatus::array()) ? $form->type : AgentType::OPERATOR;
  108. })->saved(function (Form $form) {
  109. return $form->response()->success('操作成功,请等待管理员审核');
  110. })->deleting(function (Form $form) {
  111. return $form->response()->error('服务器出错了~~');
  112. });
  113. }
  114. }