package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.common.util.PageUtils;
import com.kcim.dao.model.Menu;
import com.kcim.dao.model.User;
import com.kcim.dao.model.dto.MenuEditDTO;
import com.kcim.dao.model.dto.MenuSaveDTO;
import com.kcim.vo.NavVO;

import java.util.List;

/**
 * 菜单管理
 *
 * @author huangrui
 * @email 
 * @date 2021-08-03 08:56:22
 */
public interface MenuService extends IService<Menu> {

    /**
     * 保存菜单
     * @param menuSaveDTO {@link MenuSaveDTO}
     * @param user {@linkplain User}
     */
    void saveMenu(MenuSaveDTO menuSaveDTO, User user);

    /**
     * 分页查询菜单列表
     * @param page 页码
     * @param pageSize 每页数据大小
     * @param user 当前登录用户
     * @param name
     * @return 菜单分页列表
     */
    PageUtils selectList(Integer page, Integer pageSize, User user, String name);

    /**
     * 编辑某个菜单
     * @param menuDTO
     * @param user
     */
    void updateMenu(MenuEditDTO menuDTO, User user);

    /**
     * 获取当前登录人的菜单列表
     * @param user {@link User}
     * @return
     */
    List<NavVO> getNav(User user);

    /**
     *  批量删除菜单
     * @param idList 菜单Id的集合
     */
    void deleteByIds(List<Long> idList);
}

