<?php namespace App\Http\Validators; use App\Model\SupplierChannelModel; use App\Model\SupplierContactModel; use Validator; class SupplierContactValidator { public function checkSave($data) { $data = BatchTrim($data); $rules = [ "supplier_consignee" => "required", "supplier_email" => "required|email", "supplier_mobile" => "required", "supplier_telephone" => "required", "supplier_position" => "required", "can_check_uids" => "required", ]; $messages = $this->messages(); $validator = Validator::make($data, $rules, $messages); //判断联系方式的表单验证 if ($validator->fails()) { return $validator->errors()->first(); } $contactModel = new SupplierContactModel(); //如果是原厂或者代理商性质的供应商,联系人不能重复 $supplierModel = new SupplierChannelModel(); $supplier = $supplierModel->where('supplier_id', $data['supplier_id'])->first()->toArray(); if ($supplier['supplier_group'] == 1 || $supplier['supplier_group'] == 4) { $query = $contactModel->where('supplier_id', $data['supplier_id']) ->where(function ($q) use ($data) { $q->where('supplier_email', $data['supplier_email']) ->orWhere('supplier_mobile', $data['supplier_mobile']); }); //新增 if (empty($data['contact_id'])) { $count = $query->count(); } else { //修改 $count = $query->where('contact_id', '!=', $data['contact_id'])->count(); } if ($count) { return '原厂或者代理商性质的供应商不允许重复的联系人,<br>该供应商已经存在手机号或者邮箱一样的联系人,请联系管理人员查看具体详情'; } } } private function messages() { return [ 'supplier_consignee.required' => '联系人 不能为空', 'supplier_email.required' => '联系人邮箱 不能为空', 'supplier_email.email' => '邮箱格式不对', 'supplier_mobile.required' => '联系人电话 不能为空', 'supplier_telephone.required' => '联系人座机 不能为空', 'supplier_position.required' => '联系人职位 不能为空', 'can_check_uids.required' => '采购员 不能为空', ]; } }