package com.keao.edu.auth.dal.dao;

import com.keao.edu.auth.api.entity.SysUser;
import com.keao.edu.auth.api.enums.UserLockFlag;
import com.keao.edu.common.dal.BaseDAO;
import com.keao.edu.im.api.entity.ImUserModel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserDao extends BaseDAO<Integer, SysUser> {

	/**
	 * 根据用户名查询对象
	 * @param username
	 * @return
	 */
	SysUser queryByUsername(String username);

	/**
	 * 根据手机号查询对象
	 * @param phone
	 * @return
	 */
	SysUser queryByPhone(String phone);

	/**
	 * 根据手机号查询对象
	 * @param phone
	 * @return
	 */
	SysUser queryByPhoneAndClient(@Param("phone") String phone, @Param("clientId") String clientId);

	/**
	 * 修改密码
	 * @param mobile
	 * @param password
	 */
	void updatePassword(@Param("mobile") String mobile, @Param("password") String password);

	/**
	 * 根据状态查询
	 * @param status
	 * @return
	 */
	List<SysUser> queryByStatus(UserLockFlag status);

	/**
	 * 刷新用户token
	 * @param userId
	 * @param imToken
	 */
	void refreshImToken(@Param("userId") Integer userId, @Param("imToken") String imToken);

	/**
	 * 获取用户基本信息
	 * @param userId
	 * @return
	 */
	ImUserModel getBasic(Integer userId);

    Integer getEmployeeTenantId(Integer userId);

	Integer getTeacherTenantId(Integer userId);

	Integer getTeacherOrganId(Integer userId);

	Integer getEmployeeOrganId(Integer userId);
}