package com.taobao.easyweb.security.dao; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import org.springframework.stereotype.Component; import com.taobao.easyweb.security.domain.RoleUserPermission; import com.taobao.easyweb.security.domain.User; @Component("ewUserDAO") public class UserDAO extends SqlMapClientDaoSupport { public User queryById(Integer id) { return (User) getSqlMapClientTemplate().queryForObject("userDAO.queryById", id); } @SuppressWarnings("unchecked") public List<User> queryByIds(List<Integer> ids) { return getSqlMapClientTemplate().queryForList("userDAO.queryByIds", ids); } public User queryByName(String name) { return (User) getSqlMapClientTemplate().queryForObject("userDAO.queryByName", name); } @SuppressWarnings("unchecked") public List<User> queryAll(int start, int limit) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("start", start); map.put("limit", limit); return getSqlMapClientTemplate().queryForList("userDAO.queryAll", map); } public int queryCount() { return (Integer) getSqlMapClientTemplate().queryForObject("userDAO.queryCount"); } public void save(User user) { getSqlMapClientTemplate().insert("userDAO.save", user); } @SuppressWarnings("unchecked") public List<Integer> queryUserPermissions(Integer userId) { return getSqlMapClientTemplate().queryForList("userPermissionDAO.queryUserPermissions", userId); } public int applyPermission(Integer userId, Integer permissionId) { RoleUserPermission userPermission = new RoleUserPermission(); userPermission.setPermissionId(permissionId); userPermission.setType(1); userPermission.setStatus(0); userPermission.setRoleOrUserId(userId); getSqlMapClientTemplate().insert("roleUserPermissionDAO.save", userPermission); return 0; } public int removePermission(Integer userId, Integer permissionId) { RoleUserPermission userPermission = new RoleUserPermission(); userPermission.setPermissionId(permissionId); userPermission.setType(1); userPermission.setRoleOrUserId(userId); getSqlMapClientTemplate().delete("roleUserPermissionDAO.delete", userPermission); return 0; } public void addRole(Integer userId, Integer roleId) { Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", userId); map.put("roleId", roleId); if (queryUserRole(userId, roleId) != null) { return; } getSqlMapClientTemplate().insert("userDAO.addRole", map); } public Integer queryUserRole(Integer userId, Integer roleId) { Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", userId); map.put("roleId", roleId); return (Integer) getSqlMapClientTemplate().queryForObject("userDAO.queryUserRole", map); } @SuppressWarnings("unchecked") public List<Integer> queryUserRoles(Integer userId) { return getSqlMapClientTemplate().queryForList("userDAO.queryUserRoles", userId); } public void deleteRole(Integer userId, Integer roleId) { Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", userId); map.put("roleId", roleId); getSqlMapClientTemplate().insert("userDAO.deleteRole", map); } }