package com.duanledexianxianxian.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.duanledexianxianxian.demo.dao.UserDao;
import com.duanledexianxianxian.demo.domain.dto.MenuDTO;
import com.duanledexianxianxian.demo.domain.dto.UserDTO;
import com.duanledexianxianxian.demo.domain.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.duanledexianxianxian.demo.domain.model.query.MenuForm;
import com.duanledexianxianxian.demo.domain.model.query.UserForm;
import com.duanledexianxianxian.demo.domain.model.query.UserQuery;

import java.util.List;

/**
 * 用户接口
 *
 * @author duanledexianxianxian
 * @since 2020 -03-19
 */
public interface IUserService extends IService<User> {
    /**
     * Add menu long.
     *
     * @param query the query
     * @return the long
     */
    IPage getUserListPage(UserQuery query);

    /**
     * Gets user menu list.
     *
     * @param userId the user id
     * @return the user menu list
     */
    UserDTO getUserDetail(Long userId);


    /**
     * Add menu long.
     *
     * @param form the form
     * @return the long
     */
    Long addUser(UserForm form);

    /**
     * Edit menu boolean.
     *
     * @param form the form
     * @return the boolean
     */
    Boolean editUser(UserForm form);

    /**
     * Delete menu boolean.
     *
     * @param userId the user id
     * @return the boolean
     */
    Boolean deleteUser(Long userId);
}
