NavController.php 2.8 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');
        $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');

    }


    /**
     * 删除数据
     * @return \Illuminate\Http\JsonResponse
     * @author:dc
     * @time 2023/5/9 9:20
     */
    public function delete(NavRequest $request){
        $id = $request->validated()['id'];
        NavLogic::instance()->delete($id);
        return $this->response('删除成功');

    }


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

    /**
     * @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');
    }






}