mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-21 19:22:45 +08:00
精简整理代码
This commit is contained in:
parent
4d810eae98
commit
e27a203ac8
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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'],
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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'])) {
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -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 @@
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
|
38
app/Services/Logic/Consult/ConsultDataTrait.php
Normal file
38
app/Services/Logic/Consult/ConsultDataTrait.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
|
||||
* @license https://opensource.org/licenses/GPL-2.0
|
||||
* @link https://www.koogua.com
|
||||
*/
|
||||
|
||||
namespace App\Services\Logic\Consult;
|
||||
|
||||
use App\Traits\Client as ClientTrait;
|
||||
use App\Validators\Consult as ConsultValidator;
|
||||
|
||||
trait ConsultDataTrait
|
||||
{
|
||||
|
||||
use ClientTrait;
|
||||
|
||||
protected function handlePostData($post)
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$data['client_type'] = $this->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;
|
||||
}
|
||||
|
||||
}
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
@ -63,8 +63,6 @@ class ReviewInfo extends LogicService
|
||||
|
||||
$course = $courseRepo->findById($courseId);
|
||||
|
||||
if (!$course) return new \stdClass();
|
||||
|
||||
return [
|
||||
'id' => $course->id,
|
||||
'title' => $course->title,
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user