package cn.hmsoft.ltc.service.iface;

import java.sql.SQLException;

import cn.hmsoft.ltc.model.LoginRequest;
import cn.hmsoft.ltc.model.Users;
import javafx.collections.ObservableList;

/**
 * 用户注册、登入接口类
 * @author Administrator
 *
 */
public interface UserService {
	/**
	 * 用户信息注册
	 * @param user
	 */
	public void insertUser(Users user);
	
	/**
	 * 校验用户名和密码码
	 * @param userName
	 * @param passwd
	 * @return
	 * @throws SQLException
	 */
	public LoginRequest checkUserName(String userName,String passwd) throws SQLException;
	
	/**
	 *  注册时校验用户名是否存在
	 * @param userName
	 * @return true 则说明该用户不存在，false则说明该用户存在
	 * @throws SQLException
	 */
	public boolean checkName(String userName) throws SQLException;
	
	/**
	 *   通过用户名修改用户密码密
	 * @param userName  用户名
	 * @param userPwd    密码
	 * @return true 成功，false 失败
	 */
	public boolean updateUserPwd(String userName,String userPwd);
	
	/**
	 * 查询用户id by userName
	 * 
	 * @return
	 * @throws SQLException
	 */
	public Integer selectUsersByUserName(String userName) throws SQLException;
	
	ObservableList<Users> listUsers() throws SQLException;
	
	boolean updateUserFirstLogin(Integer userId);
	
	/**
	 * 通过课程编号查询用户信息
	 * @param courseCode   课程编号
	 * @return
	 * @throws SQLException
	 */
	public Users selectUserByCourseCode(String courseCode) throws SQLException;
}
