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

更新已考接口完善

parent 95d5baa2
......@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.micrometer.common.util.StringUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.compress.utils.Lists;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
......@@ -20,6 +21,7 @@ import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@RestController
......@@ -138,6 +140,7 @@ public class ExamController {
Double avgScore = 0D;
Double totalScore = 0D;
int examNum = 0;
List<SingleQaResult> qaResultList = Lists.newArrayList();
LambdaQueryWrapper<ElehSessionQaRecordDo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ElehSessionQaRecordDo::getTenant, tenant);
......@@ -148,11 +151,25 @@ public class ExamController {
totalScore = qaRecordDos.stream().mapToDouble(ElehSessionQaRecordDo::getScore).sum();
examNum = qaRecordDos.size();
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();
result.setAvgScore(avgScore);
result.setTotalScore(totalScore);
result.setExamNum(examNum);
result.setQaResultList(qaResultList);
return ApiResponse.ok(result);
}
......
......@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class SessionExamResult implements Serializable {
......@@ -16,4 +17,7 @@ public class SessionExamResult implements Serializable {
@JsonProperty("exam_num")
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> {
@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);
@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