作者 Your Name

gx

... ... @@ -60,99 +60,5 @@ class Handler extends ExceptionHandler
*/
public function report(Throwable $exception)
{
//日志记录
$exceptionMessage = "错误CODE:" . $exception->getCode() .
"-----错误message:" . $exception->getMessage() .
'------错误文件:' . $exception->getFile() .
'-------错误行数:' . $exception->getLine();
//A端错误
if ($exception instanceof AsideGlobalException) {
LogUtils::error("AsideGlobalException", [], $exceptionMessage);
}
//B端错误
elseif($exception instanceof BsideGlobalException) {
LogUtils::error("BsideGlobalException", [], $exceptionMessage);
}
//验证错误(非手动抛出)
elseif ($exception instanceof ValidationException) {
LogUtils::error("参数验证失败", [], $exceptionMessage);
}
//Redis错误(非手动抛出)
elseif ($exception instanceof \RedisException) {
LogUtils::error("Redis服务异常", [], $exceptionMessage);
}
//Mysql错误(非手动抛出)
elseif ($exception instanceof \PDOException) {
LogUtils::error("数据库服务异常", [], $exceptionMessage);
}
//模型未找到错误(非手动抛出)
elseif ($exception instanceof ModelNotFoundException) {
LogUtils::error("模型资源未找到", [], $exceptionMessage);
}
//其他
else {
LogUtils::error("全局系统异常", [], $exceptionMessage);
}
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Throwable $exception
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Throwable
*/
public function render($request, Throwable $exception)
{
$message = $exception->getMessage();
if ($exception instanceof AsideGlobalException) {
$code = $exception->getCode();
}elseif ($exception instanceof BsideGlobalException) {
$code = $exception->getCode();
} elseif ($exception instanceof ValidationException) {
$code = Code::USER_PARAMS_ERROE();
} elseif ($exception instanceof \RedisException) {
$code = Code::SERVER_REDIS_ERROR();
} elseif ($exception instanceof \PDOException) {
$code = Code::SERVER_MYSQL_ERROR();
} elseif ($exception instanceof ModelNotFoundException) {
$code = Code::USER_MODEL_NOTFOUND_ERROE();
} elseif ($exception instanceof NotFoundHttpException || $exception instanceof MethodNotAllowedHttpException) {
return response('404 Not Found', 404);
} else {
$code = Code::SYSTEM_ERROR();
}
//钉钉通知错误信息
if (in_array(config('app.env'), ['test', 'production']) && (in_array(substr($code, 0, 1), ['B', 'C']))) {
$exceptionMessage = "路由:" . Route::current()->uri .
"-----错误CODE:" . $exception->getCode() .
"-----错误message:" . $exception->getMessage() .
'------错误文件:' . $exception->getFile() . '-------错误行数:' .
$exception->getLine();
(new DingService())->handle(['keyword' => "ERROR", 'msg' => config('app.env') . '环境报错:' . $exceptionMessage, 'isAtAll' => false]);
}
//开启debug 错误原样输出
$debub = config('app.debug');
$message = $debub ? $message : ($code->description ?? $message);
//请求参数错误 输出具体错误信息
if($code == Code::USER_PARAMS_ERROE()){
$message = Arr::first(Arr::first($exception->errors()));
}
$response = [
'code' => $code,
'message' => $message
];
//加密返回
if (config('app.params_encrypt')) {
$k = config('app.params_encrypt_key');
$i = config('app.params_encrypt_iv');
$response = [
'p' => (new EncryptUtils())->openssl_en($response, $k, $i)];
}
return response($response);
}
}
... ...
... ... @@ -42,10 +42,14 @@ class BaseController extends Controller
* @method
*/
public function auth_token(){
$this->token = '810f28c1d80d0ccf27509816bf44b329';
$info = Cache::get($this->token);
if(!empty($info)){
$this->user = $info;
$this->uid = $info['id'];
}
}
/**
* 成功返回
* @param array $data
... ... @@ -110,11 +114,12 @@ class BaseController extends Controller
}
/**
* @name 统一返回参数
* @return void
* @return JsonResponse
* @author :liyuhang
* @method
*/
public function response($msg = null,string $code = Code::SUCCESS,$data = [],$result_code = 200,$type = 'application/json'){
public function response($msg = null,string $code = Code::SUCCESS,$data = [],$result_code = 200,$type = 'application/json'): JsonResponse
{
$code = Code::fromValue($code);
$result = [
'msg' => $msg == ' ' ? $msg : $code->description,
... ...
... ... @@ -7,6 +7,7 @@ use App\Models\Project as ProjectModel;
use App\Models\ProjectMenu as ProjectMenuModel;
use App\Models\ProjectRole as ProjectRoleModel;
use App\Models\User as UserModel;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
... ... @@ -39,6 +40,7 @@ class ComController extends BaseController
return $this->response($validate->errors()->first(),Code::USER_ERROR,$this->param);
}
$userModel = new UserModel();
Cache::add('1345951a03fd1916a53c48c16b2fdecb','23423423423423');
$res = $userModel->login($this->param);
if($res === false){
$this->response('当前用户不存在或者被禁用,登录失败',Code::USER_ERROR,[]);
... ... @@ -111,6 +113,29 @@ class ComController extends BaseController
* @method
*/
public function edit_info(){
$rules = [
'id'=>'required',
'mobile'=>'required|string|max:11',
'password'=>'required|string|min:5',
'name'=>'required|max:20',
];
//验证的提示信息
$message = [
'id.required'=>'主键不能为空',
'mobile.required'=>'号码必须填写',
'mobile.string'=>'号码中含有非法文字',
'mobile.max' => '号码不大于11字符.',
'password.required'=>'密码必须填写',
'password.string'=>'密码中含有非法文字',
'password.min' => '密码不小于5字符.',
'name.required'=>'名称必须填写',
'name.min' => '名称不小于5字符.',
];
$validate = Validator::make($this->param, $rules, $message);
if($validate->fails()){
return $this->response($validate->errors()->first(),Code::USER_PARAMS_ERROE,$this->param);
}
$user = new UserModel();
}
... ...
... ... @@ -22,10 +22,12 @@ class LoginAuthMiddleware
public function handle(Request $request, Closure $next)
{
$token = $request->header('token');
var_dump(Cache::get($token));
die();
if(!isset($token) || empty($token)){
$this->response('当前用户未登录',Code::USER_ERROR);
}
$info = Cache::get($request->header('token'));
$info = Cache::get($token);
if(empty($info)){
$this->response('当前用户未登录',Code::USER_ERROR);
}
... ... @@ -37,7 +39,6 @@ class LoginAuthMiddleware
//查询当前用户是否拥有权限操作
$projectMenuModel = new ProjectMenu();
$menu_id = $projectMenuModel->read(['action'=>$action['as']],['id']);
if(strpos($role_info['role_menu'], $menu_id['id']) < 0){
$this->response('当前用户没有权限',Code::USER_ERROR);
}
... ...
... ... @@ -88,6 +88,7 @@ class User extends Base
if($rs === false){
return false;
}
unset($info['password']);
return $info;
}
... ...