package com.ylcm.sys.mapper;

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

import com.ylcm.sys.domain.User;


@SuppressWarnings("rawtypes")
public interface UserMapper {

	/**
	 * 新增用户
	 * 
	 * @param user
	 *            用户信息
	 */
	int addUser(User user);

	/**
	 * 修改用户
	 * 
	 * @param user
	 *            用户信息
	 */
	void updUser(User user);

	/**
	 * 删除用户
	 * 
	 * @param userId
	 *            用户标识
	 */
	void delUser(int userId);

	/**
	 * 根据条件统计用户总数
	 * 
	 * @param map
	 *            查询条件
	 * @return 用户总数
	 */
	int getRowCount(Map map);

	/**
	 * 分页获取用户信息
	 * 
	 * @param map
	 *            查询条件
	 * @return 用户信息
	 */
	List<User> getUserList(Map map);

	/**
	 * 根据用户标识获取用户信息
	 * 
	 * @param userId
	 *            用户标识
	 * @return 用户信息
	 */
	User getUserById(int userId);

	/**
	 * 删除用户信息(只删除未关联角色的用户)
	 * 
	 * @param ids
	 *            用户标识集合
	 */
	void delUsersByIds(String[] ids);

	/**
	 * 修改密码
	 * 
	 * @param map
	 *            用户标识及新密码信息
	 */
	void updatePwd(Map map);

	/**
	 * 用户唯一性判断
	 * 
	 * @param map
	 *            条件
	 * @return 数量
	 */
	int getCheckUser(Map map);

	/**
	 * 根据登录名和用户标识查找登录名是否已存在
	 * 
	 * @param map
	 *            登录名和用户标识
	 * @return 已存在的用户
	 */
	int getUserByLoginNameNeId(Map map);

	/**
	 * 根据登录名获取用户信息
	 * 
	 * @param loginName
	 * @return 用户信息
	 */
	User getUserByLoginName(String loginName);

	/**
	 * 修改状态
	 * 
	 * @param map
	 *            用户标识及状态
	 */
	void updUserStatus(Map map);

	/**
	 * 根据openid判断用户唯一性
	 * 
	 * @param map
	 *            条件
	 * @return 数量
	 */
	int getCheckUserByOpenId(Map map);

	/**
	 * 根据openid获取user
	 * 
	 * @param map
	 * @return
	 */
	User getUserByOpenId(Map map);

}