From febf7d9982ceca0b2d0c1d0598bd3222a8d5566c Mon Sep 17 00:00:00 2001 From: koogua Date: Wed, 6 Oct 2021 20:28:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap/HttpErrorHandler.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bootstrap/HttpErrorHandler.php b/bootstrap/HttpErrorHandler.php index dd8fd8af..4d5cf821 100644 --- a/bootstrap/HttpErrorHandler.php +++ b/bootstrap/HttpErrorHandler.php @@ -127,6 +127,13 @@ class HttpErrorHandler extends Injectable { $errors = require config_path('errors.php'); + /** + * 向外隐藏具体的500异常信息 + */ + if ($this->response->getStatusCode() == 500) { + $code = 'sys.internal_server_error'; + } + return [ 'code' => $code, 'msg' => $errors[$code] ?? $code, From 2a305897162efc833ad1f7b1ac933b910ecfa443 Mon Sep 17 00:00:00 2001 From: koogua Date: Thu, 7 Oct 2021 13:16:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=BE=A4=E7=BB=84?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/Logic/Consult/ConsultInfo.php | 2 +- app/Services/Logic/Im/GroupInfo.php | 53 +++++++++++++++++----- bootstrap/HttpErrorHandler.php | 7 --- config/errors.php | 2 +- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/app/Services/Logic/Consult/ConsultInfo.php b/app/Services/Logic/Consult/ConsultInfo.php index cae47fc1..784ccece 100644 --- a/app/Services/Logic/Consult/ConsultInfo.php +++ b/app/Services/Logic/Consult/ConsultInfo.php @@ -42,7 +42,7 @@ class ConsultInfo extends LogicService return [ 'id' => $consult->id, 'question' => $consult->question, - 'consult' => $consult->consult, + 'answer' => $consult->answer, 'rating' => $consult->rating, 'private' => $consult->private, 'published' => $consult->published, diff --git a/app/Services/Logic/Im/GroupInfo.php b/app/Services/Logic/Im/GroupInfo.php index 4074ec42..abc22a52 100644 --- a/app/Services/Logic/Im/GroupInfo.php +++ b/app/Services/Logic/Im/GroupInfo.php @@ -7,22 +7,32 @@ namespace App\Services\Logic\Im; -use App\Repos\User as UserRepo; +use App\Models\ImGroup as ImGroupModel; +use App\Models\User as UserModel; +use App\Repos\ImGroupUser as ImGroupUserRepo; use App\Services\Logic\ImGroupTrait; use App\Services\Logic\Service as LogicService; +use App\Services\Logic\UserTrait; class GroupInfo extends LogicService { use ImGroupTrait; + use UserTrait; public function handle($id) { $group = $this->checkImGroup($id); - $userRepo = new UserRepo(); + $user = $this->getCurrentUser(true); - $owner = $userRepo->findById($group->owner_id); + return $this->handleGroup($group, $user); + } + + protected function handleGroup(ImGroupModel $group, UserModel $user) + { + $owner = $this->handleShallowUserInfo($group->owner_id); + $me = $this->handleMeInfo($group, $user); return [ 'id' => $group->id, @@ -30,17 +40,38 @@ class GroupInfo extends LogicService 'name' => $group->name, 'avatar' => $group->avatar, 'about' => $group->about, + 'published' => $group->published, + 'deleted' => $group->deleted, 'user_count' => $group->user_count, 'msg_count' => $group->msg_count, - 'owner' => [ - 'id' => $owner->id, - 'name' => $owner->name, - 'avatar' => $owner->avatar, - 'title' => $owner->title, - 'about' => $owner->about, - 'vip' => $owner->vip, - ], + 'owner' => $owner, + 'me' => $me, ]; } + protected function handleMeInfo(ImGroupModel $group, UserModel $user) + { + $me = [ + 'joined' => 0, + 'owned' => 0, + ]; + + if ($user->id == $group->owner_id) { + $me['owned'] = 1; + } + + if ($user->id > 0) { + + $repo = new ImGroupUserRepo(); + + $groupUser = $repo->findGroupUser($group->id, $user->id); + + if ($groupUser) { + $me['joined'] = 1; + } + } + + return $me; + } + } diff --git a/bootstrap/HttpErrorHandler.php b/bootstrap/HttpErrorHandler.php index 4d5cf821..dd8fd8af 100644 --- a/bootstrap/HttpErrorHandler.php +++ b/bootstrap/HttpErrorHandler.php @@ -127,13 +127,6 @@ class HttpErrorHandler extends Injectable { $errors = require config_path('errors.php'); - /** - * 向外隐藏具体的500异常信息 - */ - if ($this->response->getStatusCode() == 500) { - $code = 'sys.internal_server_error'; - } - return [ 'code' => $code, 'msg' => $errors[$code] ?? $code, diff --git a/config/errors.php b/config/errors.php index 90855cbe..5289cc99 100644 --- a/config/errors.php +++ b/config/errors.php @@ -14,7 +14,7 @@ $error['sys.unauthorized'] = '认证失败'; $error['sys.forbidden'] = '拒绝访问'; $error['sys.bad_request'] = '无效的请求'; $error['sys.not_found'] = '资源不存在'; -$error['sys.internal_server_error'] = '内部错误'; +$error['sys.server_error'] = '服务器内部错误'; $error['sys.service_unavailable'] = '服务不可用'; $error['sys.trans_rollback'] = '事务回滚'; $error['sys.unknown_error'] = '未知错误';