mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-22 11:41:27 +08:00
优化me相关信息
This commit is contained in:
parent
5405e1652e
commit
84d21d80da
@ -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}) %}
|
||||
<div class="sidebar wrap">
|
||||
<button class="layui-btn layui-btn-fluid layui-bg-red btn-buy" data-url="{{ order_url }}">立即购买</button>
|
||||
|
@ -68,6 +68,7 @@ class AnswerInfo extends LogicService
|
||||
protected function handleMeInfo(AnswerModel $answer, UserModel $user)
|
||||
{
|
||||
$me = [
|
||||
'logged' => 0,
|
||||
'liked' => 0,
|
||||
'owned' => 0,
|
||||
];
|
||||
@ -78,6 +79,8 @@ class AnswerInfo extends LogicService
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$likeRepo = new AnswerLikeRepo();
|
||||
|
||||
$like = $likeRepo->findAnswerLike($answer->id, $user->id);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -91,6 +91,7 @@ class ArticleInfo extends LogicService
|
||||
protected function handleMeInfo(ArticleModel $article, UserModel $user)
|
||||
{
|
||||
$me = [
|
||||
'logged' => 0,
|
||||
'liked' => 0,
|
||||
'favorited' => 0,
|
||||
'owned' => 0,
|
||||
@ -102,6 +103,8 @@ class ArticleInfo extends LogicService
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$likeRepo = new ArticleLikeRepo();
|
||||
|
||||
$like = $likeRepo->findArticleLike($article->id, $user->id);
|
||||
|
@ -79,6 +79,7 @@ class ChapterInfo extends LogicService
|
||||
'role_type' => 0,
|
||||
'plan_id' => 0,
|
||||
'position' => 0,
|
||||
'logged' => 0,
|
||||
'joined' => 0,
|
||||
'owned' => 0,
|
||||
'liked' => 0,
|
||||
@ -94,6 +95,8 @@ class ChapterInfo extends LogicService
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$likeRepo = new ChapterLikeRepo();
|
||||
|
||||
$like = $likeRepo->findChapterLike($chapter->id, $user->id);
|
||||
|
@ -54,6 +54,7 @@ class CommentInfo extends LogicService
|
||||
protected function handleMeInfo(CommentModel $comment, UserModel $user)
|
||||
{
|
||||
$me = [
|
||||
'logged' => 0,
|
||||
'liked' => 0,
|
||||
'owned' => 0,
|
||||
];
|
||||
@ -64,6 +65,8 @@ class CommentInfo extends LogicService
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$likeRepo = new AnswerLikeRepo();
|
||||
|
||||
$like = $likeRepo->findAnswerLike($comment->id, $user->id);
|
||||
|
@ -76,6 +76,7 @@ trait ListTrait
|
||||
|
||||
foreach ($comments as $comment) {
|
||||
$result[$comment['id']] = [
|
||||
'logged' => $user->id > 0 ? 1 : 0,
|
||||
'liked' => in_array($comment['id'], $likedIds) ? 1 : 0,
|
||||
'owned' => $comment['owner_id'] == $user->id ? 1 : 0,
|
||||
];
|
||||
|
@ -90,6 +90,7 @@ class ConsultInfo extends LogicService
|
||||
protected function handleMeInfo(ConsultModel $consult, UserModel $user)
|
||||
{
|
||||
$me = [
|
||||
'logged' => 0,
|
||||
'liked' => 0,
|
||||
'owned' => 0,
|
||||
];
|
||||
@ -100,6 +101,8 @@ class ConsultInfo extends LogicService
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$likeRepo = new ConsultLikeRepo();
|
||||
|
||||
$like = $likeRepo->findConsultLike($consult->id, $user->id);
|
||||
|
@ -55,9 +55,10 @@ class ChapterList extends LogicService
|
||||
foreach ($chapter['children'] as &$lesson) {
|
||||
$owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1;
|
||||
$lesson['me'] = [
|
||||
'owned' => $owned ? 1 : 0,
|
||||
'progress' => $mapping[$lesson['id']]['progress'] ?? 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) {
|
||||
$owned = ($this->ownedCourse || $lesson['free'] == 1) && $lesson['published'] == 1;
|
||||
$lesson['me'] = [
|
||||
'owned' => $owned ? 1 : 0,
|
||||
'progress' => 0,
|
||||
'duration' => 0,
|
||||
'logged' => 0,
|
||||
'owned' => $owned ? 1 : 0,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -75,6 +75,7 @@ trait ConsultListTrait
|
||||
|
||||
foreach ($consults as $consult) {
|
||||
$result[$consult['id']] = [
|
||||
'logged' => $user->id > 0 ? 1 : 0,
|
||||
'liked' => in_array($consult['id'], $likedIds) ? 1 : 0,
|
||||
'owned' => $consult['owner_id'] == $user->id ? 1 : 0,
|
||||
];
|
||||
|
@ -39,11 +39,12 @@ class CourseInfo extends LogicService
|
||||
'plan_id' => 0,
|
||||
'allow_order' => 0,
|
||||
'allow_reward' => 0,
|
||||
'progress' => 0,
|
||||
'logged' => 0,
|
||||
'joined' => 0,
|
||||
'owned' => 0,
|
||||
'reviewed' => 0,
|
||||
'favorited' => 0,
|
||||
'progress' => 0,
|
||||
];
|
||||
|
||||
if ($this->joinedCourse) {
|
||||
@ -65,19 +66,18 @@ class CourseInfo extends LogicService
|
||||
$caseModel = $course->attrs['end_date'] < date('Y-m-d');
|
||||
}
|
||||
|
||||
if ($caseOwned && $casePrice && $caseModel) {
|
||||
$me['allow_order'] = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 付款课程不允许打赏
|
||||
*/
|
||||
if ($course->market_price == 0) {
|
||||
$me['allow_reward'] = 1;
|
||||
}
|
||||
|
||||
if ($user->id > 0) {
|
||||
|
||||
if ($caseOwned && $casePrice && $caseModel) {
|
||||
$me['allow_order'] = 1;
|
||||
}
|
||||
|
||||
if ($course->market_price == 0) {
|
||||
$me['allow_reward'] = 1;
|
||||
}
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$favoriteRepo = new CourseFavoriteRepo();
|
||||
|
||||
$favorite = $favoriteRepo->findCourseFavorite($course->id, $user->id);
|
||||
|
@ -104,6 +104,7 @@ class ReviewList extends LogicService
|
||||
|
||||
foreach ($reviews as $consult) {
|
||||
$result[$consult['id']] = [
|
||||
'logged' => $user->id > 0 ? 1 : 0,
|
||||
'liked' => in_array($consult['id'], $likedIds) ? 1 : 0,
|
||||
'owned' => $consult['owner_id'] == $user->id ? 1 : 0,
|
||||
];
|
||||
|
@ -68,10 +68,17 @@ class GiftInfo extends LogicService
|
||||
|
||||
protected function handleMeInfo(PointGift $gift)
|
||||
{
|
||||
$me = ['allow_redeem' => 0];
|
||||
$me = [
|
||||
'allow_redeem' => 0,
|
||||
'logged' => 0,
|
||||
];
|
||||
|
||||
$user = $this->getLoginUser(true);
|
||||
|
||||
if ($user->id == 0) return $me;
|
||||
|
||||
$me['logged'] = 1;
|
||||
|
||||
$userRepo = new UserRepo();
|
||||
|
||||
$balance = $userRepo->findUserBalance($user->id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user