98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\shop\validate\kefu; | ||
|  | 
 | ||
|  | use app\common\basics\Validate; | ||
|  | use app\common\model\kefu\Kefu; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 客服验证逻辑 | ||
|  |  * Class KefuValidate | ||
|  |  * @package app\admin\validate\content | ||
|  |  */ | ||
|  | class KefuValidate extends Validate | ||
|  | { | ||
|  |     protected $rule = [ | ||
|  |         'id' => 'require|number', | ||
|  |         'admin_id' => 'require|number|checkIsKefu', | ||
|  |         'avatar' => 'require', | ||
|  |         'nickname' => 'require', | ||
|  |         'disable' => 'require|in:0,1', | ||
|  |         'sort' => 'gt:0' | ||
|  |     ]; | ||
|  | 
 | ||
|  |     protected $message = [ | ||
|  |         'id.require' => 'id不可为空', | ||
|  |         'id.number' => 'id必须为数字', | ||
|  |         'admin_id.require' => '请选择管理员', | ||
|  |         'admin_id.number' => '管理员选择异常', | ||
|  |         'avatar.require' => '请选择头像', | ||
|  |         'nickname.require' => '请填写客服昵称', | ||
|  |         'disable.require' => '请选择状态', | ||
|  |         'disable.in' => '状态错误', | ||
|  |         'sort.gt' => '排序需大于0', | ||
|  |     ]; | ||
|  | 
 | ||
|  | 
 | ||
|  |     public function sceneAdd() | ||
|  |     { | ||
|  |         $this->remove('id', true); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function sceneEdit() | ||
|  |     { | ||
|  |         $this->remove('admin_id',true); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function sceneDel() | ||
|  |     { | ||
|  |         $this->only(['id'])->append('id', 'checkIsDel'); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 选中管理员是否已为客服 | ||
|  |      * @param $value | ||
|  |      * @param $rule | ||
|  |      * @param array $data | ||
|  |      * @return bool|string | ||
|  |      * @author 段誉 | ||
|  |      * @date 2021/11/26 18:56 | ||
|  |      */ | ||
|  |     protected function checkIsKefu($value, $rule, $data = []) | ||
|  |     { | ||
|  |         $check = Kefu::where([ | ||
|  |             'admin_id' => $value, | ||
|  |             'shop_id' => $data['shop_id'], | ||
|  |             'del' => 0 | ||
|  |         ])->findOrEmpty(); | ||
|  | 
 | ||
|  |         if (!$check->isEmpty()) { | ||
|  |             return "该管理员已是客服"; | ||
|  |         } | ||
|  | 
 | ||
|  |         return true; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 客服是否存在 | ||
|  |      * @param $value | ||
|  |      * @param $rule | ||
|  |      * @param array $data | ||
|  |      * @return bool|string | ||
|  |      * @author 段誉 | ||
|  |      * @date 2021/11/26 18:57 | ||
|  |      */ | ||
|  |     protected function checkIsDel($value, $rule, $data = []) | ||
|  |     { | ||
|  |         $check = Kefu::where(['id' => $value, 'del' => 0])->findOrEmpty(); | ||
|  | 
 | ||
|  |         if ($check->isEmpty()) { | ||
|  |             return "该客服数据错误"; | ||
|  |         } | ||
|  | 
 | ||
|  |         return true; | ||
|  |     } | ||
|  | 
 | ||
|  | } |