@Override public List<SysUsers> findSysUsersInGroups( String groupIds, int roleCategory, List<SysGroups> lstGroups) { List<Object> gIds = new ArrayList<Object>(); if (groupIds != null && !groupIds.equals("") && groupIds.contains(",")) { String[] arr = groupIds.split(","); for (int i = 0; i < arr.length; i++) { gIds.add(Integer.parseInt(arr[i])); } } else if (groupIds != null && !groupIds.equals("") && !groupIds.contains(",")) { gIds.add(Integer.parseInt(groupIds)); } if (roleCategory != 1) { StringBuffer hql = new StringBuffer("from SysGroups where id in ("); for (int i = 0; i < gIds.size(); i++) { if (i == 0) { hql.append("?"); } else { hql.append(",?"); } } hql.append(")"); List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), gIds.toArray()); gIds = new ArrayList<Object>(); if (lst != null && !lst.isEmpty()) { for (SysGroups givenGroup : lstGroups) { // 当前登录用户所在的群组 for (SysGroups group : lst) { if (roleCategory == 2) { // 校区助理角色 if (givenGroup.getGroupCategory() == 0) { // 所在群组为校区时,应取校区群组ID和校区下班级ID if (group.getId() == givenGroup.getId() || group.getGroupParentId() == givenGroup.getId()) { gIds.add(group.getId()); } } else if (givenGroup.getGroupCategory() == 1) { // 所在群组为班级时,应只取班级ID if (group.getId() == givenGroup.getId()) { gIds.add(group.getId()); } } } else if (roleCategory == 3) { // 教师角色 if (givenGroup.getGroupCategory() == 1) { // 所在群组为班级时,应只取班级ID if (group.getId() == givenGroup.getId()) { gIds.add(group.getId()); } } } } } } } return this.sysUsersManagementDAO.findSysUsersInGroups(gIds); }
@Override public List<Map<String, Object>> findAllCampusOrClass( Map<String, Object> parameters, Integer groupCategory) { List<Map<String, Object>> result = new ArrayList<>(); List<Object> param = new ArrayList<Object>(); StringBuffer hql = new StringBuffer("from SysGroups sgs where sgs.groupCategory = ?"); param.add(groupCategory); if (parameters != null && !parameters.isEmpty()) { for (String key : parameters.keySet()) { hql.append(" and"); hql.append(" sgs."); hql.append(key); hql.append(" = ?"); param.add(parameters.get(key)); } } List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), param.toArray()); if (lst != null && !lst.isEmpty()) { Map<String, Object> map = null; for (SysGroups group : lst) { map = new HashMap<String, Object>(); map.put("id", group.getId()); map.put("text", group.getGroupName()); result.add(map); } } return result; }
private String findParentId(Integer parentId, String parents) { SysGroups sysGroup = this.getCurrentDAO().get(parentId); if (sysGroup != null && sysGroup.getGroupParentId() != -1) { parents += findParentId(sysGroup.getGroupParentId(), parents) + ","; } parents += sysGroup.getId(); return parents; }
@Override public Map<String, Object> findGroup( Integer rowNum, Integer pageSize, Map<String, Object> parameters) { Map<String, Object> resultMap = new HashMap<String, Object>(); List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); Object[] param = null; StringBuffer hql = new StringBuffer("from SysGroups sgs where 1=1"); Pagination<SysGroups> page = new Pagination<>(); page.setFirst(rowNum); page.setPageSize(pageSize); if (parameters != null && !parameters.isEmpty()) { param = new Object[parameters.size()]; int ind = 0; for (String key : parameters.keySet()) { hql.append(" and "); hql.append(key); hql.append(" = ?"); param[ind++] = parameters.get(key); } } Pagination<SysGroups> resultPage = this.getCurrentDAO().findPage(page, hql.toString(), param); if (resultPage.getRows() != null && !resultPage.getRows().isEmpty()) { Map<String, Object> map = null; for (SysGroups sysGroup : resultPage.getRows()) { map = new HashMap<String, Object>(); map.put("id", sysGroup.getId()); map.put("propertyName", sysGroup.getGroupName()); result.add(map); } } resultMap.put("total", page.getTotal()); resultMap.put("rows", result); return resultMap; }
@Override public List<Map<String, Object>> findGroupsForTree(Map<String, Object> parameters) { List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); Object[] param = null; StringBuffer hql = new StringBuffer("From SysGroups sgs where 1=1"); if (parameters != null && !parameters.isEmpty()) { param = new Object[parameters.size()]; int ind = 0; for (String key : parameters.keySet()) { hql.append(" and "); hql.append(key); hql.append(" = ?"); param[ind++] = parameters.get(key); } } hql.append(" order by groupParentId , id"); List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), param); if (lst != null && !lst.isEmpty()) { Map<String, Object> map = null; for (SysGroups sysGroup : lst) { map = new HashMap<String, Object>(); map.put("id", sysGroup.getId()); map.put("text", sysGroup.getGroupName()); map.put("parent", sysGroup.getGroupParentId() == -1 ? "#" : sysGroup.getGroupParentId()); if (sysGroup.getGroupParentId() == -1) { Map<String, Object> state = new HashMap<String, Object>(); state.put("opened", true); state.put("selected", true); map.put("state", state); } result.add(map); } } return result; }
@Override public List<Map<String, Object>> findCampusInfo( Map<String, Object> parameters, Integer groupId, boolean needSelected) { List<Map<String, Object>> result = new ArrayList<>(); if (parameters != null && !parameters.isEmpty()) { List<Object> param = new ArrayList<Object>(); StringBuffer hql = new StringBuffer("from SysGroups sgs "); boolean hasWhere = false; if (parameters.containsKey("groupParentId")) { hql.append(" where sgs.groupParentId = ?"); param.add(parameters.get("groupParentId")); hasWhere = true; } if (parameters.containsKey("groupIds")) { if (!hasWhere) { hql.append(" where "); hasWhere = true; } else { hql.append(" and "); } String groupIds = parameters.get("groupIds") == null ? "" : parameters.get("groupIds").toString(); if (groupIds != null && !groupIds.equals("")) { if (groupIds.contains(",")) { String[] ids = groupIds.split(","); hql.append(" sgs.id in ("); for (int idx = 0; idx < ids.length; idx++) { if (idx == 0) { hql.append("?"); } else { hql.append(",?"); } param.add(ids[idx]); } hql.append(")"); } else { hql.append("sgs.id = ?"); param.add(groupIds); } } } List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), param.toArray()); if (lst != null && !lst.isEmpty()) { Map<String, Object> map = null; for (SysGroups group : lst) { map = new HashMap<String, Object>(); map.put("id", group.getId()); map.put("text", group.getGroupName()); if (needSelected && group.getId() == groupId) { map.put("selected", "selected"); } result.add(map); } } } return result; }
@Override public List<Map<String, Object>> findGroup( Map<String, Object> parameters, Integer currentUserId) { List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); // SysUsers currentUser=sysUsersManagementDAO.get(currentUserId); List<Object> param = new ArrayList<Object>(); StringBuffer hql = new StringBuffer("From SysGroups sgs "); // if // (parameters.containsKey("groupParentId")&&Integer.parseInt(""+parameters.get("groupParentId"))==0){ // List<SysRoles> lstRoles=currentUser.getSysRoles(); // List<SysGroups> lstGroups=currentUser.getSysGroups(); // SysGroups sysGroup=null; // StringBuffer hql_role = new StringBuffer(); // for (SysRoles role:lstRoles){ // if (role.getId()==1||role.getId()==2){ // hql_role=null; // parameters.put("groupParentId",1); // break; // } // if (role.getId()==3){ // for (int i=0;i<lstGroups.size();i++){ // sysGroup=lstGroups.get(i); // if (sysGroup.getGroupCategory()==0){ // if (hql_role.length()>0){ // hql_role.append(" or "); // } // hql_role.append(" sgs.id = ?"); // param.add(sysGroup.getId()); // } // } // // } // } // // if (hql_role!=null&&hql_role.length()>0){ // hql.append(" where ("); // hql.append(hql_role.toString()); // hql.append(")"); // } // } boolean flagWhere = hql.toString().contains("where") ? true : false; if (parameters != null && !parameters.isEmpty()) { for (String key : parameters.keySet()) { if (key.equals("groupParentId") && Integer.parseInt("" + parameters.get(key)) == 0) { continue; } if (flagWhere) { hql.append(" and "); } else { hql.append(" where "); flagWhere = true; } hql.append(key); hql.append(" = ?"); param.add(parameters.get(key)); } } List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), param.toArray()); if (lst != null && !lst.isEmpty()) { Map<String, Object> map = null; for (SysGroups group : lst) { map = new HashMap<String, Object>(); map.put("id", group.getId()); map.put("text", group.getGroupName()); result.add(map); } } return result; }
@Override public List<Map<String, Object>> findGroupsForTree(List<Map<String, Integer>> parameters) { StringBuffer hql = new StringBuffer(); StringBuffer strIds = new StringBuffer(); List<Integer> parameterIds = new ArrayList<Integer>(); // 记录班级的group_id List<Integer> parentIds = new ArrayList<Integer>(); // 记录班级的group_parent_id,现阶段的数据结构group_parent_id就是校区的id for (Map<String, Integer> map : parameters) { parameterIds.add(map.get("groupId")); if (map.get("groupCategory") == 0) { // 校区 parentIds.add(map.get("groupId")); } else if (map.get("groupCategory") == 1) { // 班级 if (strIds.length() > 0) { strIds.append(","); } strIds.append(this.findParentId(map.get("groupId"), strIds.toString())); } } if (strIds.length() != 0) { for (String tmp : strIds.toString().split(",")) { if (tmp != null && !tmp.equals("")) { parameterIds.add(Integer.parseInt(tmp)); } } } List<Object> param = new ArrayList<Object>(); // = ? or sgs.groupParentId = ? or sgs.groupParentId = -1 order by groupParentId , id hql.append("from SysGroups sgs where "); if (parameterIds.size() > 0) { hql.append("sgs.id in ("); for (int i = 0; i < parameterIds.size(); i++) { if (i != 0) { hql.append(" , "); } hql.append("?"); param.add(parameterIds.get(i)); } hql.append(")"); } if (parentIds.size() > 0) { if (parameterIds.size() > 0) { hql.append(" or "); } hql.append("sgs.groupParentId in ("); for (int i = 0; i < parentIds.size(); i++) { if (i != 0) { hql.append(" , "); } hql.append("?"); param.add(parentIds.get(i)); } hql.append(")"); } hql.append("or sgs.groupParentId = -1 order by groupParentId , id"); List<SysGroups> lst = this.getCurrentDAO().find(hql.toString(), param.toArray()); Map<String, Object> mapTemp = null; List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); if (lst != null && !lst.isEmpty()) { for (SysGroups sysGroup : lst) { mapTemp = new HashMap<String, Object>(); mapTemp.put("id", sysGroup.getId()); mapTemp.put("text", sysGroup.getGroupName()); mapTemp.put( "parent", sysGroup.getGroupParentId() == -1 ? "#" : sysGroup.getGroupParentId()); if (sysGroup.getGroupParentId() == -1) { Map<String, Object> state = new HashMap<String, Object>(); state.put("opened", true); state.put("selected", true); mapTemp.put("state", state); } result.add(mapTemp); } } return result; }