package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.common.util.PageUtils;
import com.kcim.common.util.Result;
import com.kcim.dao.model.User;
import com.kcim.dao.model.dto.LoginDTO;
import com.kcim.dao.model.dto.UserDto;
import com.kcim.vo.LoginVO;
import com.kcim.vo.UserVO;

import java.util.List;

/**
 * 用户表
 *
 * @author huangrui
 * @email 
 * @date 2021-07-26 08:47:54
 */
public interface UserService extends IService<User> {


    /**
     * 登录接口
     * @param loginDTO {@link LoginDTO} 登录相关参数
     * @return
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 查询查询用户的数据信息
     * @param page
     * @param pageSize
     * @param hospId
     * @return
     */
    PageUtils queryList(Integer page, Integer pageSize, Long hospId, String name);

    /**
     * 根据用户的姓名查询用户
     * @param name
     * @return
     */
    List<UserVO> getByUserName(String name);

    /**
     * 保存用户信息
     * @param userDto
     */
    void saveUser(UserDto userDto);

    /**
     * 删除用户
     * @param userDto
     */
    void updateByUser(UserDto userDto);

    /**
     * 导入用户操作
     *
     * @param list 读取的列表
     */
    Result importUser(List<List<Object>> list);

    /**
     * 退出登录
     * @param user
     */
    void logout(User user);

    /**
     * 通过用户id和医院id获取用户的名称，如果不存在，返回""
     * @param createUserId id
     * @param hospId 医院id
     * @return 用户名称，如果不存在返回空字符串
     */
    String getUsernameByIdAndHospId(Long createUserId, Long hospId);

    /**
     * 批量删除用户集合
     * @param asList idList
     */
    void deleteByIds(List<Integer> asList);
}

