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;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |