1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-22 19:44:02 +08:00

优化me相关信息

This commit is contained in:
koogua 2023-05-10 21:08:15 +08:00
parent 5405e1652e
commit 84d21d80da
13 changed files with 48 additions and 93 deletions

View File

@ -1,4 +1,9 @@
{% if course.me.allow_order == 1 %} {% if course.me.logged == 0 %}
{% set login_url = url({'for':'home.account.login'}) %}
<div class="sidebar wrap">
<a class="layui-btn layui-btn-fluid" href="{{ login_url }}">用户登录</a>
</div>
{% elseif course.me.allow_order == 1 %}
{% set order_url = url({'for':'home.order.confirm'},{'item_id':course.id,'item_type':1}) %} {% set order_url = url({'for':'home.order.confirm'},{'item_id':course.id,'item_type':1}) %}
<div class="sidebar wrap"> <div class="sidebar wrap">
<button class="layui-btn layui-btn-fluid layui-bg-red btn-buy" data-url="{{ order_url }}">立即购买</button> <button class="layui-btn layui-btn-fluid layui-bg-red btn-buy" data-url="{{ order_url }}">立即购买</button>

View File

@ -68,6 +68,7 @@ class AnswerInfo extends LogicService
protected function handleMeInfo(AnswerModel $answer, UserModel $user) protected function handleMeInfo(AnswerModel $answer, UserModel $user)
{ {
$me = [ $me = [
'logged' => 0,
'liked' => 0, 'liked' => 0,
'owned' => 0, 'owned' => 0,
]; ];
@ -78,6 +79,8 @@ class AnswerInfo extends LogicService
if ($user->id > 0) { if ($user->id > 0) {
$me['logged'] = 1;
$likeRepo = new AnswerLikeRepo(); $likeRepo = new AnswerLikeRepo();
$like = $likeRepo->findAnswerLike($answer->id, $user->id); $like = $likeRepo->findAnswerLike($answer->id, $user->id);

View File

@ -1,77 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Services\Logic\Answer;
use App\Builders\AnswerList as AnswerListBuilder;
use App\Library\Paginator\Query as PagerQuery;
use App\Repos\Answer as AnswerRepo;
use App\Services\Logic\Service as LogicService;
class AnswerList extends LogicService
{
public function handle()
{
$pagerQuery = new PagerQuery();
$params = $pagerQuery->getParams();
$params['deleted'] = 0;
$sort = $pagerQuery->getSort();
$page = $pagerQuery->getPage();
$limit = $pagerQuery->getLimit();
$answerRepo = new AnswerRepo();
$pager = $answerRepo->paginate($params, $sort, $page, $limit);
return $this->handleAnswers($pager);
}
public function handleAnswers($pager)
{
if ($pager->total_items == 0) {
return $pager;
}
$builder = new AnswerListBuilder();
$answers = $pager->items->toArray();
$questions = $builder->getQuestions($answers);
$users = $builder->getUsers($answers);
$items = [];
foreach ($answers as $answer) {
$question = $questions[$answer['question_id']] ?? new \stdClass();
$owner = $users[$answer['owner_id']] ?? new \stdClass();
$items[] = [
'id' => $answer['id'],
'summary' => $answer['summary'],
'published' => $answer['published'],
'accepted' => $answer['accepted'],
'comment_count' => $answer['comment_count'],
'like_count' => $answer['like_count'],
'create_time' => $answer['create_time'],
'update_time' => $answer['update_time'],
'question' => $question,
'owner' => $owner,
];
}
$pager->items = $items;
return $pager;
}
}

View File

@ -91,6 +91,7 @@ class ArticleInfo extends LogicService
protected function handleMeInfo(ArticleModel $article, UserModel $user) protected function handleMeInfo(ArticleModel $article, UserModel $user)
{ {
$me = [ $me = [
'logged' => 0,
'liked' => 0, 'liked' => 0,
'favorited' => 0, 'favorited' => 0,
'owned' => 0, 'owned' => 0,
@ -102,6 +103,8 @@ class ArticleInfo extends LogicService
if ($user->id > 0) { if ($user->id > 0) {
$me['logged'] = 1;
$likeRepo = new ArticleLikeRepo(); $likeRepo = new ArticleLikeRepo();
$like = $likeRepo->findArticleLike($article->id, $user->id); $like = $likeRepo->findArticleLike($article->id, $user->id);

View File

@ -79,6 +79,7 @@ class ChapterInfo extends LogicService
'role_type' => 0, 'role_type' => 0,
'plan_id' => 0, 'plan_id' => 0,
'position' => 0, 'position' => 0,
'logged' => 0,
'joined' => 0, 'joined' => 0,
'owned' => 0, 'owned' => 0,
'liked' => 0, 'liked' => 0,
@ -94,6 +95,8 @@ class ChapterInfo extends LogicService
if ($user->id > 0) { if ($user->id > 0) {
$me['logged'] = 1;
$likeRepo = new ChapterLikeRepo(); $likeRepo = new ChapterLikeRepo();
$like = $likeRepo->findChapterLike($chapter->id, $user->id); $like = $likeRepo->findChapterLike($chapter->id, $user->id);

View File

@ -54,6 +54,7 @@ class CommentInfo extends LogicService
protected function handleMeInfo(CommentModel $comment, UserModel $user) protected function handleMeInfo(CommentModel $comment, UserModel $user)
{ {
$me = [ $me = [
'logged' => 0,
'liked' => 0, 'liked' => 0,
'owned' => 0, 'owned' => 0,
]; ];
@ -64,6 +65,8 @@ class CommentInfo extends LogicService
if ($user->id > 0) { if ($user->id > 0) {
$me['logged'] = 1;
$likeRepo = new AnswerLikeRepo(); $likeRepo = new AnswerLikeRepo();
$like = $likeRepo->findAnswerLike($comment->id, $user->id); $like = $likeRepo->findAnswerLike($comment->id, $user->id);

View File

@ -76,6 +76,7 @@ trait ListTrait
foreach ($comments as $comment) { foreach ($comments as $comment) {
$result[$comment['id']] = [ $result[$comment['id']] = [
'logged' => $user->id > 0 ? 1 : 0,
'liked' => in_array($comment['id'], $likedIds) ? 1 : 0, 'liked' => in_array($comment['id'], $likedIds) ? 1 : 0,
'owned' => $comment['owner_id'] == $user->id ? 1 : 0, 'owned' => $comment['owner_id'] == $user->id ? 1 : 0,
]; ];

View File

@ -90,6 +90,7 @@ class ConsultInfo extends LogicService
protected function handleMeInfo(ConsultModel $consult, UserModel $user) protected function handleMeInfo(ConsultModel $consult, UserModel $user)
{ {
$me = [ $me = [
'logged' => 0,
'liked' => 0, 'liked' => 0,
'owned' => 0, 'owned' => 0,
]; ];
@ -100,6 +101,8 @@ class ConsultInfo extends LogicService
if ($user->id > 0) { if ($user->id > 0) {
$me['logged'] = 1;
$likeRepo = new ConsultLikeRepo(); $likeRepo = new ConsultLikeRepo();
$like = $likeRepo->findConsultLike($consult->id, $user->id); $like = $likeRepo->findConsultLike($consult->id, $user->id);

View File

@ -55,9 +55,10 @@ class ChapterList extends LogicService
foreach ($chapter['children'] as &$lesson) { foreach ($chapter['children'] as &$lesson) {
$owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1; $owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1;
$lesson['me'] = [ $lesson['me'] = [
'owned' => $owned ? 1 : 0,
'progress' => $mapping[$lesson['id']]['progress'] ?? 0, 'progress' => $mapping[$lesson['id']]['progress'] ?? 0,
'duration' => $mapping[$lesson['id']]['duration'] ?? 0, 'duration' => $mapping[$lesson['id']]['duration'] ?? 0,
'owned' => $owned ? 1 : 0,
'logged' => 1,
]; ];
} }
} }
@ -71,9 +72,10 @@ class ChapterList extends LogicService
foreach ($chapter['children'] as &$lesson) { foreach ($chapter['children'] as &$lesson) {
$owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1; $owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1;
$lesson['me'] = [ $lesson['me'] = [
'owned' => $owned ? 1 : 0,
'progress' => 0, 'progress' => 0,
'duration' => 0, 'duration' => 0,
'logged' => 0,
'owned' => $owned ? 1 : 0,
]; ];
} }
} }

View File

@ -75,6 +75,7 @@ trait ConsultListTrait
foreach ($consults as $consult) { foreach ($consults as $consult) {
$result[$consult['id']] = [ $result[$consult['id']] = [
'logged' => $user->id > 0 ? 1 : 0,
'liked' => in_array($consult['id'], $likedIds) ? 1 : 0, 'liked' => in_array($consult['id'], $likedIds) ? 1 : 0,
'owned' => $consult['owner_id'] == $user->id ? 1 : 0, 'owned' => $consult['owner_id'] == $user->id ? 1 : 0,
]; ];

View File

@ -39,11 +39,12 @@ class CourseInfo extends LogicService
'plan_id' => 0, 'plan_id' => 0,
'allow_order' => 0, 'allow_order' => 0,
'allow_reward' => 0, 'allow_reward' => 0,
'progress' => 0,
'logged' => 0,
'joined' => 0, 'joined' => 0,
'owned' => 0, 'owned' => 0,
'reviewed' => 0, 'reviewed' => 0,
'favorited' => 0, 'favorited' => 0,
'progress' => 0,
]; ];
if ($this->joinedCourse) { if ($this->joinedCourse) {
@ -65,18 +66,17 @@ class CourseInfo extends LogicService
$caseModel = $course->attrs['end_date'] < date('Y-m-d'); $caseModel = $course->attrs['end_date'] < date('Y-m-d');
} }
if ($user->id > 0) {
if ($caseOwned && $casePrice && $caseModel) { if ($caseOwned && $casePrice && $caseModel) {
$me['allow_order'] = 1; $me['allow_order'] = 1;
} }
/**
* 付款课程不允许打赏
*/
if ($course->market_price == 0) { if ($course->market_price == 0) {
$me['allow_reward'] = 1; $me['allow_reward'] = 1;
} }
if ($user->id > 0) { $me['logged'] = 1;
$favoriteRepo = new CourseFavoriteRepo(); $favoriteRepo = new CourseFavoriteRepo();

View File

@ -104,6 +104,7 @@ class ReviewList extends LogicService
foreach ($reviews as $consult) { foreach ($reviews as $consult) {
$result[$consult['id']] = [ $result[$consult['id']] = [
'logged' => $user->id > 0 ? 1 : 0,
'liked' => in_array($consult['id'], $likedIds) ? 1 : 0, 'liked' => in_array($consult['id'], $likedIds) ? 1 : 0,
'owned' => $consult['owner_id'] == $user->id ? 1 : 0, 'owned' => $consult['owner_id'] == $user->id ? 1 : 0,
]; ];

View File

@ -68,10 +68,17 @@ class GiftInfo extends LogicService
protected function handleMeInfo(PointGift $gift) protected function handleMeInfo(PointGift $gift)
{ {
$me = ['allow_redeem' => 0]; $me = [
'allow_redeem' => 0,
'logged' => 0,
];
$user = $this->getLoginUser(true); $user = $this->getLoginUser(true);
if ($user->id == 0) return $me;
$me['logged'] = 1;
$userRepo = new UserRepo(); $userRepo = new UserRepo();
$balance = $userRepo->findUserBalance($user->id); $balance = $userRepo->findUserBalance($user->id);