Bläddra i källkod

教研分析学期查询bug(多条数据)

caozixuan 3 år sedan
förälder
incheckning
cd9a5a1ebc

+ 15 - 12
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysReportController.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.report.api;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -21,9 +22,9 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Api(tags = "教研分析学校公用Controller")
 @RestController
@@ -46,16 +47,18 @@ public class SysReportController {
     @RequestMapping(value = "/common/list_semester", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "考试信息", response = TBExamResult.class)})
     public Result listSemester(@ApiParam(value = "学校id", required = true) @RequestParam String schoolId) {
-        QueryWrapper<TBExam> tbExamQueryWrapper = new QueryWrapper<>();
-        tbExamQueryWrapper.select(" DISTINCT id,semester_id,exam_time ").eq("school_id", SystemConstant.convertIdToLong(schoolId)).orderByDesc("exam_time");
-        List<TBExam> tbExamList = tbExamService.list(tbExamQueryWrapper);
-        List<TBExamResult> tbExamResultList = null;
-        if (Objects.nonNull(tbExamList) && tbExamList.size() > 0) {
-            tbExamResultList = new ArrayList<>();
-            for (TBExam tbExam : tbExamList) {
-                tbExamResultList.add(new TBExamResult(tbExam.getSemesterId(), basicSemesterService.getById(tbExam.getSemesterId()).getName()));
-            }
+        List<TBExam> tbExamList = tbExamService.list(new QueryWrapper<TBExam>().lambda().eq(TBExam::getSchoolId,schoolId));
+        Set<Long> semesterIdSet = tbExamList.stream().map(TBExam::getSemesterId).collect(Collectors.toSet());
+        List<BasicSemester> basicSemesterList = new ArrayList<>();
+        if (semesterIdSet.size() > 0){
+            basicSemesterList = basicSemesterService.list(new QueryWrapper<BasicSemester>().lambda().in(BasicSemester::getId,semesterIdSet).orderByDesc(BasicSemester::getCreateTime));
         }
+        List<TBExamResult> tbExamResultList = basicSemesterList.stream().flatMap(e -> {
+            TBExamResult tbExamResult = new TBExamResult();
+            tbExamResult.setId(e.getId());
+            tbExamResult.setSemesterStr(e.getName());
+            return Stream.of(tbExamResult);
+        }).collect(Collectors.toList());
         return ResultUtil.ok(tbExamResultList);
     }