1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-27 04:57:39 +08:00

优化CategoryTreeList

This commit is contained in:
xiaochong0302 2024-04-02 10:48:33 +08:00
parent b96c711a6f
commit d3623b2654
2 changed files with 12 additions and 42 deletions

View File

@ -8,15 +8,16 @@
namespace App\Builders;
use App\Models\Category as CategoryModel;
use Phalcon\Mvc\Model\Resultset;
use Phalcon\Mvc\Model\ResultsetInterface;
use App\Repos\Category as CategoryRepo;
class CategoryTreeList extends Builder
{
public function handle($type)
{
$topCategories = $this->findTopCategories($type);
$categoryRepo = new CategoryRepo();
$topCategories = $categoryRepo->findTopCategories($type);
if ($topCategories->count() == 0) {
return [];
@ -39,7 +40,9 @@ class CategoryTreeList extends Builder
protected function handleChildren(CategoryModel $category)
{
$subCategories = $this->findChildCategories($category->id);
$categoryRepo = new CategoryRepo();
$subCategories = $categoryRepo->findChildCategories($category->id);
if ($subCategories->count() == 0) {
return [];
@ -59,37 +62,4 @@ class CategoryTreeList extends Builder
return $list;
}
/**
* @param int $type
* @return ResultsetInterface|Resultset|CategoryModel[]
*/
protected function findTopCategories($type)
{
$query = CategoryModel::query();
$query->where('parent_id = 0');
$query->andWhere('published = 1');
$query->andWhere('deleted = 0');
$query->andWhere('type = :type:', ['type' => $type]);
$query->orderBy('priority ASC');
return $query->execute();
}
/**
* @param int $parentId
* @return ResultsetInterface|Resultset|CategoryModel[]
*/
protected function findChildCategories($parentId)
{
$query = CategoryModel::query();
$query->where('parent_id = :parent_id:', ['parent_id' => $parentId]);
$query->andWhere('published = 1');
$query->andWhere('deleted = 0');
$query->orderBy('priority ASC');
return $query->execute();
}
}

View File

@ -69,35 +69,35 @@
<tr>
<td>发布问题</td>
<td>{{ event_rule.question_post.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
<td>{{ event_rule.question_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.answer_post.enabled == 1 %}
<tr>
<td>回答问题</td>
<td>{{ event_rule.answer_post.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
<td>{{ event_rule.answer_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.article_liked.enabled == 1 %}
<tr>
<td>文章被赞</td>
<td>{{ event_rule.article_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
<td>{{ event_rule.article_liked.limit }}</td>
</tr>
{% endif %}
{% if event_rule.question_liked.enabled == 1 %}
<tr>
<td>问题被赞</td>
<td>{{ event_rule.question_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
<td>{{ event_rule.question_liked.limit }}</td>
</tr>
{% endif %}
{% if event_rule.answer_liked.enabled == 1 %}
<tr>
<td>回答被赞</td>
<td>{{ event_rule.answer_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
<td>{{ event_rule.answer_liked.limit }}</td>
</tr>
{% endif %}
</tbody>