作者 lyh

gx

... ... @@ -38,11 +38,12 @@ class LoginLogic extends BaseLogic
*/
public function login()
{
$info = $this->model->read(['mobile'=>$this->param['mobile']],['id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role']);
if($info === false){
$manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role')
->where('mobile', $this->param['mobile'])->first();
if (!$manage){
$this->fail('登录用户名不存在');
}
if (Manage::STATUS_DISABLE == $info['status']) {
if (Manage::STATUS_DISABLE == $manage->status) {
$this->fail('帐号已被禁用');
}
//查看当前账号下有几个项目
... ... @@ -50,25 +51,29 @@ class LoginLogic extends BaseLogic
$this->fail('请使用短信登录,修改初始密码');
}
$type = 1;//账号密码登录
if (!Hash::check($this->param['password'], $info['password'])) {
if (!Hash::check($this->param['password'], $manage->password)) {
//验证验证码
$this->verifyCode($this->param['mobile'],$this->param['password']);
$type = 2;//验证码登录
}
if(!empty($info['token'])){
if(!empty($manage['token'])){
//清除上一次用户缓存
Cache::pull(Common::MANAGE_TOKEN . $info['token']);
Cache::pull(Common::MANAGE_TOKEN . $manage['token']);
}
//生成新token
$token = md5(uniqid().$info['id']);
$token = md5(uniqid().$manage['id']);
//存储缓存
$info['token'] = $token;
Cache::add(Common::MANAGE_TOKEN . $token,$info,3600 * 6);
$manage['token'] = $token;
Cache::add(Common::MANAGE_TOKEN . $token,$manage,3600);
//更新用户信息
$this->model->edit(['token'=>$token],['id'=>$info['id']]);
LoginLog::addLog($info['id'],$type);
$manage->token = $token;
$res = $manage->save();
if(!$res){
$this->fail('系统错误,请联系管理员');
}
LoginLog::addLog($manage->id,$type);
//获取当前用户特殊模块权限
$manage['special'] = $this->getSpecialMenu($info['id']);
$manage['special'] = $this->getSpecialMenu($manage['id']);
return $this->success($manage->makeVisible('token')->toArray());
}
... ...