66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.2 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')
 | |
|             ->order('sort desc')
 | |
|             ->select()
 | |
|             ->toArray();
 | |
| 
 | |
|         $menu_list = [];
 | |
| 
 | |
|         switch($type) {
 | |
|             case 1:
 | |
|                 $type_desc = 'index';
 | |
|                 break;
 | |
|             case 2:
 | |
|                 $type_desc = 'center';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         // 获取分销配置
 | |
|         $config = DistributionSettingLogic::getConfig();
 | |
|         $distribution = Distribution::where('user_id', $userId)->findOrEmpty()->toArray();
 | |
|         $isDistribution = 0;
 | |
|         if (!empty($distribution) && $distribution['is_distribution'] == 1) {
 | |
|             $isDistribution = 1;
 | |
|         }
 | |
|         foreach ($list as $key => $menu) {
 | |
|             $menu_content = [];
 | |
|             if(1 == $menu['link_type']){
 | |
|                 $menu_content = MenuEnum::getMenu($type_desc, $menu['link_address']);
 | |
| 
 | |
|             }
 | |
|             // 分销功能关闭,跳过分销推广菜单
 | |
|             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_content['link'] ?? $menu['link_address'],
 | |
|                 'is_tab' => $menu_content['is_tab'] ?? '',
 | |
|                 'link_type' => $menu_content['link_type'] ?? $menu['link_type'],
 | |
|             ];
 | |
|         }
 | |
|         return $menu_list;
 | |
|     }
 | |
| } |