Files
huangjingfen/pro_v3.5.1/app/services/diy/PageCategoryServices.php

69 lines
1.7 KiB
PHP
Raw Normal View History

<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\services\diy;
use app\services\BaseServices;
use app\dao\diy\PageCategoryDao;
use crmeb\services\CacheService;
use think\annotation\Inject;
/**
* 链接分组
* Class PageCategoryServices
* @package app\services\diy
* @mixin PageCategoryDao
*/
class PageCategoryServices extends BaseServices
{
protected string $tree_page_category_key = 'tree_page_categroy';
/**
* @var PageCategoryDao
*/
#[Inject]
protected PageCategoryDao $dao;
/**
* 获取分类列表
* @return bool|mixed|null
*/
public function getCategroyList()
{
return CacheService::get($this->tree_page_category_key, function () {
return $this->getSonCategoryList();
}, 86400) ?: [];
}
/**
* tree分类列表
* @param int $pid
* @param string $parent_name
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getSonCategoryList($pid = 0)
{
$list = $this->dao->getList(['pid' => $pid], 'id,pid,type,name');
$arr = [];
if ($list) {
foreach ($list as $item) {
$item['title'] = $item['name'];
$item['expand'] = true;
$item['children'] = $this->getSonCategoryList($item['id']);
$arr [] = $item;
}
}
return $arr;
}
}