Files
2026-04-14 17:46:22 +08:00

56 lines
2.1 KiB
PHP

<?php
namespace app\api\logic;
use app\admin\logic\distribution\DistributionSettingLogic;
use app\common\basics\Logic;
use app\common\model\distribution\Distribution;
use app\common\model\MenuDecorate;
use app\common\server\ConfigServer;
use app\common\server\UrlServer;
use app\common\enum\MenuEnum;
class MenuLogic extends Logic
{
public static function getMenu($type, $userId = null)
{
$list = MenuDecorate::where(['decorate_type' => $type, 'del' => 0, 'is_show' => 1])
->field('name,image,link_type,link_address,category_id,mnp_params')
->json(['mnp_params'],true)
->order(['sort'=>'desc','id'=>'desc'])
->select()
->toArray();
// 获取分销配置
$config = DistributionSettingLogic::getConfig();
$distribution = Distribution::where('user_id', $userId)->findOrEmpty()->toArray();
$isDistribution = 0;
if (!empty($distribution) && $distribution['is_distribution'] == 1) {
$isDistribution = 1;
}
$menu_content = MenuEnum::getMenuContent();
$menu_content = array_column($menu_content, null, 'link');
$menu_list = [];
foreach ($list as $key => $menu) {
// 分销功能关闭,跳过分销推广菜单
if (!$config['is_open'] && $type == 2 && 201 == $menu['link_address']) {
continue;
}
// 开通分销会员为指定分销 且 当前用户为非分销会员,跳转分销推广菜单
if ($config['apply_condition'] == 3 && !$isDistribution && $type == 2 && 201 == $menu['link_address']) {
continue;
}
$menu_list[] = [
'name' => $menu['name'],
'image' => UrlServer::getFileUrl($menu['image']),
'link' => $menu['link_address'] ?? '',
'is_tab' => $menu_content[$menu['link_address']]['is_tab'] ?? 0,
'link_type' => $menu['link_type'],
'category_id' => $menu['category_id'],
'mnp_params' => $menu['mnp_params'],
];
}
return $menu_list;
}
}