package com.ssm.service.system;

import java.util.List;

import com.dgtis.sso.model.UserModel;
import com.ssm.model.system.SysUser;
import com.ssm.model.system.SysUserExample;
import com.ssm.util.page.PagedResult;

public interface SysUserService {
	
	/**
	 * 根据id查询用户
	 * @param id
	 * @return
	 */
	public SysUser findById(int id);
	
	/**
	 * 登录 根据用户工号和密码查询
	 * @param employeeno
	 * @param password
	 * @return SysUser
	 */
	public SysUser findByEmployeenoAndPasswod(String employeeno
			, String password);
	
	/**
	 * 根据 条件 模糊 查询  列表
	 * @param example
	 * @return 实现分页的对象 ,或产生 N+1问题影响效率
	 */
	@Deprecated
	public PagedResult<SysUser> findAllByExample(SysUserExample example, Integer pageNo, Integer pageSize);
	
	/**
	 * 根据 条件 模糊 查询  列表
	 * @param example
	 * @return 实现分页的对象
	 */
	public PagedResult<SysUser> findAllByContidion(String username, String employeeno, Integer pageNo, Integer pageSize);
	/**
	 * 根据主键 更新 用户 
	 * @param record
	 * @return
	 */
	public int updateByPrimaryKey(SysUser record);
	
	/**
	 * 添加用户
	 * @param record
	 * @return
	 */
	public int insertSelective(SysUser record);
	
	/**
	 * 更新用户
	 * @param record
	 * @return
	 */
	public int updateByPrimaryKeySelective(SysUser record);
	
	/**
	 * 根据员工号查询
	 * @param employeeno
	 * @return
	 */
	public SysUser findByEmployeeno(String employeeno);
	
	/**
	 * 删除用户角色
	 * @param userid
	 * @return
	 */
	public int deleteUserRole(Integer userid);
	
	/**
	 * 添加用户角色
	 * @param userid
	 * @param roleid
	 * @return
	 */
	public int insertUserRole(Integer userid, Integer roleid);
	
	/**
	 * 删除用户
	 * @param userid
	 * @return
	 */
	public int deleteUser(Integer userid);
	
	/**
	 * 查询数据库是否有权限
	 * @param userid
	 * @param menuUrl
	 * @return
	 */
	public int selectPerssion(Integer userid, String menuUrl);
	
	public List<SysUser> selectAllUser();

	/**
	 * 添加用户
	 * @param userModel
	 */
	public void insertUserSave(UserModel userModel);

	/**
	 * 查询该用户是否有权限
	 * @param userid
	 * @param roldid
	 * @return
	 */
	public int selectUserRoleByUserIdAndRoldId(Integer userid, Integer roldid);
}
