RoleMenuController.php 2.8 KB
<?php
/**
 * @remark :
 * @name   :RoleMenuController.php
 * @author :lyh
 * @method :post
 * @time   :2023/7/25 14:03
 */

namespace App\Http\Controllers\Aside\Manage;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Manage\MenuLogic;
use App\Models\Manage\Menu;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;


/**
 * @remark :权限菜单列表
 * @name   :RoleMenuController
 * @author :lyh
 * @method :post
 * @time   :2023/7/25 14:04
 */
class RoleMenuController extends BaseController
{
    /**
     * @remark :权限菜单列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/7/25 14:05
     */
    public function lists(MenuLogic $menuLogic){
        $lists = $menuLogic->roleMenuList(['type'=>0]);
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :当前数据详情
     * @name   :info
     * @author :lyh
     * @method :post
     * @time   :2023/8/2 16:22
     */
    public function info(MenuLogic $menuLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $lists = $menuLogic->roleMenuInfo();
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取所有的路由
     * @name   :routes
     * @author :lyh
     * @method :post
     * @time   :2023/7/25 14:44
     */
    public function routes(){
        //已绑定菜单的路由
        $menu_route = array_filter(Menu::pluck('route_name')->toArray());
        //路由
        $list = [];
        $routes = Route::getRoutes()->getRoutesByName();
        foreach ($routes as $name => $route) {
            if(Str::startsWith($name, 'admin.') && !Str::endsWith($name, '.white') && !in_array($name, $menu_route)){
                $list[] = $name;
            }
        }
        $this->response('success',Code::SUCCESS,$list);;
    }
    /**
     * @remark :保存权限菜单
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/7/25 14:18
     */
    public function save(MenuLogic $menuLogic){
        if(isset($this->param['id']) && !empty($this->param['id'])){
            $this->request->validate([
                'id'=>'required'
            ],[
                'id.required' => 'ID不能为空'
            ]);
        }
        $menuLogic->roleMenuSave();
        $this->response('success');
    }

    /**
     * @remark :删除权限菜单
     * @name   :del
     * @author :lyh
     * @method :post
     * @time   :2023/7/26 9:18
     */
    public function del(MenuLogic $menuLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $menuLogic->roleMenuDel();
        $this->response('success');
    }

}