作者 lyh

gx

@@ -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