From d6418f695c837c9bb676772b68ba8a636d83b2af Mon Sep 17 00:00:00 2001 From: wangyong <2058152148@qq.com> Date: Sun, 3 Nov 2024 19:16:17 +0800 Subject: [PATCH] Update src --- .../main/java/lsgwr/exam/entity/Question.java | 2 +- .../lsgwr/exam/entity/QuestionCategory.java | 23 ++++++++++--- .../java/lsgwr/exam/entity/QuestionLevel.java | 6 ++-- .../lsgwr/exam/entity/QuestionOption.java | 13 ++++++-- .../java/lsgwr/exam/entity/QuestionType.java | 13 ++++++-- .../java/lsgwr/exam/enums/QuestionEnum.java | 6 ++-- .../QuestionCategoryRepository.java | 2 ++ .../repository/QuestionLevelRepository.java | 13 ++++---- .../repository/QuestionOptionRepository.java | 10 ++---- .../exam/repository/QuestionRepository.java | 23 +++++++++---- .../repository/QuestionTypeRepository.java | 10 ++---- .../exam/vo/QuestionCreateSimplifyVo.java | 12 +++---- .../java/lsgwr/exam/vo/QuestionCreateVo.java | 12 +++---- .../java/lsgwr/exam/vo/QuestionDetailVo.java | 12 +++---- .../lsgwr/exam/vo/QuestionOptionCreateVo.java | 18 +++++++---- .../java/lsgwr/exam/vo/QuestionOptionVo.java | 32 +++++++++++++++---- .../java/lsgwr/exam/vo/QuestionPageVo.java | 9 ++---- .../lsgwr/exam/vo/QuestionSelectionVo.java | 26 +++++++++++---- .../main/java/lsgwr/exam/vo/QuestionVo.java | 24 +++++++++----- 19 files changed, 171 insertions(+), 95 deletions(-) diff --git a/backend/src/main/java/lsgwr/exam/entity/Question.java b/backend/src/main/java/lsgwr/exam/entity/Question.java index 6ec808a..65e48a2 100644 --- a/backend/src/main/java/lsgwr/exam/entity/Question.java +++ b/backend/src/main/java/lsgwr/exam/entity/Question.java @@ -12,7 +12,7 @@ import java.util.Date; * Question实体类,用于表示考试题目信息 * 该类使用了Lombok的@Data注解自动生成getter和setter方法, * 以及Hibernate的@Entity注解表明这是一个JPA实体类 - * @DynamicUpdate注解用于在更新实体时只更新发生变化的字段 + * @DynamicUpdate注解用于在更新实体时只更新发生变化的字段 */ @Data @Entity diff --git a/backend/src/main/java/lsgwr/exam/entity/QuestionCategory.java b/backend/src/main/java/lsgwr/exam/entity/QuestionCategory.java index ca08f22..a474ea9 100644 --- a/backend/src/main/java/lsgwr/exam/entity/QuestionCategory.java +++ b/backend/src/main/java/lsgwr/exam/entity/QuestionCategory.java @@ -6,7 +6,11 @@ ***********************************************************/ package lsgwr.exam.entity; - +/** + * QuestionCategory类代表了一个实体,用于在数据库中存储问题类别信息。 + * 这个类被标记为@Entity,意味着它是一个JPA实体,可以映射到数据库表。 + * Lombok的@Data注解用于自动生成getter和setter方法,以及toString、equals和hashCode方法。 + */ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @@ -17,15 +21,26 @@ import javax.persistence.Id; @Data @Entity public class QuestionCategory { - + /** + * 问题类别ID,是这个实体的主键。 + * @Id注解指明了这个字段是实体的主键。 + * @GeneratedValue注解表示这个字段的值是自动生成的。 + * @JsonProperty注解用于序列化和反序列化时,指定JSON对象中的键名。 + */ @Id @GeneratedValue @JsonProperty("id") private Integer questionCategoryId; - + /** + * 问题类别名称,用于描述这个类别的名字。 + * @JsonProperty注解用于序列化和反序列化时,指定JSON对象中的键名。 + */ @JsonProperty("name") private String questionCategoryName; - + /** + * 问题类别描述,用于提供这个类别的详细信息或说明。 + * @JsonProperty注解用于序列化和反序列化时,指定JSON对象中的键名。 + */ @JsonProperty("description") private String questionCategoryDescription; } diff --git a/backend/src/main/java/lsgwr/exam/entity/QuestionLevel.java b/backend/src/main/java/lsgwr/exam/entity/QuestionLevel.java index a056cbc..0df4b7e 100644 --- a/backend/src/main/java/lsgwr/exam/entity/QuestionLevel.java +++ b/backend/src/main/java/lsgwr/exam/entity/QuestionLevel.java @@ -20,11 +20,11 @@ public class QuestionLevel { @Id @GeneratedValue @JsonProperty("id") - private Integer questionLevelId; + private Integer questionLevelId;//题目难度等级ID @JsonProperty("name") - private String questionLevelName; + private String questionLevelName;//题目难度等级名称 @JsonProperty("description") - private String questionLevelDescription; + private String questionLevelDescription;//题目难度等级描述 } diff --git a/backend/src/main/java/lsgwr/exam/entity/QuestionOption.java b/backend/src/main/java/lsgwr/exam/entity/QuestionOption.java index 3c06ef7..b3bfab7 100644 --- a/backend/src/main/java/lsgwr/exam/entity/QuestionOption.java +++ b/backend/src/main/java/lsgwr/exam/entity/QuestionOption.java @@ -11,12 +11,19 @@ import lombok.Data; import javax.persistence.Entity; import javax.persistence.Id; - +/** + * 表示考试题目选项的实体类,包括选项的标识符、内容和描述。 + * 该类使用 @Entity 注解标记,表示这是一个 JPA 实体类,用于对象关系映射(ORM)与数据库交互。 + * 使用 Lombok 库的 @Data 注解自动生成 getter、setter、构造方法以及 equals、hash 和 toString 方法,减少样板代码。 + */ @Data @Entity public class QuestionOption { + /** + * 题目选项的唯一标识符,使用 @Id 注解标记,表示该字段是实体的主键。 + */ @Id private String questionOptionId; - private String questionOptionContent; - private String questionOptionDescription; + private String questionOptionContent;// 选项内容,描述选项的文本或信息 + private String questionOptionDescription;// 选项描述,对选项的详细解释或注释 } diff --git a/backend/src/main/java/lsgwr/exam/entity/QuestionType.java b/backend/src/main/java/lsgwr/exam/entity/QuestionType.java index 46a4f55..06cfaa8 100644 --- a/backend/src/main/java/lsgwr/exam/entity/QuestionType.java +++ b/backend/src/main/java/lsgwr/exam/entity/QuestionType.java @@ -13,18 +13,25 @@ import lombok.Data; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; - +/** + * QuestionType类代表了一个实体,用于在数据库中存储问题类型的信息。 + * 它包括问题类型的ID、名称和描述。 + */ @Data @Entity public class QuestionType { + /** + * 问题类型的唯一标识符。 + * 通过@JsonProperty注解,该字段在序列化和反序列化时将映射为"id"。 + */ @Id @GeneratedValue @JsonProperty("id") private Integer questionTypeId; - + /// 问题类型的名称。 @JsonProperty("name") private String questionTypeName; - + //问题类型的描述。 @JsonProperty("description") private String questionTypeDescription; } diff --git a/backend/src/main/java/lsgwr/exam/enums/QuestionEnum.java b/backend/src/main/java/lsgwr/exam/enums/QuestionEnum.java index 06f6b5b..d5761f6 100644 --- a/backend/src/main/java/lsgwr/exam/enums/QuestionEnum.java +++ b/backend/src/main/java/lsgwr/exam/enums/QuestionEnum.java @@ -18,12 +18,12 @@ public enum QuestionEnum { CHECK(2, "多选题"), JUDGE(3, "判断题"); - + //构造函数,用于创建一个新的题目类型实例 QuestionEnum(Integer id, String role) { this.id = id; this.role = role; } - private Integer id; - private String role; + private Integer id;// 角色id + private String role;// 角色名称 } diff --git a/backend/src/main/java/lsgwr/exam/repository/QuestionCategoryRepository.java b/backend/src/main/java/lsgwr/exam/repository/QuestionCategoryRepository.java index 8182ade..eb7e9c7 100644 --- a/backend/src/main/java/lsgwr/exam/repository/QuestionCategoryRepository.java +++ b/backend/src/main/java/lsgwr/exam/repository/QuestionCategoryRepository.java @@ -10,4 +10,6 @@ import lsgwr.exam.entity.QuestionCategory; import org.springframework.data.jpa.repository.JpaRepository; public interface QuestionCategoryRepository extends JpaRepository { + // 该接口继承了JpaRepository,用于处理QuestionCategory实体的数据库操作 + // Integer类型作为实体的主键类型 } diff --git a/backend/src/main/java/lsgwr/exam/repository/QuestionLevelRepository.java b/backend/src/main/java/lsgwr/exam/repository/QuestionLevelRepository.java index 69af582..dd52021 100644 --- a/backend/src/main/java/lsgwr/exam/repository/QuestionLevelRepository.java +++ b/backend/src/main/java/lsgwr/exam/repository/QuestionLevelRepository.java @@ -1,13 +1,14 @@ -/*********************************************************** - * @Description : - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-14 08:26 - * @email : liangshanguang2@gmail.com - ***********************************************************/ +/** + * 问题级别数据访问层接口 + * 继承自JpaRepository,用于对QuestionLevel实体进行数据库操作 + * 该接口没有定义额外的方法,直接继承了JpaRepository提供的标准CRUD方法 + */ package lsgwr.exam.repository; import lsgwr.exam.entity.QuestionLevel; import org.springframework.data.jpa.repository.JpaRepository; public interface QuestionLevelRepository extends JpaRepository { + // 该接口继承了JpaRepository,用于处理QuestionLevel实体的数据库操作 + // Integer类型参数表示实体的主键类型 } diff --git a/backend/src/main/java/lsgwr/exam/repository/QuestionOptionRepository.java b/backend/src/main/java/lsgwr/exam/repository/QuestionOptionRepository.java index 7afb1d9..2878be5 100644 --- a/backend/src/main/java/lsgwr/exam/repository/QuestionOptionRepository.java +++ b/backend/src/main/java/lsgwr/exam/repository/QuestionOptionRepository.java @@ -1,13 +1,9 @@ -/*********************************************************** - * @Description : - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-14 08:27 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.repository; import lsgwr.exam.entity.QuestionOption; import org.springframework.data.jpa.repository.JpaRepository; public interface QuestionOptionRepository extends JpaRepository { -} + // 该接口继承了JpaRepository,用于处理QuestionOption实体的数据库操作 + // 没有定义额外的方法,意味着它利用JpaRepository提供的标准CRUD操作 +} \ No newline at end of file diff --git a/backend/src/main/java/lsgwr/exam/repository/QuestionRepository.java b/backend/src/main/java/lsgwr/exam/repository/QuestionRepository.java index 97b9260..b26fa2e 100644 --- a/backend/src/main/java/lsgwr/exam/repository/QuestionRepository.java +++ b/backend/src/main/java/lsgwr/exam/repository/QuestionRepository.java @@ -1,19 +1,28 @@ -/*********************************************************** - * @Description : - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-14 08:25 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.repository; import lsgwr.exam.entity.Question; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; - import java.util.List; +/** + * Question实体的仓库接口,用于定义对Question实体进行数据库操作的方法 + */ public interface QuestionRepository extends JpaRepository { + + /** + * 根据问题类型ID查找问题 + * + * @param id 问题类型ID + * @return 匹配的问题类型ID的所有问题列表 + */ List findByQuestionTypeId(Integer id); + + /** + * 查询所有问题,并按照更新时间降序排序 + * + * @return 所有问题列表,按更新时间降序排列 + */ @Query("select q from Question q order by q.updateTime desc") List findAll(); } diff --git a/backend/src/main/java/lsgwr/exam/repository/QuestionTypeRepository.java b/backend/src/main/java/lsgwr/exam/repository/QuestionTypeRepository.java index acdee52..3c66453 100644 --- a/backend/src/main/java/lsgwr/exam/repository/QuestionTypeRepository.java +++ b/backend/src/main/java/lsgwr/exam/repository/QuestionTypeRepository.java @@ -1,13 +1,9 @@ -/*********************************************************** - * @Description : - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-14 08:28 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.repository; import lsgwr.exam.entity.QuestionType; import org.springframework.data.jpa.repository.JpaRepository; public interface QuestionTypeRepository extends JpaRepository { -} + // 该接口继承了JpaRepository,用于处理QuestionType实体的数据库操作 + // Integer类型作为实体的主键类型 +} \ No newline at end of file diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateSimplifyVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateSimplifyVo.java index 8eba970..ce4e55a 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateSimplifyVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateSimplifyVo.java @@ -1,9 +1,3 @@ -/*********************************************************** - * @Description : 问题创建的实体类,简化了下 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-02 13:26 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; @@ -11,6 +5,9 @@ import lombok.Data; import java.util.List; +/** + * 简化版题目创建VO类,用于处理题目创建时的部分信息 + */ @Data public class QuestionCreateSimplifyVo { /** @@ -19,6 +16,9 @@ public class QuestionCreateSimplifyVo { @JsonProperty("name") private String questionName; + /** + * 题目描述 + */ @JsonProperty("desc") private String questionDescription; diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java index b565a2e..9ab5671 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionCreateVo.java @@ -1,9 +1,3 @@ -/*********************************************************** - * @Description : 问题创建的实体类 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-02 13:26 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; @@ -11,6 +5,9 @@ import lombok.Data; import java.util.List; +/** + * 用于创建问题的视图对象,包含了问题的基本信息及其选项 + */ @Data public class QuestionCreateVo { /** @@ -19,6 +16,9 @@ public class QuestionCreateVo { @JsonProperty("name") private String questionName; + /** + * 题目描述 + */ @JsonProperty("desc") private String questionDescription; diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionDetailVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionDetailVo.java index d6c6fae..a1be137 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionDetailVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionDetailVo.java @@ -1,9 +1,3 @@ -/*********************************************************** - * @Description : 问题详情的实体类 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-10-20 09:51 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import lsgwr.exam.entity.QuestionOption; @@ -12,6 +6,9 @@ import lombok.Data; import java.util.ArrayList; import java.util.List; +/** + * 问题详情视图对象,用于展示问题的详细信息 + */ @Data public class QuestionDetailVo { /** @@ -28,14 +25,17 @@ public class QuestionDetailVo { * 考试描述 */ private String description; + /** * 问题的类型 */ private String type; + /** * 问题的选项 */ private List options; + /** * 问题的答案,选项的id组成的数组 */ diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionOptionCreateVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionOptionCreateVo.java index 470088e..46643b3 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionOptionCreateVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionOptionCreateVo.java @@ -1,25 +1,29 @@ -/*********************************************************** - * @Description : 问题选项的外层对象 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-02 20:23 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; +/** + * 问题选项的创建视图模型类 + * 用于处理问题选项的创建请求 + */ @Data public class QuestionOptionCreateVo { /** * 问题的内容 + * 这里使用@JsonProperty注解来指定JSON字段名 + * 这是因为在JSON与Java对象进行序列化和反序列化时 + * 可以将JSON中的"content"字段映射到Java对象中的"questionOptionContent"属性 */ @JsonProperty("content") private String questionOptionContent; /** - * 当前的选项是否是问题大答案 + * 当前的选项是否是问题的答案 + * 默认值为false + * 同样使用@JsonProperty注解来指定JSON字段名 + * 这样可以将JSON中的"answer"字段映射到Java对象中的"answer"属性 */ @JsonProperty("answer") private Boolean answer = false; diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionOptionVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionOptionVo.java index 58cc32a..7905da2 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionOptionVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionOptionVo.java @@ -1,25 +1,45 @@ -/*********************************************************** - * @Description : 问题选项的自定义实体类 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-01 09:45 - * @email : liangshanguang2@gmail.com - ***********************************************************/ +/** + * QuestionOptionVo类用于表示考试题目中的选项信息 + * 它包含了选项的标识、内容、是否为正确答案以及选项的描述 + * 该类使用Lombok的@Data注解,自动生成getter和setter方法,简化代码 + * 使用Jackson的@JsonProperty注解,以便在序列化和反序列化JSON时映射到特定的字段 + */ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; +/** + * 表示考试题目选项的值对象 + */ @Data public class QuestionOptionVo { + /** + * 选项的唯一标识符 + * 使用@JsonProperty注解指定JSON字段名 + */ @JsonProperty("id") private String questionOptionId; + /** + * 选项的内容 + * 使用@JsonProperty注解指定JSON字段名 + */ @JsonProperty("content") private String questionOptionContent; + /** + * 标识该选项是否为正确答案 + * 默认值为false + * 使用@JsonProperty注解指定JSON字段名 + */ @JsonProperty("answer") private Boolean answer = false; + /** + * 对选项的描述,用于提供额外的信息 + * 使用@JsonProperty注解指定JSON字段名 + */ @JsonProperty("description") private String questionOptionDescription; } diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionPageVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionPageVo.java index 17ed650..04595a3 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionPageVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionPageVo.java @@ -1,9 +1,3 @@ -/*********************************************************** - * @Description : 问题列表反馈给前端的对象 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-28 22:09 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; @@ -11,6 +5,9 @@ import lombok.Data; import java.util.List; +/** + * 用于试题分页查询的视图对象 + */ @Data public class QuestionPageVo { diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionSelectionVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionSelectionVo.java index dfdbf93..bd9c27f 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionSelectionVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionSelectionVo.java @@ -1,9 +1,7 @@ -/*********************************************************** - * @Description : 前端创建问题时的下拉列表选择 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-03 07:35 - * @email : liangshanguang2@gmail.com - ***********************************************************/ +/** + * 问题选择视图对象 + * 用于在前端展示问题选择界面时传递问题类型、问题类别和问题难度等级信息 + */ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; @@ -14,14 +12,30 @@ import lombok.Data; import java.util.List; +/** + * 问题选择视图对象 + * 包含问题类型、问题类别和问题难度等级的列表 + */ @Data public class QuestionSelectionVo { + /** + * 问题类型列表 + * 用于展示可选择的问题类型 + */ @JsonProperty("types") private List questionTypeList; + /** + * 问题类别列表 + * 用于展示可选择的问题类别 + */ @JsonProperty("categories") private List questionCategoryList; + /** + * 问题难度等级列表 + * 用于展示可选择的问题难度等级 + */ @JsonProperty("levels") private List questionLevelList; } diff --git a/backend/src/main/java/lsgwr/exam/vo/QuestionVo.java b/backend/src/main/java/lsgwr/exam/vo/QuestionVo.java index 5ce1744..4645dd0 100644 --- a/backend/src/main/java/lsgwr/exam/vo/QuestionVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/QuestionVo.java @@ -1,9 +1,3 @@ -/*********************************************************** - * @Description : 考试问题的对外封装类 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-05-28 08:17 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonFormat; @@ -13,14 +7,27 @@ import lombok.Data; import java.util.Date; import java.util.List; +/** + * QuestionVo类代表了一个问题的值对象,用于在系统中传输和展示问题相关信息。 + * 该类使用Lombok的@Data注解,自动生成getter和setter方法,简化代码并提高可读性。 + */ @Data public class QuestionVo { + /** + * 问题在数据库中的唯一标识符。 + */ @JsonProperty("id") private String questionId; + /** + * 问题的名称或标题。 + */ @JsonProperty("name") private String questionName; + /** + * 问题的分值,表示该问题在评估或考试中的重要性或权重。 + */ @JsonProperty("score") private Integer questionScore; @@ -66,7 +73,9 @@ public class QuestionVo { @JsonProperty("categoryId") private int questionCategoryId; - + /** + * 问题的描述信息,可能包含问题的背景、要求或其他详细说明。 + */ @JsonProperty("description") private String questionDescription; @@ -76,7 +85,6 @@ public class QuestionVo { @JsonProperty("options") private List questionOptionVoList; - /** * 更新时间,设计表时设置了自动插入当前时间,无需在Java代码中设置了。 * 同时@DynamicUpdate注解可以时间当数据库数据变化时自动更新,无需人工维护