From 3c774d2b890389c22a2298af91b8e7a7e17d861e Mon Sep 17 00:00:00 2001 From: koogua Date: Sun, 17 Oct 2021 14:48:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=92=A8=E8=AF=A2=E5=92=8C?= =?UTF-8?q?=E8=AF=84=E4=BB=B7=E7=82=B9=E8=B5=9E=E7=8A=B6=E6=80=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/Logic/Course/ConsultListTrait.php | 11 +++++++++-- app/Services/Logic/Course/ReviewList.php | 15 +++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/Services/Logic/Course/ConsultListTrait.php b/app/Services/Logic/Course/ConsultListTrait.php index 33a9f183..69741811 100644 --- a/app/Services/Logic/Course/ConsultListTrait.php +++ b/app/Services/Logic/Course/ConsultListTrait.php @@ -32,6 +32,7 @@ trait ConsultListTrait foreach ($consults as $consult) { $owner = $users[$consult['owner_id']] ?? new \stdClass(); + $me = $meMappings[$consult['id']]; $items[] = [ @@ -61,8 +62,13 @@ trait ConsultListTrait $likedIds = []; if ($user->id > 0) { - $likes = $likeRepo->findByUserId($user->id); - $likedIds = array_column($likes->toArray(), 'consult_id'); + $likes = $likeRepo->findByUserId($user->id) + ->filter(function ($like) { + if ($like->deleted == 0) { + return $like; + } + }); + $likedIds = array_column($likes, 'consult_id'); } $result = []; @@ -70,6 +76,7 @@ trait ConsultListTrait foreach ($consults as $consult) { $result[$consult['id']] = [ 'liked' => in_array($consult['id'], $likedIds) ? 1 : 0, + 'owned' => $consult['owner_id'] == $user->id ? 1 : 0, ]; } diff --git a/app/Services/Logic/Course/ReviewList.php b/app/Services/Logic/Course/ReviewList.php index 862e50b8..1d49cae6 100644 --- a/app/Services/Logic/Course/ReviewList.php +++ b/app/Services/Logic/Course/ReviewList.php @@ -62,6 +62,7 @@ class ReviewList extends LogicService foreach ($reviews as $review) { $owner = $users[$review['owner_id']] ?? new \stdClass(); + $me = $meMappings[$review['id']]; $items[] = [ @@ -81,7 +82,7 @@ class ReviewList extends LogicService return $pager; } - protected function getMeMappings($consults) + protected function getMeMappings($reviews) { $user = $this->getCurrentUser(true); @@ -90,15 +91,21 @@ class ReviewList extends LogicService $likedIds = []; if ($user->id > 0) { - $likes = $likeRepo->findByUserId($user->id); - $likedIds = array_column($likes->toArray(), 'review_id'); + $likes = $likeRepo->findByUserId($user->id) + ->filter(function ($like) { + if ($like->deleted == 0) { + return $like; + } + }); + $likedIds = array_column($likes, 'review_id'); } $result = []; - foreach ($consults as $consult) { + foreach ($reviews as $consult) { $result[$consult['id']] = [ 'liked' => in_array($consult['id'], $likedIds) ? 1 : 0, + 'owned' => $consult['owner_id'] == $user->id ? 1 : 0, ]; }