love_php/app/Http/Response/ResponseJson.php

99 lines
3.1 KiB
PHP
Raw Permalink Normal View History

2026-04-02 09:20:51 +08:00
<?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;
}
}