Commit 0c106b03 authored by 陈立彬's avatar 陈立彬

更新已考接口完善

parent 95d5baa2
...@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.micrometer.common.util.StringUtils; import io.micrometer.common.util.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.compress.utils.Lists;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -20,6 +21,7 @@ import java.util.Date; ...@@ -20,6 +21,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@RestController @RestController
...@@ -138,6 +140,7 @@ public class ExamController { ...@@ -138,6 +140,7 @@ public class ExamController {
Double avgScore = 0D; Double avgScore = 0D;
Double totalScore = 0D; Double totalScore = 0D;
int examNum = 0; int examNum = 0;
List<SingleQaResult> qaResultList = Lists.newArrayList();
LambdaQueryWrapper<ElehSessionQaRecordDo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ElehSessionQaRecordDo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ElehSessionQaRecordDo::getTenant, tenant); queryWrapper.eq(ElehSessionQaRecordDo::getTenant, tenant);
...@@ -148,11 +151,25 @@ public class ExamController { ...@@ -148,11 +151,25 @@ public class ExamController {
totalScore = qaRecordDos.stream().mapToDouble(ElehSessionQaRecordDo::getScore).sum(); totalScore = qaRecordDos.stream().mapToDouble(ElehSessionQaRecordDo::getScore).sum();
examNum = qaRecordDos.size(); examNum = qaRecordDos.size();
avgScore = totalScore / examNum; avgScore = totalScore / examNum;
// 数据转换
qaResultList = qaRecordDos.stream().map(v -> {
ElehKnowledgeDo knowledgeDo = knowledgeMapper.selectQuestion(v.getTenant(), v.getQuestionId());
SingleQaResult qa = new SingleQaResult();
qa.setQuestion(knowledgeDo.getQuestion());
qa.setAnswer(knowledgeDo.getAnswer());
qa.setUserAnswer(v.getAnswer());
qa.setScore(v.getScore());
qa.setScoreCriteria(v.getScoreCriteria());
return qa;
}).collect(Collectors.toList());
} }
SessionExamResult result = new SessionExamResult(); SessionExamResult result = new SessionExamResult();
result.setAvgScore(avgScore); result.setAvgScore(avgScore);
result.setTotalScore(totalScore); result.setTotalScore(totalScore);
result.setExamNum(examNum); result.setExamNum(examNum);
result.setQaResultList(qaResultList);
return ApiResponse.ok(result); return ApiResponse.ok(result);
} }
......
...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@Data @Data
public class SessionExamResult implements Serializable { public class SessionExamResult implements Serializable {
...@@ -16,4 +17,7 @@ public class SessionExamResult implements Serializable { ...@@ -16,4 +17,7 @@ public class SessionExamResult implements Serializable {
@JsonProperty("exam_num") @JsonProperty("exam_num")
private int examNum; private int examNum;
@JsonProperty("qa_result_list")
private List<SingleQaResult> qaResultList;
} }
package cn.aibreeze.exam.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SingleQaResult implements Serializable {
@JsonProperty("question")
private String question;
@JsonProperty("answer")
private String answer;
@JsonProperty("user_answer")
private String userAnswer;
@JsonProperty("score")
private Double score;
@JsonProperty("score_criteria")
private String scoreCriteria;
}
...@@ -12,4 +12,6 @@ public interface ElehKnowledgeMapper extends BaseMapper<ElehKnowledgeDo> { ...@@ -12,4 +12,6 @@ public interface ElehKnowledgeMapper extends BaseMapper<ElehKnowledgeDo> {
@Select(value = "select * from eleh_knowledge where tenant = #{tenant} and tag_id = #{tagId} and id > #{questionId} order by id ASC limit 1") @Select(value = "select * from eleh_knowledge where tenant = #{tenant} and tag_id = #{tagId} and id > #{questionId} order by id ASC limit 1")
ElehKnowledgeDo selectQuestion(@Param("tenant") Integer tenant, @Param("tagId") Long tagId, @Param("questionId") Long questionId); ElehKnowledgeDo selectQuestion(@Param("tenant") Integer tenant, @Param("tagId") Long tagId, @Param("questionId") Long questionId);
@Select(value = "select * from eleh_knowledge where tenant = #{tenant} and id = #{questionId}")
ElehKnowledgeDo selectQuestion(@Param("tenant") Integer tenant, @Param("questionId") Long questionId);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment