# 代码实例 **Repository Path**: cainiaobai/code_instance ## Basic Information - **Project Name**: 代码实例 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` @Override @Transactional(readOnly = true) public List findQuotaUserOfGroup(String qualityId, String userId, Integer groupType) { //根据权限类型查询所有四级指标并且带权限班级ids字符串 List fourVoList = qualityFourQuotaDao.findQuotaUserOfGroup(qualityId, userId, groupType); //找出所有班级并分组 List classAllList = qualityBaseClassDao.findByQualityIdAndClassType(qualityId,null); //不用Guava的Function创建map的方法,是因为要把行政班拿出来,所以直接一次循环 Map classMap = new HashMap<>(); //拥有全部权限的时候用这个list List xzClassIds = new ArrayList<>(); for(QualityBaseClass cla : classAllList){ classMap.put(cla.getId(),cla ); if(QualityBaseClass.CLASS_TYPE_XZ.equals(cla.getClassType())){ xzClassIds.add(cla.getId()); } } //根据返回的四级指标所带的classIds找出指标对应的班级权限(与工作组有关)-----start //当前登录人四级指标对应的权限班级id 当对应班级id集合不为空但长度为0时(即 xzClassIds),表示拥有所以行政班的权限 Map> fourClassIdsMap = new HashMap<>(); for (QualityFourQuotaVo fourVo : fourVoList){ //当前登录人,此四级指标权限为全部学生,则不需要做任何操作 List fourClassIds = fourClassIdsMap.get(fourVo.getId()); if(null != fourClassIds && fourClassIds.equals(xzClassIds)){ continue; } //将班级id添加到记录指标id和classIdList 对应关系的map中 String classIds = fourVo.getClassIds(); String[] classIdArray = classIds.split(","); if(classIdArray.length > 0){ if(null == fourClassIds){ fourClassIds = new ArrayList<>(); } for(String claId : classIdArray){ if (!fourClassIds.contains(claId)){ fourClassIds.add(claId); } } }else { fourClassIdsMap.put(fourVo.getId(),xzClassIds ); } } //根据处理好的fourClassIdsMap 指标和班级权限关系set四级指标中的班级信息 for(QualityFourQuotaVo fourVo : fourVoList){ List claIdList = fourClassIdsMap.get(fourVo.getId()); if(CollectionUtils.isEmpty(claIdList)){ claIdList = xzClassIds; } List classList = new ArrayList<>(); for(String claId : claIdList){ QualityBaseClass cla = classMap.get(claId); if(null != cla){ classList.add(cla); } } fourVo.setClassList(classList); } return fourVoList; } ```