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的逻辑
+ }
}