Browse Source

问题回答关联实体

master
luoweijian 1 month ago
parent
commit
2d495ff117
  1. 54
      src/main/java/com/project/question/domain/entity/QuestionAnswerEntity.java
  2. 73
      src/main/java/com/project/question/domain/entity/QuestionEntity.java
  3. 15
      src/main/java/com/project/question/domain/enums/QuestionSourceTypeEnum.java
  4. 13
      src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java
  5. 41
      src/main/java/com/project/task/domain/entity/TaskKnowledgeClusterEntity.java
  6. 48
      src/main/java/com/project/task/domain/entity/TaskKnowledgePointEntity.java
  7. 2
      src/main/java/com/project/task/domain/enums/TaskStatusEnum.java
  8. 10
      src/main/java/com/project/task/mapper/TaskKnowledgeClusterMapper.java
  9. 9
      src/main/java/com/project/task/mapper/TaskKnowledgePointMapper.java

54
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;
}

73
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<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解析
}
}

15
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<Integer> {
Single_Concept(0 , "单一知识点") ,
Multi_Concept(1 , "多知识点/复合");
private final Integer value;
private final String desc;
}

13
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<String> {
Not_Use(Boolean.FALSE) ,
Used(Boolean.TRUE);
private final Boolean value;
}

41
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;
}

48
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;
}

2
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<String> {
Not_Start("未开考") ,
In_Progress("已开考") ,
Cut_Off("已截止");
@Getter
private final String value;
}

10
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<TaskKnowledgeClusterEntity>{
}

9
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<TaskKnowledgePointEntity> {
}
Loading…
Cancel
Save