where(["adminid"=>$account['id']])->find(); if($has){ Db::name("admin_token")->where(["adminid"=>$account['id']])->update(["token"=>$token,"expiretime"=>date("Y-m-d H:i:s",$now+1800)]); }else{ Db::name("admin_token")->insert(["token"=>$token,"expiretime"=>date("Y-m-d H:i:s",$now+1800),"addtime"=>date("Y-m-d H:i:s",$now+1800), "adminid"=>$account['id']]); } return $token; } /** * @param $token */ function verifyToken($token){ $has = Db::name("admin_token")->where(["token"=>$token])->find(); if(!$has){ return ["code"=>101,"msg"=>"token不存在"]; } if(strtotime($has['expiretime'])<=time()){ return ["code"=>102,"msg"=>"token已失效"]; } $account = Db::name("admin")->where(["id"=>$has['adminid'],"is_del"=>0])->find(); if(!$account){ return ["code"=>103,"msg"=>"未找到账户"]; } if($account['status']!=1){ return ["code"=>104,"msg"=>"账户已禁用"]; } $token_str = base64_decode($token); $account_str= substr($token_str,0,-10); if($account_str==$account['username'].$account['salt']){ Db::name("admin_token")->where(["token"=>$token])->update(["expiretime"=>date("Y-m-d H:i:s",time()+1800)]); return ["code"=>0,"msg"=>"账户有效"]; }else{ return ["code"=>105,"msg"=>"账户token无效"]; } } /** * @param $username * @return bool 账户正则匹配 */ function checkAccount($username){ $match ='/^(1745)([\d]{6})$/'; return preg_match($match,$username)?true:false; } /** * @param $pawd * @return bool 账户正则匹配 */ function checkPasswd($pawd){ $match ='/^([a-zA-z]{2})([\d]{4})$/'; return preg_match($match,$pawd)?true:false; } function UploadImg($files){ $savename = []; $files= !is_array($files) ? [$files] : $files; // var_dump($files); try{ foreach($files as $file){ $info= $file->validate(['size'=>10240000,'ext'=>'jpg,jpeg,png,bmp,gif'])->move(ROOT_PATH .'public' .DS .'upload'); if($info){ $temp = ['url'=>'upload/'. $info->getSaveName()]; $savename[]=$temp; }else{ return ""; } } return $savename; }catch (\think\exception\ValidateException $e) { return $e->getMessage(); } } function QueuePush($data,$queue="createOrderJob"){ //当前任务将由哪个类来负责处理 $jobHandlerClassName = 'app\admin\JobInv'; //业务数据 对象需要手动转序列化 $jobQueueName = $queue; $isPushed = Queue::push($jobHandlerClassName, $data,$jobQueueName); if( $isPushed !== false ){ Log::write("{$jobQueueName} 任务失败:{$data['id']}"); } } function checkRole($roleid,$menu){ $roleinfo = \think\facade\Db::name("role_action")->where([['role_id',"=",$roleid],["status","=",1]])->find(); if($roleinfo['private_data']!=""){ $private = explode(",",$roleinfo['private_data']); if(in_array($menu,$private)){ return true; } } return false; }