package com.fs.company.service;

import com.fs.company.domain.CompanyUser;
import com.fs.company.vo.CompanyUserVO;
import com.fs.company.vo.DocCompanyUserVO;

import java.util.List;
import java.util.Map;

/**
 * 物业公司管理员信息Service接口
 *
 * @author fs
 * @date 2021-05-25
 */
public interface ICompanyUserService {
    /**
     * 查询物业公司管理员信息
     *
     * @param userId 物业公司管理员信息ID
     * @return 物业公司管理员信息
     */
    public CompanyUser selectCompanyUserById(Long userId);

    /**
     * 查询物业公司管理员信息列表
     *
     * @param companyUser 物业公司管理员信息
     * @return 物业公司管理员信息集合
     */
    public List<CompanyUser> selectCompanyUserList(CompanyUser companyUser);

    /**
     * 新增物业公司管理员信息
     *
     * @param companyUser 物业公司管理员信息
     * @return 结果
     */
    public int insertCompanyUser(CompanyUser companyUser);

    /**
     * 修改物业公司管理员信息
     *
     * @param companyUser 物业公司管理员信息
     * @return 结果
     */
    public int updateCompanyUser(CompanyUser companyUser);

    public int updateAllCompanyUser(CompanyUser companyUser);

    /**
     * 批量删除物业公司管理员信息
     *
     * @param userIds 需要删除的物业公司管理员信息ID
     * @return 结果
     */
    public int deleteCompanyUserByIds(Long[] userIds);

    /**
     * 删除物业公司管理员信息信息
     *
     * @param userId 物业公司管理员信息ID
     * @return 结果
     */
    public int deleteCompanyUserById(Long userId);

    CompanyUser selectUserByUserName(String account);

    String selectUserRoleGroup(String username);

    String selectUserPostGroup(String username);

    int updateUserAvatar(String username, String avatar);

    int resetUserPwd(String userName, String encryptPassword);

    int updateUserProfile(CompanyUser user);

    int checkUserName(String userName);

    public int insertUser(CompanyUser user);
    public int updateUser(CompanyUser user);


    int resetUserPwdByUserId(Long userId, String encryptPassword);

    List<Map<String, Object>> selectAllUsersList(CompanyUser user);

    List<CompanyUserVO> selectMyUserList(CompanyUser user);

    List<CompanyUser> getUserListByDeptId(CompanyUser user);

    Integer selectCompanyUserCountByCompanyId(Long companyId);

    String checkUserNameUnique(String userName);



    List<DocCompanyUserVO> selectDocCompanyUserListByIds(String companyUserIds);

    CompanyUser selectCompanyUserByCompanyIdAndNickName(long companyId, String nickName);

    List<CompanyUserVO> selecCompanyAllUsersList(CompanyUser map);

    CompanyUser selectCompanyUserAdminByCompanyId(Long companyId);
}
