99 lines
3.1 KiB
PHP
99 lines
3.1 KiB
PHP
<?php
|
||
namespace App\Http\Response;
|
||
|
||
use App\Jobs\SendTemplateMsg;
|
||
use App\Mail\ErrorMessage;
|
||
use App\Models\User;
|
||
use Illuminate\Support\Facades\Log;
|
||
use Illuminate\Support\Facades\Mail;
|
||
use App\Jobs\SendMail;
|
||
trait ResponseJson
|
||
{
|
||
public function failure($msg='服务器休息,请稍后再试', $data=[], $jsonp=false)
|
||
{
|
||
return $this->jsonResponse(1, $msg, $data);
|
||
}
|
||
|
||
public function success($msg, $data=[], $cookie = null, $jsonp = false)
|
||
{
|
||
if (request()->debug) {
|
||
return view('welcome');
|
||
}
|
||
return $this->jsonResponse(0, $msg, $data);
|
||
}
|
||
|
||
//接口返回失败
|
||
public function failv2($msg, $data=[], $jsonp=false )
|
||
{
|
||
return $this->jsonResponse(3, $msg, $data);
|
||
|
||
}
|
||
|
||
private function jsonResponse($code, $msg, $data=[])
|
||
{
|
||
$result = [
|
||
'code'=>$code,
|
||
'message'=>$msg,
|
||
'data'=>$data,
|
||
];
|
||
|
||
return Response()->json($result);
|
||
}
|
||
|
||
/**
|
||
* 检查用户是否登录
|
||
* @return [type] [description]
|
||
*/
|
||
public function authCheck(){
|
||
$guards = config('auth.guards');
|
||
$result = false;
|
||
foreach($guards as $key=>$guard){
|
||
if(\Auth::guard($key)->check()){
|
||
$result = \Auth::guard($key)->user();
|
||
continue;
|
||
}
|
||
}
|
||
return $result;
|
||
}
|
||
|
||
public function getError($exception, $send_mail=true)
|
||
{
|
||
$error = $exception->getMessage();
|
||
if(method_exists($exception, 'getStatusCode')){
|
||
$status = $exception->getStatusCode();
|
||
}elseif($exception instanceof AuthenticationException){
|
||
$status = 403;
|
||
//403不报警
|
||
return;
|
||
}else{
|
||
$status = get_class($exception);
|
||
}
|
||
$route = Request()->getMethod().':'.Request()->getRequestUri();
|
||
if(\Route::getFacadeRoot()->current()){
|
||
$action = $status.':'.\Route::getCurrentRoute()->getActionName();
|
||
}else{
|
||
$action = $status.':非法路由访问错误';
|
||
}
|
||
if (method_exists($exception, 'getPrevious')) {
|
||
$err = $exception->getPrevious();
|
||
if (!empty($err)) {
|
||
$error = $err->getMessage();
|
||
}
|
||
}
|
||
$files = explode('/', $exception->getFile());
|
||
$file = $files[count($files)-1];
|
||
$host = request()->gethost();
|
||
$params = json_encode(request()->all(),JSON_UNESCAPED_UNICODE);
|
||
$client = Request()->header('client-os')?:'other';
|
||
$server_ip = isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'';
|
||
$message = '服务器异常,前端:'.$client.',ip:'.$server_ip.',域名:'.$host.',位置:'.$route.',操作:'.$action.',控制器:'.$file.', Line:'.$exception->getLine().',参数:'.$params.',用户id:'.(auth()->id()?:'无').',报错内容:'.$error.',错误码:'.$exception->getCode();
|
||
Log::error($message);
|
||
//参数
|
||
//邮件通知
|
||
// Mail::to(['hankin_h@126.com', 'fkl1939@163.com'])->send(new ErrorMessage($message));
|
||
SendMail::dispatch($message, '', '', $exception->getTraceAsString())->onQueue('error_email');
|
||
|
||
return $message;
|
||
}
|
||
}
|