From 09929b92237b39734da1a4210ff04e791e0d3a7c Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Tue, 27 Sep 2022 01:31:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=98=E7=9B=AE=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E4=B9=B1=E5=BA=8F=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- httpTest/TeacherOpenCourseHomework.http | 2 +- .../ibeetl/jlw/entity/ResourcesQuestion.java | 64 +++++++++++++++++++ .../TeacherOpenCourseHomeworkSetting.java | 2 +- .../jlw/service/ResourcesQuestionService.java | 30 +++++++++ .../TeacherOpenCourseHomeworkService.java | 42 +++++++++++- ...acherOpenCourseHomeworkSettingService.java | 3 +- .../TeacherOpenCourseHomeworkController.java | 4 +- ...TeacherOpenCourseHomeworkSettingQuery.java | 4 +- ...acherOpenCourseHomeworkControllerTest.java | 2 +- 9 files changed, 143 insertions(+), 10 deletions(-) diff --git a/httpTest/TeacherOpenCourseHomework.http b/httpTest/TeacherOpenCourseHomework.http index d962a65e..1217f33d 100644 --- a/httpTest/TeacherOpenCourseHomework.http +++ b/httpTest/TeacherOpenCourseHomework.http @@ -19,7 +19,7 @@ Cookie: JSESSIONID={{session}} "teacherOpenCourseHomeworkSettingQuestionNoOrder": 1, "teacherOpenCourseHomeworkSettingOptionNoOrder": 1, "teacherOpenCourseHomeworkSettingEndShowQa": 1, - "teacherOpenCourseHomeworkSettingEndShowTrueFals": 1, + "teacherOpenCourseHomeworkSettingEndShowTrueFalse": 1, "teacherOpenCourseHomeworkSettingAddTime": "2022-05-25 03:23:43" } } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/entity/ResourcesQuestion.java b/web/src/main/java/com/ibeetl/jlw/entity/ResourcesQuestion.java index 4af14faf..e3024a7c 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/ResourcesQuestion.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/ResourcesQuestion.java @@ -1,11 +1,17 @@ package com.ibeetl.jlw.entity; +import cn.hutool.core.lang.Assert; +import cn.jlw.util.EnumUtil; import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.entity.BaseEntity; +import lombok.Getter; import org.beetl.sql.annotation.entity.AutoID; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /* * 资源管理 - 题库管理 @@ -79,6 +85,64 @@ public class ResourcesQuestion extends BaseEntity{ public ResourcesQuestion(){ } + public enum AnswerEnum { + // TODO mlx 题目乱序 + A("getQuestionOptionA"), + B("getQuestionOptionB"), + C("getQuestionOptionC"), + D("getQuestionOptionD"), + E("getQuestionOptionE"); + + @Getter + private String methodName; + + AnswerEnum(String methodName) { + this.methodName = methodName; + } + + /** + * 通过题目的选项获取属性的方法 + * @param name 单个选项 + * @return + */ + public static String getMethodNameByEnumName(String name) { + List methodNameObjList = EnumUtil.getFieldValues(AnswerEnum.class, "methodName"); + + for (AnswerEnum value : values()) { + if (value.name().equalsIgnoreCase(name)) { + return value.getMethodName(); + } + } + throw new RuntimeException("未获取到选项对应的方法名!"); + } + + /** + * 通过题目的选项获取属性的方法 + * @param names 选项的ABCD集合 + * @return + */ + public static Map getMethodNameByEnumName(String... names) { + Map nameAndMethod = new HashMap<>(6); + for (AnswerEnum value : values()) { + for (String name : names) { + if (value.name().equalsIgnoreCase(name)) { + nameAndMethod.put(name, value.getMethodName()); + } + } + } + return Assert.notEmpty(nameAndMethod, "未获取到选项对应的方法名!"); + } + } + + + /** + * 随机打乱选项的顺序 + */ + public void ShuffleOrderOptions() { + + } + + /**ID *@return */ diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java index 6bf7b8ea..316bd769 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java @@ -49,7 +49,7 @@ public class TeacherOpenCourseHomeworkSetting extends BaseEntity{ //答卷后显示答案对错 - private Integer teacherOpenCourseHomeworkSettingEndShowTrueFals ; + private Integer teacherOpenCourseHomeworkSettingEndShowTrueFalse; //创建时间 diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java index 7d817724..b5f99c10 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service; +import cn.hutool.core.util.ArrayUtil; import cn.jlw.util.ToolUtils; import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.admin.core.service.CorePlatformService; @@ -28,6 +29,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.validation.constraints.NotNull; import java.io.*; import java.math.BigDecimal; import java.text.DateFormat; @@ -35,6 +37,10 @@ import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; +import static cn.hutool.core.util.ArrayUtil.join; +import static com.ibeetl.jlw.entity.ResourcesQuestion.AnswerEnum.getMethodNameByEnumName; +import static java.util.stream.Collectors.groupingBy; + /** * ResourcesQuestion Service @@ -616,4 +622,28 @@ public class ResourcesQuestionService extends CoreBaseService return value; } + + /** + * 根据题目类型分类指定题目 + * @param resourcesApplicationIds + * @return + */ + public Map> groupQuestionTypeByResourcesQuestionIds(@NotNull String... resourcesApplicationIds) { + List resourcesQuestionList = getByIds(join(resourcesApplicationIds, ",")); + return resourcesQuestionList.stream().collect(groupingBy(ResourcesQuestion::getQuestionType)); + } + + + /** + * 随机打乱题目中选项的顺序 + * @param questionList + */ + public void ShuffleOrderOptions(List questionList) { + questionList.forEach(resourcesQuestion -> { + // 答案集合 + String[] answers = ArrayUtil.removeBlank(resourcesQuestion.getQuestionAnswer().split(",")); + Map nameAndMethod = getMethodNameByEnumName(answers); + + }); + } } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java index 31b7129f..98c64018 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java @@ -11,8 +11,10 @@ import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.TeacherOpenCourseHomeworkDao; import com.ibeetl.jlw.entity.TeacherOpenCourseHomework; +import com.ibeetl.jlw.entity.TeacherOpenCourseHomeworkSetting; import com.ibeetl.jlw.enums.FromTypeEnum; import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkSettingQuery; import org.apache.commons.lang3.StringUtils; import org.beetl.sql.core.SqlId; import org.beetl.sql.core.engine.PageQuery; @@ -178,10 +180,46 @@ public class TeacherOpenCourseHomeworkService extends CoreBaseService