Sfoglia il codice sorgente

更新学生成绩后台首页

Administrator 1 anno fa
parent
commit
e066ef8c9a

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataStudentBo.java

@@ -57,7 +57,7 @@ public class ScoreDataStudentBo extends BaseEntity {
      * 总分
      * 总分
      */
      */
     //@NotBlank(message = "总分不能为空", groups = { AddGroup.class, EditGroup.class })
     //@NotBlank(message = "总分不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long zongfen;
+    private long zongfen;
 
 
     /**
     /**
      * 平均分
      * 平均分

+ 14 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataServiceImpl.java

@@ -26,6 +26,7 @@ import org.dromara.system.service.score.IScoreDataService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 成绩Service业务层处理
  * 成绩Service业务层处理
@@ -125,6 +126,19 @@ public class ScoreDataServiceImpl implements IScoreDataService {
                     scoreDataStudentBo.setAvg(String.valueOf(zf / scoreDataDetailBoList.size()));
                     scoreDataStudentBo.setAvg(String.valueOf(zf / scoreDataDetailBoList.size()));
                     ScoreDataStudent scoreDataStudent = MapstructUtils.convert(scoreDataStudentBo, ScoreDataStudent.class);
                     ScoreDataStudent scoreDataStudent = MapstructUtils.convert(scoreDataStudentBo, ScoreDataStudent.class);
                     scoreDataStudent.setScoreId(scoreId);
                     scoreDataStudent.setScoreId(scoreId);
+                    //成绩排序
+                    scoreDataStudentBoList = scoreDataStudentBoList.stream().sorted(Comparator.comparingLong(ScoreDataStudentBo::getZongfen).reversed()).collect(Collectors.toList());
+                    int index = 0;// 排名
+                    double lastScore = -1;// 最近一次的分
+                    for (int i = 0; i < scoreDataStudentBoList.size(); i++) {
+                        ScoreDataStudentBo studentBo = scoreDataStudentBoList.get(i);
+                        if (Double.compare(lastScore, studentBo.getZongfen())!=0){
+                            // 如果成绩和上一名的成绩不相同,那么排名+1
+                            lastScore = studentBo.getZongfen();
+                            index++;
+                        }
+                        studentBo.setScoreSort(index+"");
+                    }
                     scoreDataStudentMapper.insert(scoreDataStudent);
                     scoreDataStudentMapper.insert(scoreDataStudent);
                     scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
                     scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
                 }
                 }

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataStudentMapper.xml

@@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
     </resultMap>
     <select id="selectScoreDataByScoreClassId" parameterType="string" resultMap="ScoreDataDetailsResult">
     <select id="selectScoreDataByScoreClassId" parameterType="string" resultMap="ScoreDataDetailsResult">
         select
         select
-            s.zongfen,s.score_id,s.avg,s.details_type
+            s.zongfen,s.score_id,s.avg,s.details_type,s.score_sort
         from
         from
             score_data_student s
             score_data_student s
         WHERE
         WHERE