MenuBarLogic.php 1.84 KB
Newer Older
庄钊鑫 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
<?php
/**
 * Created by PhpStorm.
 * User: ChiaHsiang
 * Date: 2018/7/31
 * Time: 14:29
 */

namespace app\api\logic\cms;

use app\api\model\GroupMenu;
use app\api\model\Menu;

class MenuBarLogic
{
    private static function showCat($cats, $root)
    {
        $tree = [];
        if (isset($cats[$root])) {
            foreach ($cats[$root] as $k => $cat) {
                $tree[$k] = $cat;
                $children = self::showCat($cats, $cat['uuid']);
                $tree[$k]['children'] = $children;
            }
        }
        return $tree;
    }

    /**
     * @author: Airon
     * @time:   2019年4月
     * description
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function index()
    {
        $result = Menu::build()
            ->order(['sort' => 'DESC'])
            ->select();

        $result = collection($result)->toArray();

        $cats = [];
        foreach ($result as $cat) {
            $cats[$cat['parent_uuid']][] = $cat;
        }

        return ['root' => self::showCat($cats, '0')];
    }

    public static function save($data)
    {
        $data['uuid'] = uuid();
        $data['create_time'] = timeToDate();
        if (empty($data['parent_uuid'])) {
            $data['parent_uuid'] = '0';
        }

        return Menu::build()->insert($data);
    }

    public static function update($data)
    {
        return Menu::build()->where(['uuid' => $data['uuid']])->update($data);
    }

    public static function delete($id)
    {   
        $bool_2 = GroupMenu::build()
            ->where([
                'menu_uuid' => $id,

            ])->delete();

        return Menu::build()
            ->where([
                'uuid' => $id,

            ])->delete();
    }

}