96 lines
3.2 KiB
PHP
96 lines
3.2 KiB
PHP
<?php
|
||
namespace App\Http\Response;
|
||
|
||
use Illuminate\Support\Facades\Log;
|
||
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;
|
||
}
|
||
}
|