录入新员工手机号唯一,邮箱唯一的方法优化,支持通过手机号码+密码登录

This commit is contained in:
hdm 2023-04-20 15:34:13 +08:00
parent 1a84a02feb
commit 868b54fb1a
4 changed files with 22 additions and 14 deletions

View File

@ -36,7 +36,7 @@ function get_system_config($name, $key = '')
$config = get_cache('system_config' . $name);
} else {
$conf = Db::name('config')->where('name', $name)->find();
if ($conf['content']) {
if (isset($conf['content'])) {
$config = unserialize($conf['content']);
}
set_cache('system_config' . $name, $config);

View File

@ -36,12 +36,12 @@ class Login
if (empty($admin)) {
$admin = Db::name('Admin')->where(['mobile' => $param['username']])->find();
if (empty($admin)) {
return to_assign(1, '用户名或码错误');
return to_assign(1, '用户名或手机号码错误');
}
}
$param['pwd'] = set_password($param['password'], $admin['salt']);
if ($admin['pwd'] !== $param['pwd']) {
return to_assign(1, '用户或密码错误');
return to_assign(1, '用户或密码错误');
}
if ($admin['status'] != 1) {
return to_assign(1, '该用户禁止登录,请与管理者联系');

View File

@ -47,7 +47,7 @@
<div class="bottom">
<form class="layui-form" id="gougu-login">
<div class="layui-form-item">
<input type="text" name="username" lay-verify="required" value="" placeholder="请输入账户" lay-reqText="请输入账户" autocomplete="off" class="layui-input">
<input type="text" name="username" lay-verify="required" value="" placeholder="请输入账户或手机号码" lay-reqText="请输入账户或手机号码" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-item">
<input type="password" name="password" lay-verify="required" value="" placeholder="请输入密码" lay-reqText="请输入密码" autocomplete="off" class="layui-input">

View File

@ -13,17 +13,26 @@ class AdminCheck extends Validate
{
protected $regex = [ 'checkUser' => '/^[A-Za-z]{1}[A-Za-z0-9_-]{3,19}$/'];
// 自定义验证规则
protected function checkone($value,$rule,$data=[])
{
$count = Db::name('Admin')->where([['username','=',$data['username']],['id','<>',$data['id']],['status','>=',0]])->count();
return $count == 0 ? true : false;
}
protected function checkUnique($value, $rule, $data)
{
[$table, $field, $id] = explode(',', $rule);
$idField = $id ?: 'id';
$idValue = $data[$idField] ?? null;
$map = [
[$field, '=', $value],
];
if (!is_null($idValue)) {
$map[] = [$idField, '<>', $idValue];
}
$map[] = ['status', '>=', 0];
return !Db::name($table)->where($map)->count();
}
protected $rule = [
'name' => 'require|chs',
'username' => 'require|regex:checkUser',
'mobile' => 'require|mobile|unique:admin',
'email' => 'require|email|unique:admin',
'mobile' => 'require|mobile|checkUnique:Admin,mobile,id',
'email' => 'require|email|checkUnique:Admin,email,id',
'reg_pwd' => 'require|min:6',
'did' => 'require',
'position_id' => 'require',
@ -40,13 +49,12 @@ class AdminCheck extends Validate
'name.chs' => '员工姓名只能是汉字',
'username.require' => '登录账号不能为空',
'username.regex' => '登录账号必须是以字母开头只能包含字母数字下划线和减号4到20位',
'username.checkone' => '同样的登录账号已经存在建议增加数字xxx123',
'mobile.require' => '手机不能为空',
'mobile.mobile' => '手机格式错误',
'mobile.unique' => '同样的手机号码已经存在,请检查一下是否被离职或者禁用员工占用',
'mobile.checkUnique' => '同样的手机号码已经存在,请检查一下是否被离职或者禁用员工占用',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式错误',
'email.unique' => '同样的邮箱已经存在,请检查一下是否被离职或者禁用员工占用',
'email.checkUnique' => '同样的邮箱已经存在,请检查一下是否被离职或者禁用员工占用',
'reg_pwd.require' => '密码不能为空',
'reg_pwd.min' => '密码至少要6个字符',
'did.require' => '请选择所在部门',