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;
|
|||
|
|
}
|
|||
|
|
}
|