diff --git a/src/main/java/com/project/question/domain/entity/QuestionAnswerEntity.java b/src/main/java/com/project/question/domain/entity/QuestionAnswerEntity.java new file mode 100644 index 0000000..2298ad3 --- /dev/null +++ b/src/main/java/com/project/question/domain/entity/QuestionAnswerEntity.java @@ -0,0 +1,54 @@ +package com.project.question.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.project.base.domain.entity.BaseEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Comment; + +@Data +@Table(name = "evaluator_question_answer" ) +@Entity +@TableName(value = "evaluator_question_answer", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class QuestionAnswerEntity extends BaseEntity { + @TableId(type = IdType.ASSIGN_ID) + @Id + private Long id; + + @Column(name = "exam_record_id") + @TableField("exam_record_id") + @Comment("所属考试记录ID") + private Long examRecordId; + + @Column(name = "user_id") + @TableField("user_id") + @Comment("所属用户ID") + private Long userId; + + @Column(name = "question_id") + @TableField("question_id") + @Comment("问题ID") + private Long questionId; + + @Column(name = "user_answer" , columnDefinition="varchar(255) comment '用户回答答案'") + @TableField("user_answer") + private String userAnswer; + + @Column(name = "is_right") + @TableField("is_right") + @Comment("是否正确") + private Boolean isRight; + + @Column(name = "score") + @TableField("score") + @Comment("得分") + private Double score; +} diff --git a/src/main/java/com/project/question/domain/entity/QuestionEntity.java b/src/main/java/com/project/question/domain/entity/QuestionEntity.java new file mode 100644 index 0000000..3f482fb --- /dev/null +++ b/src/main/java/com/project/question/domain/entity/QuestionEntity.java @@ -0,0 +1,73 @@ +package com.project.question.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import com.project.base.domain.entity.BaseEntity; +import com.project.question.domain.enums.QuestionUseStatusEnum; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; + +import java.util.List; +import java.util.Map; + + +@Data +@Table(name = "evaluator_question" ) +@Entity +@TableName(value = "evaluator_question", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class QuestionEntity extends BaseEntity { + @TableId(type = IdType.ASSIGN_ID) + @Id + private Long id; + + @Comment("来源:0-单KP出题, 1-簇出题") + @Column(name = "source_type") + @TableField("source_type") + private Integer sourceType; + + + @Comment("是否已被使用:0-未用, 1-已用") + @Column(name = "use_status") + @TableField("use_status") + private Boolean useStatus = QuestionUseStatusEnum.Not_Use.getValue(); + + @TableField(value = "kp_id_list" , typeHandler = JacksonTypeHandler.class) + @JdbcTypeCode(SqlTypes.JSON) + @Column(name = "kp_id_list", columnDefinition = "json comment '覆盖知识点ID列表'") + private List kpIdList; + + + + @Column(name = "unique_hash" , unique = true, length = 64) + @TableField("unique_hash") + private String uniqueHash; + + @Column(name = "question_type", columnDefinition = "comment '题目类型'") + @TableField("question_type") + private Integer questionType; + + @TableField(value = "question_detail" , typeHandler = JacksonTypeHandler.class) + @JdbcTypeCode(SqlTypes.JSON) + @Column(name = "question_detail", columnDefinition = "json comment '题目内容'") + private QuestionDetail questionDetail; + + @Data + public static class QuestionDetail { + private String questionContent; // 题干 + private Integer type; // 题目类型 + private Map options; // 选项 + private String rightAnswer; // 正确选项 + private String analysis; // AI解析 + } +} diff --git a/src/main/java/com/project/question/domain/enums/QuestionSourceTypeEnum.java b/src/main/java/com/project/question/domain/enums/QuestionSourceTypeEnum.java new file mode 100644 index 0000000..d07a9c7 --- /dev/null +++ b/src/main/java/com/project/question/domain/enums/QuestionSourceTypeEnum.java @@ -0,0 +1,15 @@ +package com.project.question.domain.enums; + +import com.project.base.domain.enums.HasValueEnum; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter +public enum QuestionSourceTypeEnum implements HasValueEnum { + + Single_Concept(0 , "单一知识点") , + Multi_Concept(1 , "多知识点/复合"); + private final Integer value; + private final String desc; +} diff --git a/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java b/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java new file mode 100644 index 0000000..36d6c34 --- /dev/null +++ b/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java @@ -0,0 +1,13 @@ +package com.project.question.domain.enums; + +import com.project.base.domain.enums.HasValueEnum; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter +public enum QuestionUseStatusEnum implements HasValueEnum { + Not_Use(Boolean.FALSE) , + Used(Boolean.TRUE); + private final Boolean value; +} diff --git a/src/main/java/com/project/task/domain/entity/TaskKnowledgeClusterEntity.java b/src/main/java/com/project/task/domain/entity/TaskKnowledgeClusterEntity.java new file mode 100644 index 0000000..5aeefb4 --- /dev/null +++ b/src/main/java/com/project/task/domain/entity/TaskKnowledgeClusterEntity.java @@ -0,0 +1,41 @@ +package com.project.task.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.project.base.domain.entity.BaseEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Comment; + +@Data +@Table(name = "evaluator_task_knowledge_cluster" ) +@Entity +@TableName(value = "evaluator_task_knowledge_cluster", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class TaskKnowledgeClusterEntity extends BaseEntity { + @TableId(value = "id" , type = IdType.ASSIGN_ID) + @Id + private Long id; + + @Column(name = "task_id") + @TableField("task_id") + @Comment("所属考试任务ID") + private Long taskId; + + @Column(name = "cluster_topic", length = 512) + @Comment("簇主题/标签(由AI聚类后总结提取)") + @TableField("cluster_topic") + + private String clusterTopic; + + @Column(name = "cluster_size") + @TableField("cluster_size") + @Comment("簇大小(W):该簇包含的知识点个数") + private Integer clusterSize; +} diff --git a/src/main/java/com/project/task/domain/entity/TaskKnowledgePointEntity.java b/src/main/java/com/project/task/domain/entity/TaskKnowledgePointEntity.java new file mode 100644 index 0000000..9dbb7c5 --- /dev/null +++ b/src/main/java/com/project/task/domain/entity/TaskKnowledgePointEntity.java @@ -0,0 +1,48 @@ +package com.project.task.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.project.base.domain.entity.BaseEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Comment; + +@Data +@Table(name = "evaluator_task_knowledge_point" ) +@Entity +@TableName(value = "evaluator_task_knowledge_point", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class TaskKnowledgePointEntity extends BaseEntity { + @TableId(type = IdType.ASSIGN_ID) + @Id + private Long id; + + @Column(name = "task_id") + @TableField("task_id") + @Comment("所属考试任务ID") + private Long taskId; + + @Column(name = "cluster_id") + @TableField("cluster_id") + + @Comment("所属簇ID(关联 evaluator_task_knowledge_cluster)") + private Long clusterId; + + @Column(name = "atom_id") + @TableField("atom_id") + + @Comment("关联原始原子知识点ID(对应原始资料解析出的ID)") + private Long atomId; + + @Column(name = "content", columnDefinition = "TEXT") + @Comment("知识点原文文本") + private String content; + + +} diff --git a/src/main/java/com/project/task/domain/enums/TaskStatusEnum.java b/src/main/java/com/project/task/domain/enums/TaskStatusEnum.java index bfba517..d603afd 100644 --- a/src/main/java/com/project/task/domain/enums/TaskStatusEnum.java +++ b/src/main/java/com/project/task/domain/enums/TaskStatusEnum.java @@ -4,12 +4,12 @@ import com.project.base.domain.enums.HasValueEnum; import lombok.Getter; import lombok.RequiredArgsConstructor; +@Getter @RequiredArgsConstructor public enum TaskStatusEnum implements HasValueEnum { Not_Start("未开考") , In_Progress("已开考") , Cut_Off("已截止"); - @Getter private final String value; } diff --git a/src/main/java/com/project/task/mapper/TaskKnowledgeClusterMapper.java b/src/main/java/com/project/task/mapper/TaskKnowledgeClusterMapper.java new file mode 100644 index 0000000..0419de4 --- /dev/null +++ b/src/main/java/com/project/task/mapper/TaskKnowledgeClusterMapper.java @@ -0,0 +1,10 @@ +package com.project.task.mapper; + +import com.project.task.domain.entity.TaskKnowledgeClusterEntity; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + + +@Mapper +public interface TaskKnowledgeClusterMapper extends BaseMapper{ +} diff --git a/src/main/java/com/project/task/mapper/TaskKnowledgePointMapper.java b/src/main/java/com/project/task/mapper/TaskKnowledgePointMapper.java new file mode 100644 index 0000000..9b6a218 --- /dev/null +++ b/src/main/java/com/project/task/mapper/TaskKnowledgePointMapper.java @@ -0,0 +1,9 @@ +package com.project.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.project.task.domain.entity.TaskKnowledgePointEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TaskKnowledgePointMapper extends BaseMapper { +}