package com.fs.hospital.service;

import java.util.List;

import com.fs.hospital.domain.HospitalUser;
import com.fs.hospital.vo.HospitalUserListHVO;
import com.fs.hospital.vo.HospitalUserHVO;

/**
 * 员工信息Service接口
 *
 * @author fs
 * @date 2024-02-26
 */
public interface IHospitalUserService
{
    /**
     * 查询员工信息
     *
     * @param userId 员工信息主键
     * @return 员工信息
     */
    public HospitalUser selectHospitalUserByUserId(Long userId);

    /**
     * 查询员工信息列表
     *
     * @param hospitalUser 员工信息
     * @return 员工信息集合
     */
    public List<HospitalUser> selectHospitalUserList(HospitalUser hospitalUser);

    /**
     * 新增员工信息
     *
     * @param hospitalUser 员工信息
     * @return 结果
     */
    public int insertHospitalUser(HospitalUser hospitalUser);

    /**
     * 修改员工信息
     *
     * @param hospitalUser 员工信息
     * @return 结果
     */
    public int updateHospitalUser(HospitalUser hospitalUser);

    /**
     * 批量删除员工信息
     *
     * @param userIds 需要删除的员工信息主键集合
     * @return 结果
     */
    public int deleteHospitalUserByUserIds(Long[] userIds);

    /**
     * 删除员工信息信息
     *
     * @param userId 员工信息主键
     * @return 结果
     */
    public int deleteHospitalUserByUserId(Long userId);

    HospitalUser selectUserByUserName(String username);

    String checkUserNameUnique(String userName);

    List<HospitalUser> getUserListByDeptId(HospitalUser user);

    Integer selectHospitalUserCountByHospitalId(Long hospitalId);

    int resetUserPwdByUserId(Long userId, String encryptPassword);

    List<HospitalUserHVO> selectMyUserList(HospitalUser user);

    String selectUserRoleGroup(String username);

    String selectUserPostGroup(String username);

    int updateUserProfile(HospitalUser user);

    int resetUserPwd(String userName, String encryptPassword);

    int updateUserAvatar(String username, String avatar);

    List<HospitalUserListHVO> selectHospitalUserListVO(HospitalUser user);
}
