ComLogic.php 1.7 KB
<?php

namespace App\Http\Logic\Bside;

use App\Models\ProjectRole as ProjectRoleModel;
use App\Models\User as UserModel;
use Illuminate\Support\Facades\Cache;

class ComLogic extends BaseLogic
{
    /***
     * @name :登录
     * @return void
     * @author :liyuhang
     * @method
     */
    public function login($param){
        $userModel = new UserModel();
        if(!isset($param['login_method'])){
            //密码加密
            $param['password'] = base64_encode(md5($param['password']));
            $info = $userModel->read(['mobile'=>$param['mobile'],'password'=>$param['password'],'status'=>0], ['*']);
        }else{
            //TODO::验证验证码是否正确
            $info = $userModel->read(['mobile'=>$param['mobile']],['*']);
        }
        if(empty($info)){
            return false;
        }
        //当前用户角色是否被禁用
        $projectRoleModel = new ProjectRoleModel();
        $role_info = $projectRoleModel->read(['id'=>$info['role_id'],'status'=>0]);
        if(empty($role_info)){
           return false;
        }
        //验证码登录
        if(isset($info['token']) && !empty($info['token'])){
            //清除上一次用户缓存
            Cache::pull($info['token']);
        }
        //生成新token
        $token = md5(uniqid().$info['id']);
        //存储缓存
        Cache::add($token,$info);
        //更新数据库
        $data = [
            'id'=>$info['id'],
            'mobile'=>$info['mobile'],
            'name'=>$info['name']
        ];
        $rs = $userModel->edit(['token'=>$token],['id'=>$info['id']]);
        if($rs === false){
            return false;
        }
        return $data;
    }
}