NavController.php 3.0 KB
<?php

namespace App\Http\Controllers\Bside\Nav;


use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Nav\NavLogic;
use App\Http\Requests\Bside\Nav\NavRequest;
use App\Models\Nav\BNav;

/**
 * 导航栏目 b端编辑 c端显示
 * @author:dc
 * @time 2023/5/8 16:31
 * Class NavController
 * @package App\Http\Controllers\Bside
 */
class NavController extends BaseController
{


    /**
     * 列表数据
     * @throws \Psr\Container\ContainerExceptionInterface
     * @throws \Psr\Container\NotFoundExceptionInterface
     * @author:dc
     * @time 2023/5/8 16:37
     */
    public function index(BNav $nav){
        $this->map['project_id'] = $this->user['project_id'];
        $lists = $nav->list($this->map,$this->order = ['sort','id']);
        $data = array();
        foreach ($lists as $v){
            $v = (array)$v;
            if ($v['pid'] == 0) {
                $v['sub'] = _get_child($v['id'], $lists);
                $data[]   = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$data);
    }


    /**
     * @remark :保存数据
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/8/21 11:32
     */
    public function save(NavRequest $request,NavLogic $logic){
        $request->validated();
        $logic->navSave();
        $this->response('success');

    }


    /**
     * @remark :删除菜单
     * @name   :delete
     * @author :lyh
     * @method :post
     * @time   :2023/8/23 11:09
     */
    public function delete(NavLogic $logic){
        $this->request->validate([
            'id'=>'required',
        ],[
            'id.required' => '产品ID不能为空',
        ]);
        $logic->navDelete();
        $this->response('success');

    }


    /**
     * @author:dc
     * @time 2023/5/9 16:14
     */
    public function urls(){
        // todo::需要配合 c端来
        $data = [
            ['url'=>'index', 'name'=>'首页'],
            ['url'=>'news', 'name'=>'新闻'],
            ['url'=>'products', 'name'=>'产品'],
            ['url'=>'search', 'name'=>'搜索页'],
            ['url'=>'blog', 'name'=>'博客']
        ];
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :排序
     * @name   :sort
     * @author :lyh
     * @method :post
     * @time   :2023/8/22 9:49
     */
    public function sort(NavLogic $navLogic){
        $this->request->validate([
            'id'=>'required',
            'sort'=>'required'
        ],[
            'id.required' => '产品ID不能为空',
            'sort.required'=>'排序字段不能为空'
        ]);
        $navLogic->navSort();
        $this->response('success');
    }

    /**
     * 一键导入子菜单
     * @author zbj
     * @date 2023/11/21
     */
    public function import(NavLogic $navLogic){
        $this->request->validate([
            'id'=>'required',
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $navLogic->importNav();
        $this->response('success');
    }
}