From 8902af59c4ea37848e96a51dcccae0824c96c214 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Sun, 27 Nov 2022 14:48:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AD=94=E6=A1=88=E7=9A=84?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jlw/entity/dto/QuestionLogAddDTO.java | 34 ++++++++++++++++--- .../service/GeneralQuestionLogService.java | 6 ++-- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionLogAddDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionLogAddDTO.java index 73b060b1..cf1868b7 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionLogAddDTO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionLogAddDTO.java @@ -1,15 +1,15 @@ package com.ibeetl.jlw.entity.dto; +import cn.hutool.core.util.ObjectUtil; import com.ibeetl.jlw.enums.QuestionLogAddTypeEnum; import lombok.Data; import javax.annotation.Nullable; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -import java.util.Date; -import java.util.Map; -import java.util.TreeSet; +import java.util.*; +import static cn.hutool.core.util.ArrayUtil.join; import static com.ibeetl.jlw.enums.QuestionLogAddTypeEnum.PRE_SUBMIT; /** @@ -36,7 +36,7 @@ public class QuestionLogAddDTO { * 附件上传:需要传递questionLogMap参数的value值,支持多个文件上传。Key值传不传无所谓,后台不取这个值。 */ @NotEmpty(message = "提交答案不能为空") - private Map> questionLogMap; + private Map questionLogMap; /** * 提交时间(前端传) @@ -54,4 +54,30 @@ public class QuestionLogAddDTO { // 默认值 setQuestionLogAddType(PRE_SUBMIT); } + + /** + * 答案去重排序, 主要用于单选,多选,判断题的直接获取得分信息 + * @param answersText + * @return + */ + public static String answerDistinctSort(@NotEmpty(message = "题目答案不能为空!") String answersText) { + return join(new TreeSet<>(Arrays.asList(answersText.split(","))).toArray(), ","); + } + + /** + * 字符串答案的排序去重,直接在Setting里面写 + * @param questionLogMap + */ + public void setQuestionLogMap(Map questionLogMap) { + this.questionLogMap = questionLogMap; + + // 处理答案排序去重 + if (ObjectUtil.isNotEmpty(questionLogMap)) { + Map result = new HashMap<>(6); + questionLogMap.forEach((snapId, answersText) -> { + result.put(snapId, answerDistinctSort(answersText)); + }); + this.questionLogMap = result; + } + } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java index 38e54217..29bb3e41 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java @@ -480,7 +480,7 @@ public class GeneralQuestionLogService extends CoreBaseService> questionLogMap = questionLogAddDTO.getQuestionLogMap(); + Map questionLogMap = questionLogAddDTO.getQuestionLogMap(); // 查询学生身份 final Student student = getStudent(); @@ -538,7 +538,7 @@ public class GeneralQuestionLogService extends CoreBaseService> questionLogMap = questionLogAddDTO.getQuestionLogMap(); + Map questionLogMap = questionLogAddDTO.getQuestionLogMap(); // 查询符合条件的日志表 String questionSnapshotIds = join(questionLogMap.keySet().toArray(), ","); @@ -564,7 +564,7 @@ public class GeneralQuestionLogService extends CoreBaseService