feat: 添加获取系统前台各模块url接口
This commit is contained in:
@@ -3,6 +3,10 @@ declare (strict_types = 1);
|
||||
|
||||
namespace app\admin\controller\v1;
|
||||
|
||||
use app\admin\model\v1\ArticleCategoryModel;
|
||||
use app\admin\model\v1\ArticleModel;
|
||||
use app\admin\model\v1\ProductCategoryModel;
|
||||
use app\admin\model\v1\ProductModel;
|
||||
use think\facade\Db;
|
||||
|
||||
class System
|
||||
@@ -80,4 +84,138 @@ class System
|
||||
|
||||
return success('获取成功', $info);
|
||||
}
|
||||
}
|
||||
|
||||
// 组装系统内页面URL
|
||||
public function urls()
|
||||
{
|
||||
$lang_id = request()->lang_id;
|
||||
|
||||
if (request()->has('link_to')) {
|
||||
$param = request()->get([
|
||||
'link_to',
|
||||
'id'
|
||||
]);
|
||||
|
||||
$urls = [];
|
||||
switch ($param['link_to']) {
|
||||
case 'article':
|
||||
$articles = $this->getArticleByCategory($lang_id, $param['id']);
|
||||
$urls = array_map(function($item) {
|
||||
$item['url'] = (string)url('yy/zz', ['id' => $item['id']]);
|
||||
return $item;
|
||||
}, $articles);
|
||||
break;
|
||||
case 'product':
|
||||
$products = $this->getProductByCategory($lang_id, $param['id']);
|
||||
$urls = array_map(function($item) {
|
||||
$item['url'] = (string)url('yy/zz', ['id' => $item['id']]);
|
||||
return $item;
|
||||
}, $products);
|
||||
break;
|
||||
default:
|
||||
return error('请确认link_to参数');
|
||||
break;
|
||||
}
|
||||
return success('获取成功', $urls);
|
||||
} else {
|
||||
// 获取文章分类
|
||||
$article_category = $this->getArticleCategory($lang_id);
|
||||
// 获取产品分类
|
||||
$product_category = $this->getProductCategory($lang_id);
|
||||
|
||||
$urls = [
|
||||
[
|
||||
'name' => '自定义',
|
||||
'link_to' => 'custom',
|
||||
'data' => []
|
||||
],
|
||||
[
|
||||
'name' => '文章分类',
|
||||
'link_to' => 'article_category',
|
||||
'data' => array_to_tree(array_map(function($item) {
|
||||
$item['url'] = (string)url('yy/zz', ['id' => $item['id']]);
|
||||
return $item;
|
||||
}, $article_category), 0, 'pid', false, false)
|
||||
],
|
||||
[
|
||||
'name' => '文章管理',
|
||||
'link_to' => 'article',
|
||||
'data' => array_to_tree($article_category, 0, 'pid', false, false)
|
||||
],
|
||||
[
|
||||
'name' => '产品分类',
|
||||
'link_to' => 'product_category',
|
||||
'data' => array_to_tree(array_map(function($item) {
|
||||
$item['url'] = (string)url('yy/zz', ['id' => $item['id']]);
|
||||
return $item;
|
||||
}, $product_category), 0, 'pid', false, false)
|
||||
],
|
||||
[
|
||||
'name' => '产品',
|
||||
'link_to' => 'product',
|
||||
'data' => array_to_tree($product_category, 0, 'pid', false, false)
|
||||
]
|
||||
];
|
||||
|
||||
return success('获取成功', $urls);
|
||||
}
|
||||
}
|
||||
// 获取文章分类数据
|
||||
private function getArticleCategory($lang_id)
|
||||
{
|
||||
$data = ArticleCategoryModel::field([
|
||||
'id',
|
||||
'pid',
|
||||
'name'
|
||||
])
|
||||
->language($lang_id)
|
||||
->isShow(true)
|
||||
->order(['sort' => 'asc', 'id' => 'desc'])
|
||||
->select();
|
||||
|
||||
return $data->toArray();
|
||||
}
|
||||
// 获取产品分类数据
|
||||
private function getProductCategory($lang_id)
|
||||
{
|
||||
$data = ProductCategoryModel::field([
|
||||
'id',
|
||||
'pid',
|
||||
'name'
|
||||
])
|
||||
->language($lang_id)
|
||||
->isShow(true)
|
||||
->order(['sort' => 'asc', 'id' => 'desc'])
|
||||
->select();
|
||||
|
||||
return $data->toArray();
|
||||
}
|
||||
// 根据文章分类获取文章
|
||||
private function getArticleByCategory($lang_id, $category_id)
|
||||
{
|
||||
$data = ArticleModel::field([
|
||||
'id',
|
||||
'title' => 'name'
|
||||
])
|
||||
->language($lang_id)
|
||||
->category($category_id)
|
||||
->enabled()
|
||||
->select();
|
||||
|
||||
return $data->toArray();
|
||||
}
|
||||
// 根据产品分类获取产品
|
||||
private function getProductByCategory($lang_id, $category_id)
|
||||
{
|
||||
$data = ProductModel::field([
|
||||
'id',
|
||||
'name'
|
||||
])
|
||||
->language($lang_id)
|
||||
->category($category_id)
|
||||
->isShow(true)
|
||||
->select();
|
||||
|
||||
return $data->toArray();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user