package cn.hnthyy.thmz.service.thmz;

import cn.hnthyy.thmz.entity.MzException;
import cn.hnthyy.thmz.entity.thmz.UserMenuRelation;
import cn.hnthyy.thmz.vo.UserMenuRelationVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 菜单与用户的关系表
 */
public interface UserMenuRelationService {
    /**
     * 根据单个id查询菜单关系
     *
     * @param id
     * @return
     */
    UserMenuRelation queryById(Long id);

    /**
     * 根据用户id集合查询菜单关系
     *
     * @param userIds
     * @return
     */
    List<UserMenuRelation> queryByUserIds(List<Long> userIds);

    /**
     * 根据userId查询菜单关系
     *
     * @param userId
     * @return
     */
    List<UserMenuRelation> queryByUserId(Long userId);


    /**
     * 新增菜单关系
     *
     * @param userMenuRelationVo
     * @param createId
     * @return
     */
    int saveMenuRelation(UserMenuRelationVo userMenuRelationVo, Long createId) throws MzException;

    /**
     * 删除菜单关系
     *
     * @param id
     * @return
     */
    int removeById(Long id);

    /**
     * 删除用户对应的所有菜单关系
     *
     * @param userId
     * @return
     */
    int removeByUserId(Long userId);


    /**
     * 删除单个菜单对应的所有菜单关系
     *
     * @param menuId
     * @return
     */
    int removeByMenuId(Long menuId);


}
