From e902e6d39ff119b78b18e0275d015cb1856f8582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E6=B3=BD=E6=97=BA?= <2413898818@qq.com> Date: Sun, 15 Dec 2024 12:51:40 +0800 Subject: [PATCH] Default Changelist --- .idea/sqldialects.xml | 6 - .idea/vcs.xml | 1 - .../main/java/lsgwr/exam/config/CORSConf.java | 29 +++-- .../java/lsgwr/exam/service/ExamService.java | 105 +++--------------- .../java/lsgwr/exam/vo/QuestionCreateVo.java | 36 ++++-- 5 files changed, 62 insertions(+), 115 deletions(-) delete mode 100644 .idea/sqldialects.xml diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml deleted file mode 100644 index 56782ca..0000000 --- a/.idea/sqldialects.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 288b36b..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,7 +1,6 @@ - \ No newline at end of file diff --git a/backend/src/main/java/lsgwr/exam/config/CORSConf.java b/backend/src/main/java/lsgwr/exam/config/CORSConf.java index d75d4e5..e53aa64 100644 --- a/backend/src/main/java/lsgwr/exam/config/CORSConf.java +++ b/backend/src/main/java/lsgwr/exam/config/CORSConf.java @@ -4,24 +4,35 @@ * @date : 2019-05-17 00:11 * @email : liangshanguang2@gmail.com ***********************************************************/ -package lsgwr.exam.config; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - +package lsgwr.exam.config;// 指定当前类所在的包路径 +// 导入所需的类 +import jdk.internal.instrumentation.Logger; +import lombok.extern.slf4j.Slf4j;// Lombok库提供的注解,用于自动为类添加SLF4J日志记录器 +import org.springframework.context.annotation.Bean;// Spring框架提供的注解,用于标记配置类 +import org.springframework.context.annotation.Configuration;// Spring框架提供的注解,用于标记配置类。 +import org.springframework.web.servlet.config.annotation.CorsRegistry;// Spring MVC框架提供的接口,用于自定义Web MVC配置 +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;// Spring MVC框架提供的接口,用于自定义Web MVC配置。 +// 使用@Configuration注解标记此类为Spring的配置类。 +// 使用@Slf4j注解自动为类添加一个名为log的SLF4J日志记录器。 @Configuration @Slf4j public class CORSConf { - + // 使用@Bean注解声明一个方法,该方法将返回一个对象,该对象将被注册为Spring应用上下文中的bean。 + // 此处声明的方法返回一个WebMvcConfigurer类型的对象,用于配置跨域资源共享(CORS) @Bean public WebMvcConfigurer corsConfigurer() { + // 返回一个新的WebMvcConfigurer匿名类实例。 return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { + Logger log = null; + // 尝试记录日志信息,但由于log被初始化为null,这行代码会抛出NullPointerException。 log.info("初始化 CORSConfiguration 配置"); + // 使用CorsRegistry配置CORS规则: + // 允许所有路径("/**")的跨域请求。 + // 允许所有HTTP头("*")。 + // 允许所有HTTP方法("*")。 + // 允许所有来源的跨域请求("*")。 registry.addMapping("/**") .allowedHeaders("*") .allowedMethods("*") diff --git a/backend/src/main/java/lsgwr/exam/service/ExamService.java b/backend/src/main/java/lsgwr/exam/service/ExamService.java index 7115284..abb6882 100644 --- a/backend/src/main/java/lsgwr/exam/service/ExamService.java +++ b/backend/src/main/java/lsgwr/exam/service/ExamService.java @@ -14,109 +14,32 @@ import java.util.HashMap;// 导入了HashMap,用于存储键值对 import java.util.List;// 导入了List,用于存储一系列对象 // 定义了一个名为ExamService的接口 public interface ExamService { - /** - * 获取所有的问题列表 - */ + // 获取所有的问题列表 List getQuestionAll(); - - /** - * 根据前端传过来的问题实体更新问题和选项 - * - * @param questionVo 问题实体 - */ + // 根据传入的问题实体更新问题和选项 QuestionVo updateQuestion(QuestionVo questionVo); - - /** - * 问题创建 - * - * @param questionCreateVo 问题创建实体类 - */ + // 创建问题 void questionCreate(QuestionCreateVo questionCreateVo); - - /** - * 获取问题的选项、分类和难度的下拉列表 - * - * @return 选项、分类和难度的封装对象 - */ + // 获取问题的选项、分类和难度的下拉列表 QuestionSelectionVo getSelections(); - - /** - * 获取问题详情 - * - * @param id 问题的id - * @return 问题详情的封装VO - */ + // 根据问题ID获取问题详情 QuestionDetailVo getQuestionDetail(String id); - - /** - * 获取全部考试的列表 - */ + // 获取全部考试的列表 List getExamAll(); - - /** - * 获取所有问题的下拉列表,方便前端创建考试时筛选 - * - * @return 适配前端的问题下拉列表 - */ + // 获取所有问题的下拉列表,用于前端创建考试时筛选 ExamQuestionTypeVo getExamQuestionType(); - - /** - * 根据前端组装的参数进行考试创建 - * - * @param examCreateVo 前端组装的考试对象 - * @param userId 用户id - * @return 创建好的考试 - */ + // 根据前端组装的参数创建考试 Exam create(ExamCreateVo examCreateVo, String userId); - - /** - * 获取考试卡片列表 - * - * @return 考试卡片列表 - */ + // 获取考试卡片列表 List getExamCardList(); - - /** - * 根据考试的id获取考试的详情 - * - * @param id exam表的主键 - * @return 考试详情的封装的VO对象 - */ + // 根据考试ID获取考试详情 ExamDetailVo getExamDetail(String id); - - /** - * 根据用户提交的作答信息进行判分 - * - * @param userId 考试人 - * @param examId 参与的考试 - * @param answersMap 作答情况 - * @return 本次考试记录 - */ + // 根据用户提交的作答信息进行判分 ExamRecord judge(String userId, String examId, HashMap> answersMap); - - /** - * 根据用户id获取此用户的所有考试信息 - * - * @param userId 用户id - * @return 该用户的所有考试记录 - */ + // 根据用户ID获取此用户的所有考试信息 List getExamRecordList(String userId); - - /** - * 获取指定某次考试记录的详情 - * - * @param recordId 考试记录的id - * @return 考试详情 - */ + // 获取指定某次考试记录的详情 RecordDetailVo getRecordDetail(String recordId); - - - /** - * 更新考试 - * - * @param examVo 获取所有考试的接口中返回的考试信息结构 - * @param userId 当前的用户 - * @return 更新后的考试详情 - */ + // 更新考试 Exam update(ExamVo examVo, String userId); } diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java index b565a2e..14b4b31 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java @@ -4,57 +4,77 @@ * @date : 2019-06-02 13:26 * @email : liangshanguang2@gmail.com ***********************************************************/ -package lsgwr.exam.vo; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import java.util.List; +package lsgwr.exam.vo;// 指定当前类所在的包路径 +// 导入所需的类 +import com.fasterxml.jackson.annotation.JsonProperty;// 用于指定JSON属性名与Java属性名的映射 +import lombok.Data;// Lombok库提供的注解,用于自动生成getter、setter、toString等方法 +import java.util.List;// Java标准库中的接口,用于表示一个有序的集合 +// 使用@Data注解自动生成getter、setter、toString等方法 @Data public class QuestionCreateVo { /** * 题目名称 + * JSON属性名为"name",与Java属性名"questionName"映射 */ @JsonProperty("name") private String questionName; - + /** + * 题目描述 + * JSON属性名为"desc",与Java属性名"questionDescription"映射 + */ @JsonProperty("desc") private String questionDescription; /** - * 题目的分数,默认值是5 + * 题目的分数, 默认值是5 + * JSON属性名为"score",与Java属性名"questionScore"映射 */ @JsonProperty("score") private Integer questionScore = 5; /** * 题目的创建者的id,从token中解析得到 + * JSON属性名为"creator",与Java属性名"questionCreatorId"映射 */ @JsonProperty("creator") private String questionCreatorId; /** * 问题的难度的id + * JSON属性名为"level",与Java属性名"questionLevelId"映射 */ @JsonProperty("level") private Integer questionLevelId; /** * 问题的类型(单选、多选、判断等) + * JSON属性名为"type",与Java属性名"questionTypeId"映射 */ @JsonProperty("type") private Integer questionTypeId; /** * 题目的类别表,从内容角度划分,比如数学、语文、英语等 + * JSON属性名为"category",与Java属性名"questionCategoryId"映射 */ @JsonProperty("category") private Integer questionCategoryId; /** * 问题的选项列表,带上了是否是答案的true和false + * JSON属性名为"options",与Java属性名"questionOptionCreateVoList"映射 + * 每个选项是QuestionOptionCreateVo类型的对象 */ @JsonProperty("options") private List questionOptionCreateVoList; + /** + * 设置题目创建者id的方法 + * 注意:此方法体为空,可能是一个占位符或待实现的方法 + * 在实际开发中,应该根据业务逻辑来设置questionCreatorId的值 + * 例如,从传入的token中解析出用户id并赋值给questionCreatorId + */ + public void setQuestionCreatorId(String userId) { + // TODO: 实现设置题目创建者id的逻辑 + } }