package li.people.record; import java.util.ArrayList; import java.util.List; import li.annotation.Bean; import li.annotation.Table; import li.dao.Page; import li.dao.Record; import li.people.Const; import li.util.Verify; @Bean @Table("t_resource") public class Resource extends Record<Resource, Integer> implements Const { private static final long serialVersionUID = 7989017780707672816L; public List<Resource> list(Page page, String key) { String sql = "SELECT * FROM t_resource WHERE 1=1"; if (!Verify.isEmpty(key)) { sql += " AND(name LIKE '%" + key + "%' OR description LIKE '%" + key + "%')"; } return super.list(page, sql + " ORDER BY description ASC"); } public List<Resource> listByRoleId(Page page, Integer roleId) { String sql = "WHERE id IN (SELECT resource_id from r_role_resource WHERE role_id=?) ORDER BY description ASC"; return list(page, sql, roleId); } public List<Resource> listNotHaveByRoleId(Page page, Integer roleId) { String sql = "WHERE id NOT IN (SELECT resource_id from r_role_resource WHERE role_id=?) ORDER BY description ASC"; return list(page, sql, roleId); } public List<String> listNameByRoleId(Page page, Integer roleId) { List<String> list = new ArrayList<String>(); List<Resource> resources = listByRoleId(page, roleId); for (Resource resource : resources) { list.add(resource.get(String.class, "name")); } return list; } }