package com.securitycontrol.system.mapper;

import com.securitycontrol.entity.system.dto.MenuDto;
import com.securitycontrol.entity.system.vo.MenuVo;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author：cwchen
 * @date：2024-02-26-18:07
 * @version：1.0
 * @description：菜单管理-数据库访问层
 */
@Repository(value = "IMenuMapper")
public interface IMenuMapper {
    /**
     * 菜单列表
     *
     * @param dto
     * @return List<MenuVo>
     * @description
     * @author cwchen
     * @date 2024/2/27 9:35
     */
    List<MenuVo> getMenuList(MenuDto dto);

    /**
     * 菜单名称是否存在
     *
     * @param vo
     * @return int
     * @description 菜单名称是否存在
     * @author cwchen
     * @date 2024/2/27 11:29
     */
    int isMenuName(MenuVo vo);

    /**
     * 新增/修改菜单
     *
     * @param vo
     * @description 新增/修改菜单
     * @author cwchen
     * @date 2024/2/27 11:29
     */
    void addOrUpdateMenu(MenuVo vo);

    /**
     * 当前节点是否存在子节点
     *
     * @param dto
     * @return int
     * @description 当前节点是否存在子节点
     * @author cwchen
     * @date 2024/2/27 13:21
     */
    int isExistChild(MenuDto dto);

    /**
     * 删除菜单
     *
     * @param dto
     * @description 删除菜单
     * @author cwchen
     * @date 2024/2/27 13:21
     */
    void delMenu(MenuDto dto);

    /**
     * 菜单详情
     *
     * @param dto
     * @return MenuVo
     * @description 菜单详情
     * @author cwchen
     * @date 2024/2/27 13:22
     */
    MenuVo getMenuById(MenuDto dto);
}
