package com.dcit.authority.dao;

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

import org.springframework.dao.DataAccessException;

import com.dcit.authority.dto.SysUserBasicInfoDTO;
import com.dcit.authority.dto.SysUserDTO;
import com.dcit.authority.model.SysUser;
import com.dcit.authority.shiro.domain.AuthUserInfo;

public interface SysUserMapper {
    int deleteByPrimaryKey(String uid);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(String uid);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);
    
    String selectUserRoles(String uid) throws DataAccessException;

    SysUserBasicInfoDTO selectByAccount(String account) throws DataAccessException;

    List<SysUserDTO> selectUserList(Map<String, Object> map) throws DataAccessException;

    List<SysUser> selectUserListByRoleId(String roleId) throws DataAccessException;

    List<SysUser> selectUserListExtendByRoleId(String roleId) throws DataAccessException;
    
    AuthUserInfo loadAuthUserInfoByAccount(String account) throws DataAccessException;
    
    List<SysUser> selectSysUser(String account) throws DataAccessException;
}