9 changed files with 264 additions and 1 deletions
@ -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; |
||||
|
} |
||||
@ -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<Long> 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<String, String> options; // 选项
|
||||
|
private String rightAnswer; // 正确选项
|
||||
|
private String analysis; // AI解析
|
||||
|
} |
||||
|
} |
||||
@ -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<Integer> { |
||||
|
|
||||
|
Single_Concept(0 , "单一知识点") , |
||||
|
Multi_Concept(1 , "多知识点/复合"); |
||||
|
private final Integer value; |
||||
|
private final String desc; |
||||
|
} |
||||
@ -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<String> { |
||||
|
Not_Use(Boolean.FALSE) , |
||||
|
Used(Boolean.TRUE); |
||||
|
private final Boolean value; |
||||
|
} |
||||
@ -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; |
||||
|
} |
||||
@ -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; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -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<TaskKnowledgeClusterEntity>{ |
||||
|
} |
||||
@ -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<TaskKnowledgePointEntity> { |
||||
|
} |
||||
Loading…
Reference in new issue