alias('u') ->join('phome_sys_role r', 'u.roleid = r.roleid') ->field('u.userid,u.username,u.nickname,u.truename,u.email,u.status,u.per_time,u.per_ip,u.login_num,u.create_time,r.name as rolename') ->select(); } else { return Db::table('phome_sys_user')->alias('u') ->join('phome_sys_role r', 'u.roleid = r.roleid') ->where('u.roleid', '<>', 1) ->field('u.userid,u.username,u.nickname,u.truename,u.email,u.status,u.per_time,u.per_ip,u.login_num,u.create_time,r.name as rolename') ->select(); } } public function getUsernames($role_id = null) { if ($role_id == null) { return $this->column('id, username'); } else { $data = $this->where('role_id', $role_id)->column('username'); if ($data) { return implode(',', $data); } else { return null; } } } public static function checkLogin() { $ip = Request::ip(); $time = time(); $datetime = date('Y-m-d H:i:s', $time); if (!SysLoginFail::checkIp($ip, $time)) { return json(['code' => 1, 'msg' => '登录次数超过10次, 请等1小时后再试']); } $username = Request::param("username", '', 'strip_tags'); $password = Request::param("password", '', 'strip_tags'); if (!$username || !$password) { return json(['code' => 1, 'msg' => '用户名/密码/验证码不能为空']); } if (false === Request::checkToken('__token__')) { return json(['error' => 1, 'msg' => '验证有误']); } $info = self::where('username', $username)->find(); if (!$info) { SysLoginFail::saveFail($ip, $time); return json(['code' => 2, 'msg' => '用户名/密码不正确']); } if (md5($password . $info->salt) != $info->password) { // 记录失败 SysLoginFail::saveFail($ip, $time); SysLogin::record($info->userid, $info->username, $datetime, $ip, 1); return json(['code' => 2, 'msg' => '用户名/密码不正确']); } if ($info->status == 1) { // 更新登录IP,登录时间和更新次数 $perTime = $info->per_time; $perIp = $info->per_ip; $info->per_time = date('Y-m-d H:i:s', $time); $info->per_ip = $ip; $info->login_num += 1; $info->save(); Session::set('adminuser', [ 'userid' => $info->userid, 'username' => $info->username, 'perTime' => $perTime, 'perIp' => $perIp, 'nickname' => $info->nickname, 'avatar' => $info->avatar, 'loginNum' => $info->loginNum, 'roleid' => $info->roleid ]); // 记录登录 SysLogin::record($info->userid, $info->username, $datetime, $ip); return json(['code' => 0, 'msg' => '登录成功']); } else { // 记录失败 SysLogin::record($info->userid, $info->username, $datetime, $ip, 1); return json(['code' => 2, 'msg' => '用户已被禁用!']); } } }