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:
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}) %}
|
{% 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>
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
||||||
];
|
];
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
];
|
];
|
||||||
|
@ -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,19 +66,18 @@ class CourseInfo extends LogicService
|
|||||||
$caseModel = $course->attrs['end_date'] < date('Y-m-d');
|
$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 ($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();
|
$favoriteRepo = new CourseFavoriteRepo();
|
||||||
|
|
||||||
$favorite = $favoriteRepo->findCourseFavorite($course->id, $user->id);
|
$favorite = $favoriteRepo->findCourseFavorite($course->id, $user->id);
|
||||||
|
@ -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,
|
||||||
];
|
];
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user