diff --git a/app/Builders/AnswerList.php b/app/Builders/AnswerList.php index 0c3b0b99..f12ef425 100644 --- a/app/Builders/AnswerList.php +++ b/app/Builders/AnswerList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Question as QuestionRepo; -use App\Repos\User as UserRepo; class AnswerList extends Builder { @@ -18,7 +17,7 @@ class AnswerList extends Builder $questions = $this->getQuestions($answers); foreach ($answers as $key => $answer) { - $answers[$key]['question'] = $questions[$answer['question_id']] ?? new \stdClass(); + $answers[$key]['question'] = $questions[$answer['question_id']] ?? null; } return $answers; @@ -29,7 +28,7 @@ class AnswerList extends Builder $users = $this->getUsers($answers); foreach ($answers as $key => $answer) { - $answers[$key]['owner'] = $users[$answer['owner_id']] ?? new \stdClass(); + $answers[$key]['owner'] = $users[$answer['owner_id']] ?? null; } return $answers; @@ -56,20 +55,7 @@ class AnswerList extends Builder { $ids = kg_array_column($answers, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/ArticleFavoriteList.php b/app/Builders/ArticleFavoriteList.php index 897f0f0e..9b1e03cc 100644 --- a/app/Builders/ArticleFavoriteList.php +++ b/app/Builders/ArticleFavoriteList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Article as ArticleRepo; -use App\Repos\User as UserRepo; use Phalcon\Text; class ArticleFavoriteList extends Builder @@ -19,7 +18,7 @@ class ArticleFavoriteList extends Builder $articles = $this->getArticles($relations); foreach ($relations as $key => $value) { - $relations[$key]['article'] = $articles[$value['article_id']] ?? new \stdClass(); + $relations[$key]['article'] = $articles[$value['article_id']] ?? null; } return $relations; @@ -30,7 +29,7 @@ class ArticleFavoriteList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -70,20 +69,7 @@ class ArticleFavoriteList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/ArticleList.php b/app/Builders/ArticleList.php index 68a78f5d..7efba66e 100644 --- a/app/Builders/ArticleList.php +++ b/app/Builders/ArticleList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Caches\CategoryAllList as CategoryAllListCache; use App\Models\Category as CategoryModel; -use App\Repos\User as UserRepo; class ArticleList extends Builder { @@ -28,7 +27,7 @@ class ArticleList extends Builder $categories = $this->getCategories(); foreach ($articles as $key => $article) { - $articles[$key]['category'] = $categories[$article['category_id']] ?? new \stdClass(); + $articles[$key]['category'] = $categories[$article['category_id']] ?? null; } return $articles; @@ -39,7 +38,7 @@ class ArticleList extends Builder $users = $this->getUsers($articles); foreach ($articles as $key => $article) { - $articles[$key]['owner'] = $users[$article['owner_id']] ?? new \stdClass(); + $articles[$key]['owner'] = $users[$article['owner_id']] ?? null; } return $articles; @@ -69,20 +68,7 @@ class ArticleList extends Builder { $ids = kg_array_column($articles, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/Builder.php b/app/Builders/Builder.php index 11c29f62..eecb7f88 100644 --- a/app/Builders/Builder.php +++ b/app/Builders/Builder.php @@ -7,6 +7,7 @@ namespace App\Builders; +use App\Repos\User as UserRepo; use Phalcon\Di\Injectable; class Builder extends Injectable @@ -17,4 +18,22 @@ class Builder extends Injectable return kg_array_object($items); } + protected function getShallowUserByIds(array $ids) + { + $userRepo = new UserRepo(); + + $users = $userRepo->findShallowUserByIds($ids); + + $baseUrl = kg_cos_url(); + + $result = []; + + foreach ($users->toArray() as $user) { + $user['avatar'] = $baseUrl . $user['avatar']; + $result[$user['id']] = $user; + } + + return $result; + } + } diff --git a/app/Builders/CommentList.php b/app/Builders/CommentList.php index e0eb0059..9cbc98d5 100644 --- a/app/Builders/CommentList.php +++ b/app/Builders/CommentList.php @@ -7,8 +7,6 @@ namespace App\Builders; -use App\Repos\User as UserRepo; - class CommentList extends Builder { @@ -17,8 +15,8 @@ class CommentList extends Builder $users = $this->getUsers($comments); foreach ($comments as $key => $comment) { - $comments[$key]['owner'] = $users[$comment['owner_id']] ?? new \stdClass(); - $comments[$key]['to_user'] = $users[$comment['to_user_id']] ?? new \stdClass(); + $comments[$key]['owner'] = $users[$comment['owner_id']] ?? null; + $comments[$key]['to_user'] = $users[$comment['to_user_id']] ?? null; } return $comments; @@ -30,20 +28,7 @@ class CommentList extends Builder $toUserIds = kg_array_column($comments, 'to_user_id'); $ids = array_merge($ownerIds, $toUserIds); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/ConsultList.php b/app/Builders/ConsultList.php index 6427f979..702a1933 100644 --- a/app/Builders/ConsultList.php +++ b/app/Builders/ConsultList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Course as CourseRepo; -use App\Repos\User as UserRepo; class ConsultList extends Builder { @@ -18,7 +17,7 @@ class ConsultList extends Builder $courses = $this->getCourses($consults); foreach ($consults as $key => $consult) { - $consults[$key]['course'] = $courses[$consult['course_id']] ?? new \stdClass(); + $consults[$key]['course'] = $courses[$consult['course_id']] ?? null; } return $consults; @@ -29,8 +28,8 @@ class ConsultList extends Builder $users = $this->getUsers($consults); foreach ($consults as $key => $consult) { - $consults[$key]['owner'] = $users[$consult['owner_id']] ?? new \stdClass(); - $consults[$key]['replier'] = $users[$consult['replier_id']] ?? new \stdClass(); + $consults[$key]['owner'] = $users[$consult['owner_id']] ?? null; + $consults[$key]['replier'] = $users[$consult['replier_id']] ?? null; } return $consults; @@ -59,20 +58,7 @@ class ConsultList extends Builder $replierIds = kg_array_column($consults, 'replier_id'); $ids = array_merge($ownerIds, $replierIds); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/CourseFavoriteList.php b/app/Builders/CourseFavoriteList.php index 4acd5df8..1f3550bc 100644 --- a/app/Builders/CourseFavoriteList.php +++ b/app/Builders/CourseFavoriteList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Course as CourseRepo; -use App\Repos\User as UserRepo; class CourseFavoriteList extends Builder { @@ -18,7 +17,7 @@ class CourseFavoriteList extends Builder $courses = $this->getCourses($relations); foreach ($relations as $key => $value) { - $relations[$key]['course'] = $courses[$value['course_id']] ?? new \stdClass(); + $relations[$key]['course'] = $courses[$value['course_id']] ?? null; } return $relations; @@ -29,7 +28,7 @@ class CourseFavoriteList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -70,20 +69,7 @@ class CourseFavoriteList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/CourseList.php b/app/Builders/CourseList.php index d0dffdf4..cd0aa53d 100644 --- a/app/Builders/CourseList.php +++ b/app/Builders/CourseList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Caches\CategoryAllList as CategoryAllListCache; use App\Models\Category as CategoryModel; -use App\Repos\User as UserRepo; class CourseList extends Builder { @@ -19,7 +18,7 @@ class CourseList extends Builder $categories = $this->getCategories(); foreach ($courses as $key => $course) { - $courses[$key]['category'] = $categories[$course['category_id']] ?? new \stdClass(); + $courses[$key]['category'] = $categories[$course['category_id']] ?? null; } return $courses; @@ -30,7 +29,7 @@ class CourseList extends Builder $teachers = $this->getTeachers($courses); foreach ($courses as $key => $course) { - $courses[$key]['teacher'] = $teachers[$course['teacher_id']] ?? new \stdClass(); + $courses[$key]['teacher'] = $teachers[$course['teacher_id']] ?? null; } return $courses; @@ -60,20 +59,7 @@ class CourseList extends Builder { $ids = kg_array_column($courses, 'teacher_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/CourseTopicList.php b/app/Builders/CourseTopicList.php index 6a7ebf2d..aaa49ca0 100644 --- a/app/Builders/CourseTopicList.php +++ b/app/Builders/CourseTopicList.php @@ -18,7 +18,7 @@ class CourseTopicList extends Builder $courses = $this->getCourses($relations); foreach ($relations as $key => $value) { - $relations[$key]['course'] = $courses[$value['course_id']] ?? new \stdClass(); + $relations[$key]['course'] = $courses[$value['course_id']] ?? null; } return $relations; @@ -29,7 +29,7 @@ class CourseTopicList extends Builder $topics = $this->getTopics($relations); foreach ($relations as $key => $value) { - $relations[$key]['topic'] = $topics[$value['topic_id']] ?? new \stdClass(); + $relations[$key]['topic'] = $topics[$value['topic_id']] ?? null; } return $relations; diff --git a/app/Builders/CourseUserList.php b/app/Builders/CourseUserList.php index ea3a3d09..c8d1051f 100644 --- a/app/Builders/CourseUserList.php +++ b/app/Builders/CourseUserList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Course as CourseRepo; -use App\Repos\User as UserRepo; class CourseUserList extends Builder { @@ -18,7 +17,7 @@ class CourseUserList extends Builder $courses = $this->getCourses($relations); foreach ($relations as $key => $value) { - $relations[$key]['course'] = $courses[$value['course_id']] ?? new \stdClass(); + $relations[$key]['course'] = $courses[$value['course_id']] ?? null; } return $relations; @@ -29,7 +28,7 @@ class CourseUserList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -74,20 +73,7 @@ class CourseUserList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/HelpList.php b/app/Builders/HelpList.php index bc0ee1c2..6a25be60 100644 --- a/app/Builders/HelpList.php +++ b/app/Builders/HelpList.php @@ -18,7 +18,7 @@ class HelpList extends Builder $categories = $this->getCategories(); foreach ($helps as $key => $help) { - $helps[$key]['category'] = $categories[$help['category_id']] ?? new \stdClass(); + $helps[$key]['category'] = $categories[$help['category_id']] ?? null; } return $helps; diff --git a/app/Builders/LearningList.php b/app/Builders/LearningList.php index a9ce81f6..7c526c8d 100644 --- a/app/Builders/LearningList.php +++ b/app/Builders/LearningList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Repos\Chapter as ChapterRepo; use App\Repos\Course as CourseRepo; -use App\Repos\User as UserRepo; class LearningList extends Builder { @@ -19,7 +18,7 @@ class LearningList extends Builder $courses = $this->getCourses($relations); foreach ($relations as $key => $value) { - $relations[$key]['course'] = $courses[$value['course_id']] ?? new \stdClass(); + $relations[$key]['course'] = $courses[$value['course_id']] ?? null; } return $relations; @@ -30,7 +29,7 @@ class LearningList extends Builder $chapters = $this->getChapters($relations); foreach ($relations as $key => $value) { - $relations[$key]['chapter'] = $chapters[$value['chapter_id']] ?? new \stdClass(); + $relations[$key]['chapter'] = $chapters[$value['chapter_id']] ?? null; } return $relations; @@ -41,7 +40,7 @@ class LearningList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -85,17 +84,7 @@ class LearningList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findByIds($ids, ['id', 'name']); - - $result = []; - - foreach ($users->toArray() as $user) { - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/LiveList.php b/app/Builders/LiveList.php index 8f8102e2..3feda859 100644 --- a/app/Builders/LiveList.php +++ b/app/Builders/LiveList.php @@ -19,7 +19,7 @@ class LiveList extends Builder $courses = $this->getCourses($lives); foreach ($lives as $key => $live) { - $lives[$key]['course'] = $courses[$live['course_id']] ?? new \stdClass(); + $lives[$key]['course'] = $courses[$live['course_id']] ?? null; } return $lives; @@ -30,7 +30,7 @@ class LiveList extends Builder $chapters = $this->getChapters($lives); foreach ($lives as $key => $live) { - $lives[$key]['chapter'] = $chapters[$live['chapter_id']] ?? new \stdClass(); + $lives[$key]['chapter'] = $chapters[$live['chapter_id']] ?? null; } return $lives; @@ -63,7 +63,7 @@ class LiveList extends Builder foreach ($courses->toArray() as $course) { $course['cover'] = $baseUrl . $course['cover']; - $course['teacher'] = $teachers[$course['teacher_id']] ?? new \stdClass(); + $course['teacher'] = $teachers[$course['teacher_id']] ?? null; $result[$course['id']] = [ 'id' => $course['id'], 'title' => $course['title'], diff --git a/app/Builders/NotificationList.php b/app/Builders/NotificationList.php index 6670553d..35c2b913 100644 --- a/app/Builders/NotificationList.php +++ b/app/Builders/NotificationList.php @@ -7,8 +7,6 @@ namespace App\Builders; -use App\Repos\User as UserRepo; - class NotificationList extends Builder { @@ -17,8 +15,8 @@ class NotificationList extends Builder $users = $this->getUsers($notifications); foreach ($notifications as $key => $notification) { - $notifications[$key]['sender'] = $users[$notification['sender_id']] ?? new \stdClass(); - $notifications[$key]['receiver'] = $users[$notification['receiver_id']] ?? new \stdClass(); + $notifications[$key]['sender'] = $users[$notification['sender_id']] ?? null; + $notifications[$key]['receiver'] = $users[$notification['receiver_id']] ?? null; } return $notifications; @@ -30,20 +28,7 @@ class NotificationList extends Builder $receiverIds = kg_array_column($notifications, 'receiver_id'); $ids = array_merge($senderIds, $receiverIds); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/OrderList.php b/app/Builders/OrderList.php index 72a62b2a..b808eb29 100644 --- a/app/Builders/OrderList.php +++ b/app/Builders/OrderList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Models\Course as CourseModel; use App\Models\Order as OrderModel; -use App\Repos\User as UserRepo; class OrderList extends Builder { @@ -30,7 +29,7 @@ class OrderList extends Builder $users = $this->getUsers($orders); foreach ($orders as $key => $order) { - $orders[$key]['owner'] = $users[$order['owner_id']] ?? new \stdClass(); + $orders[$key]['owner'] = $users[$order['owner_id']] ?? null; } return $orders; @@ -175,17 +174,7 @@ class OrderList extends Builder { $ids = kg_array_column($orders, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $result = []; - - foreach ($users->toArray() as $user) { - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/QuestionFavoriteList.php b/app/Builders/QuestionFavoriteList.php index 7d5185de..befd764a 100644 --- a/app/Builders/QuestionFavoriteList.php +++ b/app/Builders/QuestionFavoriteList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Question as QuestionRepo; -use App\Repos\User as UserRepo; use Phalcon\Text; class QuestionFavoriteList extends Builder @@ -19,7 +18,7 @@ class QuestionFavoriteList extends Builder $questions = $this->getQuestions($relations); foreach ($relations as $key => $value) { - $relations[$key]['question'] = $questions[$value['question_id']] ?? new \stdClass(); + $relations[$key]['question'] = $questions[$value['question_id']] ?? null; } return $relations; @@ -30,7 +29,7 @@ class QuestionFavoriteList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -70,20 +69,7 @@ class QuestionFavoriteList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/QuestionList.php b/app/Builders/QuestionList.php index b4d25292..1d14a5e2 100644 --- a/app/Builders/QuestionList.php +++ b/app/Builders/QuestionList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Caches\CategoryAllList as CategoryAllListCache; use App\Models\Category as CategoryModel; -use App\Repos\User as UserRepo; class QuestionList extends Builder { @@ -28,7 +27,7 @@ class QuestionList extends Builder $categories = $this->getCategories(); foreach ($questions as $key => $question) { - $questions[$key]['category'] = $categories[$question['category_id']] ?? new \stdClass(); + $questions[$key]['category'] = $categories[$question['category_id']] ?? null; } return $questions; @@ -39,8 +38,8 @@ class QuestionList extends Builder $users = $this->getUsers($questions); foreach ($questions as $key => $question) { - $questions[$key]['owner'] = $users[$question['owner_id']] ?? new \stdClass(); - $questions[$key]['last_replier'] = $users[$question['last_replier_id']] ?? new \stdClass(); + $questions[$key]['owner'] = $users[$question['owner_id']] ?? null; + $questions[$key]['last_replier'] = $users[$question['last_replier_id']] ?? null; } return $questions; @@ -72,20 +71,7 @@ class QuestionList extends Builder $lastReplierIds = kg_array_column($questions, 'last_replier_id'); $ids = array_merge($ownerIds, $lastReplierIds); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/RefundList.php b/app/Builders/RefundList.php index 6452288d..5a71734d 100644 --- a/app/Builders/RefundList.php +++ b/app/Builders/RefundList.php @@ -9,7 +9,6 @@ namespace App\Builders; use App\Models\Refund as RefundModel; use App\Repos\Order as OrderRepo; -use App\Repos\User as UserRepo; class RefundList extends Builder { @@ -19,7 +18,7 @@ class RefundList extends Builder $orders = $this->getOrders($trades); foreach ($trades as $key => $trade) { - $trades[$key]['order'] = $orders[$trade['order_id']] ?? new \stdClass(); + $trades[$key]['order'] = $orders[$trade['order_id']] ?? null; } return $trades; @@ -30,7 +29,7 @@ class RefundList extends Builder $users = $this->getUsers($refunds); foreach ($refunds as $key => $refund) { - $refunds[$key]['owner'] = $users[$refund['owner_id']] ?? new \stdClass(); + $refunds[$key]['owner'] = $users[$refund['owner_id']] ?? null; } return $refunds; @@ -75,20 +74,7 @@ class RefundList extends Builder { $ids = kg_array_column($refunds, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/ReportList.php b/app/Builders/ReportList.php index 89c67218..a0a2311e 100644 --- a/app/Builders/ReportList.php +++ b/app/Builders/ReportList.php @@ -7,8 +7,6 @@ namespace App\Builders; -use App\Repos\User as UserRepo; - class ReportList extends Builder { @@ -17,7 +15,7 @@ class ReportList extends Builder $users = $this->getUsers($reports); foreach ($reports as $key => $report) { - $reports[$key]['owner'] = $users[$report['owner_id']] ?? new \stdClass(); + $reports[$key]['owner'] = $users[$report['owner_id']] ?? null; } return $reports; @@ -27,20 +25,7 @@ class ReportList extends Builder { $ids = kg_array_column($reports, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/ResourceList.php b/app/Builders/ResourceList.php index f767cef5..8f9b7e3d 100644 --- a/app/Builders/ResourceList.php +++ b/app/Builders/ResourceList.php @@ -17,7 +17,7 @@ class ResourceList extends Builder $uploads = $this->getUploads($relations); foreach ($relations as $key => $value) { - $relations[$key]['upload'] = $uploads[$value['upload_id']] ?? new \stdClass(); + $relations[$key]['upload'] = $uploads[$value['upload_id']] ?? null; } return $relations; diff --git a/app/Builders/ReviewList.php b/app/Builders/ReviewList.php index 5a931902..56caef33 100644 --- a/app/Builders/ReviewList.php +++ b/app/Builders/ReviewList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Course as CourseRepo; -use App\Repos\User as UserRepo; class ReviewList extends Builder { @@ -18,7 +17,7 @@ class ReviewList extends Builder $courses = $this->getCourses($reviews); foreach ($reviews as $key => $review) { - $reviews[$key]['course'] = $courses[$review['course_id']] ?? new \stdClass(); + $reviews[$key]['course'] = $courses[$review['course_id']] ?? null; } return $reviews; @@ -29,7 +28,7 @@ class ReviewList extends Builder $users = $this->getUsers($reviews); foreach ($reviews as $key => $review) { - $reviews[$key]['owner'] = $users[$review['owner_id']] ?? new \stdClass(); + $reviews[$key]['owner'] = $users[$review['owner_id']] ?? null; } return $reviews; @@ -56,20 +55,7 @@ class ReviewList extends Builder { $ids = kg_array_column($reviews, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/TagFollowList.php b/app/Builders/TagFollowList.php index c69d9ec2..13e0c009 100644 --- a/app/Builders/TagFollowList.php +++ b/app/Builders/TagFollowList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Tag as TagRepo; -use App\Repos\User as UserRepo; class TagFollowList extends Builder { @@ -18,7 +17,7 @@ class TagFollowList extends Builder $tags = $this->getTags($relations); foreach ($relations as $key => $value) { - $relations[$key]['tag'] = $tags[$value['tag_id']] ?? new \stdClass(); + $relations[$key]['tag'] = $tags[$value['tag_id']] ?? null; } return $relations; @@ -29,7 +28,7 @@ class TagFollowList extends Builder $users = $this->getUsers($relations); foreach ($relations as $key => $value) { - $relations[$key]['user'] = $users[$value['user_id']] ?? new \stdClass(); + $relations[$key]['user'] = $users[$value['user_id']] ?? null; } return $relations; @@ -61,20 +60,7 @@ class TagFollowList extends Builder { $ids = kg_array_column($relations, 'user_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/TradeList.php b/app/Builders/TradeList.php index 40d17a92..f4177e60 100644 --- a/app/Builders/TradeList.php +++ b/app/Builders/TradeList.php @@ -8,7 +8,6 @@ namespace App\Builders; use App\Repos\Order as OrderRepo; -use App\Repos\User as UserRepo; class TradeList extends Builder { @@ -18,7 +17,7 @@ class TradeList extends Builder $orders = $this->getOrders($trades); foreach ($trades as $key => $trade) { - $trades[$key]['order'] = $orders[$trade['order_id']] ?? new \stdClass(); + $trades[$key]['order'] = $orders[$trade['order_id']] ?? null; } return $trades; @@ -29,7 +28,7 @@ class TradeList extends Builder $users = $this->getUsers($trades); foreach ($trades as $key => $trade) { - $trades[$key]['owner'] = $users[$trade['owner_id']] ?? new \stdClass(); + $trades[$key]['owner'] = $users[$trade['owner_id']] ?? null; } return $trades; @@ -56,20 +55,7 @@ class TradeList extends Builder { $ids = kg_array_column($trades, 'owner_id'); - $userRepo = new UserRepo(); - - $users = $userRepo->findShallowUserByIds($ids); - - $baseUrl = kg_cos_url(); - - $result = []; - - foreach ($users->toArray() as $user) { - $user['avatar'] = $baseUrl . $user['avatar']; - $result[$user['id']] = $user; - } - - return $result; + return $this->getShallowUserByIds($ids); } } diff --git a/app/Builders/UserList.php b/app/Builders/UserList.php index fcee87c5..15301f63 100644 --- a/app/Builders/UserList.php +++ b/app/Builders/UserList.php @@ -30,7 +30,7 @@ class UserList extends Builder $accounts = $this->getAccounts($users); foreach ($users as $key => $user) { - $users[$key]['account'] = $accounts[$user['id']] ?? new \stdClass(); + $users[$key]['account'] = $accounts[$user['id']] ?? null; } return $users; diff --git a/app/Http/Admin/Services/Course.php b/app/Http/Admin/Services/Course.php index 7f62cb15..6540bc0d 100644 --- a/app/Http/Admin/Services/Course.php +++ b/app/Http/Admin/Services/Course.php @@ -168,14 +168,12 @@ class Course extends Service } } - if (!empty($post['category_id'])) { - $category = $validator->checkCategory($post['category_id']); - $data['category_id'] = $category->id; + if (isset($post['category_id'])) { + $data['category_id'] = $validator->checkCategoryId($post['category_id']); } - if (!empty($post['teacher_id'])) { - $teacher = $validator->checkTeacher($post['teacher_id']); - $data['teacher_id'] = $teacher->id; + if (isset($post['teacher_id'])) { + $data['teacher_id'] = $validator->checkTeacherId($post['teacher_id']); } if (isset($post['xm_tag_ids'])) { diff --git a/app/Http/Admin/Views/article/edit.volt b/app/Http/Admin/Views/article/edit.volt index db2ca7aa..6c8adbd5 100644 --- a/app/Http/Admin/Views/article/edit.volt +++ b/app/Http/Admin/Views/article/edit.volt @@ -49,7 +49,7 @@ name: 'xm_tag_ids', max: 5, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_tags|json_encode }} @@ -71,4 +71,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/consult/search.volt b/app/Http/Admin/Views/consult/search.volt index 91f8959f..7e515682 100644 --- a/app/Http/Admin/Views/consult/search.volt +++ b/app/Http/Admin/Views/consult/search.volt @@ -84,7 +84,7 @@ name: 'course_id', filterable: true, radio: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -102,4 +102,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/course/edit.volt b/app/Http/Admin/Views/course/edit.volt index 572c90b3..1896a946 100644 --- a/app/Http/Admin/Views/course/edit.volt +++ b/app/Http/Admin/Views/course/edit.volt @@ -65,7 +65,7 @@ name: 'xm_tag_ids', max: 5, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_tags|json_encode }} @@ -77,7 +77,7 @@ max: 10, autoRow: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -107,4 +107,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/package/edit.volt b/app/Http/Admin/Views/package/edit.volt index c7c97b97..2380c6c2 100644 --- a/app/Http/Admin/Views/package/edit.volt +++ b/app/Http/Admin/Views/package/edit.volt @@ -82,7 +82,7 @@ max: 15, autoRow: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -92,4 +92,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/point_gift/add.volt b/app/Http/Admin/Views/point_gift/add.volt index 298f822d..926a7540 100644 --- a/app/Http/Admin/Views/point_gift/add.volt +++ b/app/Http/Admin/Views/point_gift/add.volt @@ -69,7 +69,7 @@ name: 'xm_course_id', radio: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -91,4 +91,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/question/edit.volt b/app/Http/Admin/Views/question/edit.volt index 4ad70bf6..4e878a8d 100644 --- a/app/Http/Admin/Views/question/edit.volt +++ b/app/Http/Admin/Views/question/edit.volt @@ -48,7 +48,7 @@ name: 'xm_tag_ids', max: 5, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_tags|json_encode }} @@ -58,4 +58,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/review/search.volt b/app/Http/Admin/Views/review/search.volt index 8e62a8ef..cca0a9c9 100644 --- a/app/Http/Admin/Views/review/search.volt +++ b/app/Http/Admin/Views/review/search.volt @@ -84,7 +84,7 @@ name: 'course_id', filterable: true, radio: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -102,4 +102,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/slide/add.volt b/app/Http/Admin/Views/slide/add.volt index 81250ed2..1654cf3a 100644 --- a/app/Http/Admin/Views/slide/add.volt +++ b/app/Http/Admin/Views/slide/add.volt @@ -75,7 +75,7 @@ name: 'xm_course_id', radio: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -86,7 +86,7 @@ name: 'xm_page_id', radio: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_pages|json_encode }} @@ -101,4 +101,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/Http/Admin/Views/topic/edit.volt b/app/Http/Admin/Views/topic/edit.volt index cd1bfdd7..29803769 100644 --- a/app/Http/Admin/Views/topic/edit.volt +++ b/app/Http/Admin/Views/topic/edit.volt @@ -44,7 +44,7 @@ max: 15, autoRow: true, filterable: true, - filterMethod: function (val, item, index, prop) { + filterMethod: function (val, item) { return item.name.toLowerCase().indexOf(val.toLowerCase()) !== -1; }, data: {{ xm_courses|json_encode }} @@ -55,4 +55,3 @@ {% endblock %} - diff --git a/app/Library/Mvc/View.php b/app/Library/Mvc/View.php index f2ceff25..cf9bde6e 100644 --- a/app/Library/Mvc/View.php +++ b/app/Library/Mvc/View.php @@ -33,7 +33,7 @@ class View extends PhView /** * 分页数据 */ - if (isset($var->total_items)) { + if (isset($var->items) && is_array($var->items)) { $var->items = kg_array_object($var->items); } elseif (is_array($var)) { $var = kg_array_object($var); @@ -42,4 +42,4 @@ class View extends PhView return $var; } -} \ No newline at end of file +} diff --git a/app/Services/Logic/Article/ArticleInfo.php b/app/Services/Logic/Article/ArticleInfo.php index 47c03f90..97d5020e 100644 --- a/app/Services/Logic/Article/ArticleInfo.php +++ b/app/Services/Logic/Article/ArticleInfo.php @@ -7,12 +7,11 @@ namespace App\Services\Logic\Article; -use App\Caches\Category as CategoryCache; use App\Models\Article as ArticleModel; -use App\Models\Category as CategoryModel; use App\Models\User as UserModel; use App\Repos\ArticleFavorite as ArticleFavoriteRepo; use App\Repos\ArticleLike as ArticleLikeRepo; +use App\Services\Category as CategoryService; use App\Services\Logic\ArticleTrait; use App\Services\Logic\Service as LogicService; use App\Services\Logic\User\ShallowUserInfo; @@ -39,7 +38,7 @@ class ArticleInfo extends LogicService protected function handleArticle(ArticleModel $article, UserModel $user) { - $category = $this->handleCategoryInfo($article->category_id); + $categoryPaths = $this->handleCategoryPaths($article->category_id); $owner = $this->handleOwnerInfo($article->owner_id); $me = $this->handleMeInfo($article, $user); @@ -63,27 +62,19 @@ class ArticleInfo extends LogicService 'favorite_count' => $article->favorite_count, 'create_time' => $article->create_time, 'update_time' => $article->update_time, - 'category' => $category, + 'category_paths' => $categoryPaths, 'owner' => $owner, 'me' => $me, ]; } - protected function handleCategoryInfo($categoryId) + protected function handleCategoryPaths($categoryId) { - $cache = new CategoryCache(); + if ($categoryId == 0) return null; - /** - * @var CategoryModel $category - */ - $category = $cache->get($categoryId); + $service = new CategoryService(); - if (!$category) return new \stdClass(); - - return [ - 'id' => $category->id, - 'name' => $category->name, - ]; + return $service->getCategoryPaths($categoryId); } protected function handleOwnerInfo($userId) diff --git a/app/Services/Logic/Comment/CommentInfo.php b/app/Services/Logic/Comment/CommentInfo.php index 0101b33f..f301dcca 100644 --- a/app/Services/Logic/Comment/CommentInfo.php +++ b/app/Services/Logic/Comment/CommentInfo.php @@ -54,7 +54,7 @@ class CommentInfo extends LogicService protected function handleToUserInfo($userId) { - if ($userId == 0) return new \stdClass(); + if ($userId == 0) return null; $service = new ShallowUserInfo(); diff --git a/app/Services/Logic/Consult/ConsultCreate.php b/app/Services/Logic/Consult/ConsultCreate.php index 402ddb5c..a88d1110 100644 --- a/app/Services/Logic/Consult/ConsultCreate.php +++ b/app/Services/Logic/Consult/ConsultCreate.php @@ -23,6 +23,7 @@ class ConsultCreate extends LogicService use ClientTrait; use CourseTrait; + use ConsultDataTrait; public function handle() { @@ -34,10 +35,6 @@ class ConsultCreate extends LogicService $validator->checkDailyConsultLimit($user); - $validator = new UserLimitValidator(); - - $validator->checkDailyConsultLimit($user); - $course = $this->checkCourse($courseId); return $this->handleCourseConsult($course, $user); @@ -47,32 +44,20 @@ class ConsultCreate extends LogicService { $post = $this->request->getPost(); + $data = $this->handlePostData($post); + $validator = new ConsultValidator(); - $question = $validator->checkQuestion($post['question']); - - $private = 0; - - if (isset($post['private'])) { - $private = $validator->checkPrivateStatus($post['private']); - } - - $validator->checkIfDuplicated($course->id, $user->id, $question); - - $priority = $this->getPriority($course, $user); + $validator->checkIfDuplicated($course->id, $user->id, $data['question']); $consult = new ConsultModel(); - $consult->question = $question; - $consult->private = $private; - $consult->priority = $priority; - $consult->course_id = $course->id; - $consult->owner_id = $user->id; - $consult->client_type = $this->getClientType(); - $consult->client_ip = $this->getClientIp(); - $consult->published = ConsultModel::PUBLISH_PENDING; + $data['priority'] = $this->getPriority($course, $user); + $data['published'] = ConsultModel::PUBLISH_PENDING; + $data['course_id'] = $course->id; + $data['owner_id'] = $user->id; - $consult->create(); + $consult->create($data); $this->recountCourseConsults($course); $this->incrUserDailyConsultCount($user); diff --git a/app/Services/Logic/Consult/ConsultDataTrait.php b/app/Services/Logic/Consult/ConsultDataTrait.php new file mode 100644 index 00000000..25ed62b9 --- /dev/null +++ b/app/Services/Logic/Consult/ConsultDataTrait.php @@ -0,0 +1,38 @@ +getClientType(); + $data['client_ip'] = $this->getClientIp(); + + $validator = new ConsultValidator(); + + if (isset($post['question'])) { + $data['question'] = $validator->checkQuestion($post['question']); + } + + if (isset($post['private'])) { + $data['private'] = $validator->checkPrivateStatus($post['private']); + } + + return $data; + } + +} diff --git a/app/Services/Logic/Consult/ConsultInfo.php b/app/Services/Logic/Consult/ConsultInfo.php index 76177ccd..50eff9c8 100644 --- a/app/Services/Logic/Consult/ConsultInfo.php +++ b/app/Services/Logic/Consult/ConsultInfo.php @@ -76,7 +76,7 @@ class ConsultInfo extends LogicService protected function handleReplierInfo($userId) { - if ($userId == 0) return new \stdClass(); + if ($userId == 0) return null; $service = new ShallowUserInfo(); diff --git a/app/Services/Logic/Consult/ConsultUpdate.php b/app/Services/Logic/Consult/ConsultUpdate.php index efb7c775..f9af84df 100644 --- a/app/Services/Logic/Consult/ConsultUpdate.php +++ b/app/Services/Logic/Consult/ConsultUpdate.php @@ -15,6 +15,7 @@ class ConsultUpdate extends LogicService { use ConsultTrait; + use ConsultDataTrait; public function handle($id) { @@ -28,15 +29,7 @@ class ConsultUpdate extends LogicService $validator->checkEditPriv($consult, $user); - $data = []; - - if (isset($post['question'])) { - $data['question'] = $validator->checkQuestion($post['question']); - } - - if (isset($post['private'])) { - $data['private'] = $validator->checkPrivateStatus($post['private']); - } + $data = $this->handlePostData($post); $consult->update($data); diff --git a/app/Services/Logic/Course/BasicInfo.php b/app/Services/Logic/Course/BasicInfo.php index 81968130..57e6cccd 100644 --- a/app/Services/Logic/Course/BasicInfo.php +++ b/app/Services/Logic/Course/BasicInfo.php @@ -79,7 +79,7 @@ class BasicInfo extends LogicService protected function handleCategoryPaths($categoryId) { - if ($categoryId == 0) return new \stdClass(); + if ($categoryId == 0) return null; $service = new CategoryService(); @@ -88,7 +88,7 @@ class BasicInfo extends LogicService protected function handleTeacherInfo($userId) { - if ($userId == 0) return new \stdClass(); + if ($userId == 0) return null; $service = new ShallowUserInfoService(); diff --git a/app/Services/Logic/Question/QuestionInfo.php b/app/Services/Logic/Question/QuestionInfo.php index c72d8dcd..cce63e06 100644 --- a/app/Services/Logic/Question/QuestionInfo.php +++ b/app/Services/Logic/Question/QuestionInfo.php @@ -7,13 +7,12 @@ namespace App\Services\Logic\Question; -use App\Caches\Category as CategoryCache; -use App\Models\Category as CategoryModel; use App\Models\Question as QuestionModel; use App\Models\User as UserModel; use App\Repos\Question as QuestionRepo; use App\Repos\QuestionFavorite as QuestionFavoriteRepo; use App\Repos\QuestionLike as QuestionLikeRepo; +use App\Services\Category as CategoryService; use App\Services\Logic\QuestionTrait; use App\Services\Logic\Service as LogicService; use App\Services\Logic\User\ShallowUserInfo; @@ -41,7 +40,7 @@ class QuestionInfo extends LogicService protected function handleQuestion(QuestionModel $question, UserModel $user) { $lastReplier = $this->handleLastReplierInfo($question->last_replier_id); - $category = $this->handleCategoryInfo($question->category_id); + $categoryPaths = $this->handleCategoryPaths($question->category_id); $owner = $this->handleOwnerInfo($question->owner_id); $me = $this->handleMeInfo($question, $user); @@ -67,32 +66,24 @@ class QuestionInfo extends LogicService 'create_time' => $question->create_time, 'update_time' => $question->update_time, 'last_replier' => $lastReplier, - 'category' => $category, + 'category_paths' => $categoryPaths, 'owner' => $owner, 'me' => $me, ]; } - protected function handleCategoryInfo($categoryId) + protected function handleCategoryPaths($categoryId) { - $cache = new CategoryCache(); + if ($categoryId == 0) return null; - /** - * @var CategoryModel $category - */ - $category = $cache->get($categoryId); + $service = new CategoryService(); - if (!$category) return new \stdClass(); - - return [ - 'id' => $category->id, - 'name' => $category->name, - ]; + return $service->getCategoryPaths($categoryId); } protected function handleLastReplierInfo($userId) { - if ($userId == 0) return new \stdClass(); + if ($userId == 0) return null; $service = new ShallowUserInfo(); diff --git a/app/Services/Logic/Review/ReviewInfo.php b/app/Services/Logic/Review/ReviewInfo.php index afd811af..77172e04 100644 --- a/app/Services/Logic/Review/ReviewInfo.php +++ b/app/Services/Logic/Review/ReviewInfo.php @@ -63,8 +63,6 @@ class ReviewInfo extends LogicService $course = $courseRepo->findById($courseId); - if (!$course) return new \stdClass(); - return [ 'id' => $course->id, 'title' => $course->title, diff --git a/app/Validators/Course.php b/app/Validators/Course.php index 5b8d521a..2a3ad61c 100644 --- a/app/Validators/Course.php +++ b/app/Validators/Course.php @@ -66,18 +66,26 @@ class Course extends Validator } } - public function checkCategory($id) + public function checkCategoryId($id) { - $validator = new Category(); - - return $validator->checkCategory($id); + if ($id > 0) { + $validator = new Category(); + $category = $validator->checkCategory($id); + return $category->id; + } else { + return 0; + } } - public function checkTeacher($id) + public function checkTeacherId($id) { - $validator = new User(); - - return $validator->checkUser($id); + if ($id > 0) { + $validator = new User(); + $user = $validator->checkTeacher($id); + return $user->id; + } else { + return 0; + } } public function checkModel($model) diff --git a/app/Validators/User.php b/app/Validators/User.php index 40155790..e070d383 100644 --- a/app/Validators/User.php +++ b/app/Validators/User.php @@ -53,6 +53,19 @@ class User extends Validator return $user; } + public function checkTeacher($id) + { + $validator = new User(); + + $user = $validator->checkUser($id); + + if ($user->edu_role != UserModel::EDU_ROLE_TEACHER) { + throw new BadRequestException('user.not_found'); + } + + return $user; + } + public function checkId($id) { $id = intval($id);