glhcp/server/app/admin/validate/kefu/KefuValidate.php

98 lines
2.2 KiB
PHP

<?php
namespace app\admin\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' => 0,
'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;
}
}