正在显示
1 个修改的文件
包含
53 行增加
和
19 行删除
| @@ -14,15 +14,52 @@ use Illuminate\Support\Facades\Cache; | @@ -14,15 +14,52 @@ use Illuminate\Support\Facades\Cache; | ||
| 14 | 14 | ||
| 15 | class UserLoginLogic | 15 | class UserLoginLogic |
| 16 | { | 16 | { |
| 17 | + protected $model; | ||
| 18 | + protected $param; | ||
| 19 | + | ||
| 20 | + public function __construct() | ||
| 21 | + { | ||
| 22 | + //验证账号密码 | ||
| 23 | + $this->param = request()->all(); | ||
| 24 | + $this->model = new User(); | ||
| 25 | + } | ||
| 26 | + | ||
| 17 | /*** | 27 | /*** |
| 18 | * @name :登录 | 28 | * @name :登录 |
| 19 | * @author :liyuhang | 29 | * @author :liyuhang |
| 20 | * @method | 30 | * @method |
| 21 | */ | 31 | */ |
| 22 | public function login(){ | 32 | public function login(){ |
| 23 | - //验证账号密码 | ||
| 24 | - $this->param = request()->all(); | ||
| 25 | - $this->model = new User(); | 33 | + //验证账号密码是否正确 |
| 34 | + $info = $this->verifyAccount(); | ||
| 35 | + //验证角色是否被禁用+获取项目详情 | ||
| 36 | + $info = $this->verifyRole($info); | ||
| 37 | + if(isset($info['token']) && !empty($info['token'])){ | ||
| 38 | + //清除上一次用户缓存 | ||
| 39 | + Cache::pull($info['token']); | ||
| 40 | + } | ||
| 41 | + //生成新token | ||
| 42 | + $token = md5(uniqid().$info['id']); | ||
| 43 | + //存储缓存 | ||
| 44 | + $info['token'] = $token; | ||
| 45 | + Cache::add($token,$info); | ||
| 46 | + //更新用户信息 | ||
| 47 | + $rs = $this->model->edit(['token'=>$token],['id'=>$info['id']]); | ||
| 48 | + if($rs === false){ | ||
| 49 | + $this->fail('系统错误,请联系管理员'); | ||
| 50 | + } | ||
| 51 | + //写入日志 | ||
| 52 | + Common::set_user_login(['user_id'=>$info['id'],'ip'=>request()->ip()]); | ||
| 53 | + return $this->success($info); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + /** | ||
| 57 | + * @name :(验证账号、密码或验证码是否正确)verifyAccount | ||
| 58 | + * @author :lyh | ||
| 59 | + * @method :post | ||
| 60 | + * @time :2023/6/12 15:31 | ||
| 61 | + */ | ||
| 62 | + public function verifyAccount(){ | ||
| 26 | $password = base64_encode(md5($this->param['password'])); | 63 | $password = base64_encode(md5($this->param['password'])); |
| 27 | $info = $this->model->read(['mobile'=>$this->param['mobile'],'password'=>$password,'status'=>0], ['id','mobile','role_id','token','name','project_id']); | 64 | $info = $this->model->read(['mobile'=>$this->param['mobile'],'password'=>$password,'status'=>0], ['id','mobile','role_id','token','name','project_id']); |
| 28 | if($info === false){ | 65 | if($info === false){ |
| @@ -37,34 +74,31 @@ class UserLoginLogic | @@ -37,34 +74,31 @@ class UserLoginLogic | ||
| 37 | $this->fail('账号密码错误',Code::USER_REGISTER_ERROE); | 74 | $this->fail('账号密码错误',Code::USER_REGISTER_ERROE); |
| 38 | } | 75 | } |
| 39 | } | 76 | } |
| 77 | + return $this->success($info); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * @name :(验证角色是否禁用)verifyRole | ||
| 82 | + * @author :lyh | ||
| 83 | + * @method :post | ||
| 84 | + * @time :2023/6/12 15:34 | ||
| 85 | + */ | ||
| 86 | + public function verifyRole($info){ | ||
| 40 | //当前用户角色是否被禁用 | 87 | //当前用户角色是否被禁用 |
| 41 | $projectRoleModel = new ProjectRoleModel(); | 88 | $projectRoleModel = new ProjectRoleModel(); |
| 42 | $role_info = $projectRoleModel->read(['id'=>$info['role_id'],'status'=>0]); | 89 | $role_info = $projectRoleModel->read(['id'=>$info['role_id'],'status'=>0]); |
| 43 | if($role_info === false){ | 90 | if($role_info === false){ |
| 44 | $this->fail('当前用户角色被禁用',Code::USER_REGISTER_ERROE); | 91 | $this->fail('当前用户角色被禁用',Code::USER_REGISTER_ERROE); |
| 45 | } | 92 | } |
| 46 | - if(isset($info['token']) && !empty($info['token'])){ | ||
| 47 | - //清除上一次用户缓存 | ||
| 48 | - Cache::pull($info['token']); | ||
| 49 | - } | ||
| 50 | - //生成新token | ||
| 51 | - $token = md5(uniqid().$info['id']); | ||
| 52 | - //存储缓存 | ||
| 53 | - $info['token'] = $token; | ||
| 54 | - Cache::add($token,$info); | ||
| 55 | - $rs = $this->model->edit(['token'=>$token],['id'=>$info['id']]); | ||
| 56 | - if($rs === false){ | ||
| 57 | - $this->fail('系统错误,请联系管理员'); | ||
| 58 | - } | ||
| 59 | $project = (new ProjectLogic())->getInfo($info['project_id']); | 93 | $project = (new ProjectLogic())->getInfo($info['project_id']); |
| 60 | $info['company'] = $project['company'] ?? ''; | 94 | $info['company'] = $project['company'] ?? ''; |
| 61 | $info['plan'] = $project['deploy_build']['plan'][0] ?? ''; | 95 | $info['plan'] = $project['deploy_build']['plan'][0] ?? ''; |
| 62 | - $info['domain'] = !empty($project['deploy_optimize']['domain']) ? $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? ''); | ||
| 63 | - //写入日志 | ||
| 64 | - Common::set_user_login(['user_id'=>$info['id'],'ip'=>request()->ip()]); | 96 | + $info['domain'] = !empty($project['deploy_optimize']['domain']) ? |
| 97 | + $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? ''); | ||
| 65 | return $this->success($info); | 98 | return $this->success($info); |
| 66 | } | 99 | } |
| 67 | 100 | ||
| 101 | + | ||
| 68 | /** | 102 | /** |
| 69 | * @notes: 请简要描述方法功能 | 103 | * @notes: 请简要描述方法功能 |
| 70 | * @param array $data | 104 | * @param array $data |
-
请 注册 或 登录 后发表评论