| 
						 | 
						<?php
namespace App\AdminSettled\Controllers;
use App\Admin\Repositories\Agent;use App\AdminSettled\Common\SettledPay;use App\Common\AgentType;use App\Common\UserStatus;use App\Models\AdminSetting;use App\Models\Supplier;use Dcat\Admin\Admin;use Dcat\Admin\Form;use Dcat\Admin\Http\Controllers\AdminController;use Dcat\Admin\Widgets\Alert;use Illuminate\Support\Facades\Config;use Illuminate\Support\Facades\Storage;
class AgentController extends AdminController{	protected $title = '代理商入驻';
	public function __construct()	{		admin_inject_section(Admin::SECTION['LEFT_SIDEBAR_MENU'], '');		app('view')->prependNamespace('admin', resource_path('views/admin'));	}
	protected function grid()	{		config::set('admin.helpers.enable', false);		$tip = '你可能需要		《<a href="' . admin_url('supplier/create') . '" style="color:#ef5228;">供应商入驻</a>》		《<a href="' . admin_url('agent/create') . '" style="color:#ef5228;">代理商入驻</a>》		《<a href="' . admin_url('guide/create') . '" style="color:#ef5228;">地接入驻</a>》';		return Alert::make($tip, '页面不存在')->danger();	}
	/**     * Make a show builder.     *     * @param mixed $id     */    protected function detail($id)    {		config::set('admin.helpers.enable', false);		return Alert::make('', '页面不存在')->danger();    }
    /**     * Make a form builder.     *     * @return Form     */    protected function form()    {		config::set('admin.helpers.enable', false);        return Form::make(new Agent(), function (Form $form) {			$form->disableListButton();			$form->disableViewCheck();			$form->disableCreatingCheck();			$form->disableEditingCheck();			$form->disableDeleteButton();
			$form->text('username')->required();			$form->password('password')->minLength(6, '密码最少6个字符')->required();            $form->text('name')->required();//            $form->text('appid')->placeholder('可以先不填,审核通过之后再设置');
//            $form->text('appsecret')->placeholder('可以先不填,审核通过之后再设置');
//            $form->text('mchid')->placeholder('可以先不填,审核通过之后再设置');
//            $form->text('mchkey')->placeholder('可以先不填,审核通过之后再设置');
			$form->radio('type')				->options(AgentType::array())				->default(AgentType::CLUSTER)				->required();            $form->text('company_name')->required()->help('请正确填写,保持跟营业执照上的完全一致,如:海南易游天下供应链有限公司');			$form->text('address')->required();			$form->distpicker(['province_id', 'city_id', 'area_id'], '请选择区域')->required();            $form->multipleImage('license')->required()->removable(false)->uniqueName();            $form->image('business_license')->required()->removable(false)->uniqueName();			$form->text('credit_codes')->required()->help('请正确填写,保持跟营业执照上的完全一致,如:91440300577652919M');            $form->text('corporate_account')->required()->help('非常重要,该账号作为默认提现账号');            $form->text('deposit_bank')->required();            $form->text('director')->required();            $form->text('contact_phone')->required()->maxLength(15);            $form->text('contact_mobile')->required()->maxLength(11)->help('此号码将用于接收短信提醒(如订单提醒、付款提醒、核销提醒等)');            $form->text('legal_persona_name')->required()->maxLength(20)->help('很重要,注册小程序时需要用到,用于实名认证');            $form->text('legal_persona_wechat')->required()->maxLength(100)->help('很重要,用于接收实名认证信息,不能是手机号或QQ号,微信号请前往微信“我的”页面查看');
			$contract_template = Storage::disk('public')->url(AdminSetting::val('settled_agent_contract'));			$form->image('contract')->required()->uniqueName()				->help('请先 <a target="_blank" href="' . $contract_template . '" download="【易游天下】代理商入驻合同模板">下载入驻合同</a> 并打印,填写完毕之后盖好公章再上传。');
			$agreement_template = Storage::disk('public')->url(AdminSetting::val('settled_agent_agreement'));			$form->checkbox('agreement', '')->required()				->options([1 => '我已认真阅读并完全认同'])->customFormat(fn() => '')				->script('$(function(){					$(".field_agreement").parent().css("margin-right", 0).after(\'《<a target="_blank" href="'.$agreement_template.'" download="【易游天下】入驻协议">入驻协议</a>》\');
				});');			Admin::js('@qrcode');        })->saving(function (Form $form) {        	//禁止编辑
			if ($form->isEditing()) {				return $form->response()->error('服务器出错了~~');			}
			if (empty(array_filter($form->agreement))) {				return $form->response()->error('你必须同意入驻协议才能入驻');			}			$form->deleteInput('agreement');
			//判断账号是否唯一
			if ($form->repository()->model()->where('username', $form->username)->exists()) {				return $form->response()->error($form->username . ' 的账号已经存在');			}
			//判断公司名称是否唯一
			if ($form->repository()->model()->where(['company_name' => $form->company_name, 'credit_codes' => $form->credit_codes])->exists()) {				return $form->response()->error("公司名称 {$form->company_name} 已经存在");			}
			//如果是供应商版旅行社,也不能存在相同的供应商账号,因为后台审核之后需要再次插入相同的供应商账号
			if ($form->type == AgentType::SUPPLIER && Supplier::where('username', $form->username)->exists()) {				return $form->response()->error($form->username . ' 的账号已经存在');			}
        	//过滤null字段
        	foreach($form->input() as $k => $v) {        		if (is_null($v)) {					$form->$k = '';				}			}
			//不允许编辑的字段
			$form->ignore(['id', 'remember_token', 'username', 'rate', 'created_at', 'updated_at', 'deleted_at']);
        	//处理特殊字段
			$form->hidden(['status', 'rate']);			$form->status = UserStatus::UNAUDITED;        	$form->rate = 5;			$form->type = in_array($form->type, AgentType::key()) ? $form->type : AgentType::CLUSTER;		})->saved(function (Form $form) {			$js = (new SettledPay)->PayJs($form->repository()->model());			return $form->response()->success('操作成功,继续支付入驻费完成入驻')->script($js);		})->deleting(function (Form $form) {			return $form->response()->error('服务器出错了~~');		});    }}
  |