package com.dcit.authority.service;

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.dto.UserRolesInfoDTO;
import com.dcit.authority.model.SysUser;
import com.dcit.authority.model.SysUserRoles;

public interface SysUserService {
	
	int updateByPrimaryKeySelective(SysUser record);
	
	int updateByPrimaryKey(SysUser record);
	
	int insertSelective(SysUser record);
	
	SysUser selectByPrimaryKey(String uid);
    
    String loadAccountRole(String uid);
    
    List<SysUserDTO> getUserList(Map<String, Object> map);
    
    List<SysUser> getUserListByRoleId(String roleId);
    
    boolean authorityUserRole(String account, String roleId);
    
    boolean deleteAuthorityUserRole(String account,String roleId);
    
    SysUserBasicInfoDTO getUserByAccount(String account);
    
    List<SysUser> getNotAuthorityUserListByRoleId(String roleId);
    
    List<UserRolesInfoDTO> selectUserRolesInfoByUid(String userId);
    
    int addOrEditUserRoles(SysUserRoles sysUserRoles);
    
    int deleteUserRolesById(String rid);
    
    int deleteUserRolesByUserId(String userId);
    
    int deleteRoleUsersByRoleId(String roleId);
    
    SysUserRoles selectUserRolesById(String id);
    
    List<SysUser> selectSysUser(String account) throws DataAccessException;

}
