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/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'] = '未知错误';