Răsfoiți Sursa

奖项设置

licailing 4 ani în urmă
părinte
comite
767269e27d

+ 23 - 7
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeAwardService.java

@@ -105,8 +105,8 @@ public class ProgrammeAwardService {
 
         List<Award> awardList = awardRepo.findAll();
 
-        List<ArtType> all = artTypeRepo.findAll();
-        Map<Long, String> artTypeMap = all
+        List<ArtType> artTypes = artTypeRepo.findAll();
+        Map<Long, String> artTypeMap = artTypes
                 .stream()
                 .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
 
@@ -130,14 +130,14 @@ public class ProgrammeAwardService {
         }
 
         List<Programme> programmeList = programmeRepo.findAllByPerformanceIdAndStatus(performanceId, 2);
-        List<ArtType> artTypes = all.stream()
+        List<ArtType> artParents = artTypes.stream()
                 .filter(artType -> ObjectUtil.isNull(artType.getParent()))
                 .collect(Collectors.toList());
 
 
-        artTypes.forEach(artType -> {
+        artParents.forEach(artType -> {
 
-            List<Long> artTypeIds = all.stream()
+            List<Long> artTypeIds = artParents.stream()
                     .filter(at -> at.getCode().startsWith(artType.getCode()))
                     .map(ArtType::getId)
                     .collect(Collectors.toList());
@@ -171,10 +171,26 @@ public class ProgrammeAwardService {
         List<Programme> programmeList = programmeRepo.findAllByPerformanceIdAndStatus(dtos.get(0)
                 .getPerformanceId(), 2);
 
+        List<ArtType> artTypes = artTypeRepo.findAll();
+        List<ArtType> artParents = artTypes.stream()
+                .filter(artType -> ObjectUtil.isNull(artType.getParent()))
+                .collect(Collectors.toList());
+
+        Map<Long, List<Programme>> map = new HashMap<>();
         //按专业分组
+        artParents.forEach(artType -> {
+            List<Long> artTypeIds = artTypes.stream()
+                    .filter(at -> at.getCode().startsWith(artType.getCode()))
+                    .map(ArtType::getId)
+                    .collect(Collectors.toList());
+            List<Programme> programmes = programmeList.stream()
+                    .filter(programme -> artTypeIds.contains(programme.getSpecialtyId()))
+                    .collect(Collectors.toList());
+
+            //按成绩排序
+            programmes.sort(Comparator.comparingDouble(Programme::getScore));
+        });
 
-        //按成绩排序
-        programmeList.sort(Comparator.comparingDouble(Programme::getScore));
 
         //获得奖项优先级
         List<Award> awards = awardRepo.findAll();