package com.qmth.qrzk.repository.user.service;

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

import com.qmth.qrzk.repository.service.query.UserQueryParams;
import com.qmth.qrzk.repository.user.model.ImportBean;
import com.qmth.qrzk.repository.user.model.User;

/**
 * 
 * @author zhonghui
 *
 */
public interface IUserService {
	
	User loginUser(User user);
	
	int updateLastLoginDate(User user);
	
	void updateUser(User user);
	
	public User getUserByLoginName(String loginName);
	
	public List<User> findUsers(List<Integer> ls);
	
	public List<User> queryUsers(UserQueryParams params);
	
	public int addUser(User user);
	
	/**
	 * 检查用户登录名是否重复
	 * @param ownerId 当前要编辑的用户Id，可以为null或者0。如果为null或0，表示是检查在所有用户中查找，反之，表示是在ownerId之外的所有用户中查找
	 * @param loginName 要检查的登录名
	 * @return 同名的个数
	 */
	public int checkLoginName(Integer ownerId,String loginName);
	
	public int updatepassword(User user);
	
	public int updateisEnabled(User user);
	
	public User findById(int id);
	
	public int checkPassword(User user);
	
	/**
	 * 查询能命题某个课程的的用户，即此用户的角色是“命题教师”或者“审题教师”
	 * @param courseId 课程ID
	 * @return
	 */
	public List<User> getCanSetByUsers(int courseId);
	
	public int insertUserList(List<User> list );
	
	public List<User> queryTeachers(UserQueryParams params);
	
	public int queryNameFromList(List<ImportBean> list);
	
	public User queryByName(String name);

	List<User> queryInputers(UserQueryParams params);

	List<User> querySecretarys(UserQueryParams params);
	
	Map<String, Object> saveImportUser(int userType, List<ImportBean> list);

	Map<String, Object> saveImportUserCourse(List<ImportBean> list);
	
	void initUserInfo();
	
	public List<User> queryUsersByCourseId(int courseId);
}
