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;
 | |
|     }
 | |
| 
 | |
| } |