package com.qxueyou.scc.exercise.model; import java.io.Serializable; import java.math.BigInteger; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.annotations.GenericGenerator; import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.qxueyou.scc.base.model.ITrace; /** * The persistent class for the exercise_group database table. * */ @Entity @Table(name="exercise_group") @NamedQuery(name="ExerciseGroup.findAll", query="SELECT e FROM ExerciseGroup e") @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler"}) //@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id") public class ExerciseGroup implements Serializable,ITrace { private static final long serialVersionUID = 1L; //题库状态 草稿0,已发布2 已下架3 public static final short STATUS_DRAFT = 0; public static final short STATUS_PUBLISHED = 2; public static final short STATUS_TAKEOFF = 3; //题库类型 1:个人题库,2:学校题库 3:共享题库 public static final short GROUP_RANGE_PRIV = 1; public static final short GROUP_RANGE_SCHOOL = 2; public static final short GROUP_RANGE_SHARE = 3; @Id @GeneratedValue(generator = "hibernate-uuid") @GenericGenerator(name = "hibernate-uuid", strategy = "uuid") @Column(name="GROUP_ID", unique=true, nullable=false, length=32) private String groupId; @Column(name="CLASS_ID", length=32) private String classId; @Column(name="COLLEGE_COURSE_ID", length=32) private String collegeCourseId; @Column(name="ORG_ID", nullable=false, length=32) private String orgId; @Column(name="SUBJECT_ID", length=32) private String subjectId; @Transient private String subjectName; @Column(name="CREATE_ID", nullable=false, length=32) @JsonIgnore private String createId; @Column(name="CREATE_TIME", nullable=false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonIgnore private Date createTime; @Column(name="CREATOR", nullable=false, length=100) private String creator; @Column(name="DELETE_FLAG", nullable=false) @JsonIgnore private boolean deleteFlag; @Column(name="NAME", length=128) private String name; /** 用于模拟考试 存放 考试设置时间*/ @Column(name="ATTRIBUTE1", length=128) private String attribute1; /** 用于 章节练习 存放章节ID */ @Column(name="ATTRIBUTE2", length=128) private String attribute2; @Column(name="ORIGIN_EXERCISE_ID", length=32) private String originExerciseId; @Column(name="TYPE") private short type; /** 习题组类型(1,家庭作业;2,互动;3,顺序练习;4模拟考试;5真题;6:章节;7:随机练习;8:教学评估;9:专项练习;10:自由练习;11:考题题库;12:考试题目;13:智慧蓝项目题库) */ public final static short TYPE_HOMEWORK = 1; public final static short TYPE_INTERACT = 2; public final static short TYPE_EXERCISE_SEQUENCE = 3; public final static short TYPE_MOCK_EXAM = 4; /* * 历史真题 */ public final static short TYPE_HISTORY_ITEM = 5; public final static short TYPE_CHAPTER_ITEM = 6; public final static short TYPE_EXERCISE_RANDOM = 7; public final static short TYPE_EXERCISE_TEACH_EVALUATE = 8; public final static short TYPE_EXERCISE_TOPIC = 9; public final static short TYPE_EXERCISE_FREE = 10; public final static short TYPE_EXERCISE_EXAM = 11; public final static short TYPE_EXERCISE_EXAM_ITEM = 12; public final static short TYPE_EXERCISE_GROUP_LIB = 13; @Column(name="UPDATE_ID", length=32) private String updateId; @Column(name="UPDATE_TIME", nullable=false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @Column(name="UPDATOR", length=100) private String updator; // @ManyToMany(fetch = FetchType.LAZY) // @JoinTable(name = "EXERCISE_GROUP_ITEM_RE", joinColumns = { // @JoinColumn(name = "EXERCISE_GROUP_ID") }, // inverseJoinColumns = { @JoinColumn(name = "EXERCISE_ITEM_ID") }) // @Where(clause="DELETE_FLAG=0") @Transient private List items; @OneToMany(fetch = FetchType.LAZY, mappedBy = "group") @JsonIgnore private List records; /** 题目总数 */ @Column(name="ALL_COUNT") private BigInteger allCount; /** 当前做题总数 */ @Transient private String doCount; /** 班主任能不能编辑 */ @Transient private boolean editFlag; /** 练习管理排序,班主任排序 */ @Column(name="ORDER_NUM") private BigInteger orderNum; @Column(name="CHAPTER_ID") private String chapterId; /** 状态 */ @Column(name="STATUS") private short status; @Column(name="SUBJECT_ORDER") private Integer subjectOrder; @Column(name="CHAPTER_ORDER") private Integer chapterOrder; @Column(name="PART_ORDER") private Integer partOrder; @Column(name="DIFFICULT_LEVEL") private short difficultLevel; @Column(name="SOURCE_USER_ID") private String sourceUserId; @Column(name="SOURCE_USER_NAME") private String sourceUserName; @Column(name="GROUP_RANGE") private short groupRange; /** * 新:题库类型(练习题:exercises,测试题:quiz,考试题 :examinationQuestion) */ @Column(name="TYPE_STATUS") private String typeStatus; @Transient private int singleSelectCount; @Transient private int multiSelectCount; @Transient private int judgeCount; @Transient private int questionCount; @Transient private int fillBlanksCount; public String getTypeStatus() { return typeStatus; } public void setTypeStatus(String typeStatus) { this.typeStatus = typeStatus; } public String getSubjectName() { return subjectName; } public void setSubjectName(String subjectName) { this.subjectName = subjectName; } public Integer getSubjectOrder() { return subjectOrder; } public void setSubjectOrder(Integer subjectOrder) { this.subjectOrder = subjectOrder; } public Integer getChapterOrder() { return chapterOrder; } public void setChapterOrder(Integer chapterOrder) { this.chapterOrder = chapterOrder; } public Integer getPartOrder() { return partOrder; } public void setPartOrder(Integer partOrder) { this.partOrder = partOrder; } public short getStatus() { return status; } public void setStatus(short status) { this.status = status; } public String getChapterId() { return chapterId; } public void setChapterId(String chapterId) { this.chapterId = chapterId; } public BigInteger getOrderNum() { return orderNum; } public void setOrderNum(BigInteger orderNum) { this.orderNum = orderNum; } public List getItems() { return items; } public void setItems(List items) { this.items = items; } public String getGroupId() { return this.groupId; } public void setGroupId(String groupId) { this.groupId = groupId; } public String getCreateId() { return this.createId; } public void setCreateId(String createId) { this.createId = createId; } public Date getCreateTime() { return this.createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getCreator() { return this.creator; } public void setCreator(String creator) { this.creator = creator; } public boolean getDeleteFlag() { return this.deleteFlag; } public void setDeleteFlag(boolean deleteFlag) { this.deleteFlag = deleteFlag; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public short getType() { return this.type; } public String getTypeName() { switch (this.type) { case 1: { return "家庭作业"; } case 2: { return "互动练习"; } case 3: { return "顺序练习"; } case 4: { return "模拟考试"; } case 5: { return "真题"; } case 6: { return "章节练习"; } case 7: { return "随机练习"; } case 9: { return "专项练习"; } case 10: { return "自由练习"; } default:{ return ""; } } } public void setType(short type) { this.type = type; } public String getUpdateId() { return this.updateId; } public void setUpdateId(String updateId) { this.updateId = updateId; } public Date getUpdateTime() { return this.updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public String getUpdator() { return this.updator; } public void setUpdator(String updator) { this.updator = updator; } public String getClassId() { return classId; } public void setClassId(String classId) { this.classId = classId; } public String getAttribute1() { return attribute1; } public void setAttribute1(String attribute1) { this.attribute1 = attribute1; } public String getAttribute2() { return attribute2; } public void setAttribute2(String attribute2) { this.attribute2 = attribute2; } public String getOrgId() { return orgId; } public void setOrgId(String orgId) { this.orgId = orgId; } public List getRecords() { return records; } public void setRecords(List records) { this.records = records; } public String getDoCount() { return doCount; } public void setDoCount(String doCount) { this.doCount = doCount; } public BigInteger getAllCount() { return allCount; } public void setAllCount(BigInteger allCount) { this.allCount = allCount; } public String getCollegeCourseId() { return collegeCourseId; } public void setCollegeCourseId(String collegeCourseId) { this.collegeCourseId = collegeCourseId; } public String getSubjectId() { return subjectId; } public void setSubjectId(String subjectId) { this.subjectId = subjectId; } public String getOriginExerciseId() { return originExerciseId; } public void setOriginExerciseId(String originExerciseId) { this.originExerciseId = originExerciseId; } public boolean getEditFlag() { return editFlag; } public void setEditFlag(boolean editFlag) { this.editFlag = editFlag; } public short getDifficultLevel() { return difficultLevel; } public void setDifficultLevel(short difficultLevel) { this.difficultLevel = difficultLevel; } public String getSourceUserId() { return sourceUserId; } public void setSourceUserId(String sourceUserId) { this.sourceUserId = sourceUserId; } public String getSourceUserName() { return sourceUserName; } public void setSourceUserName(String sourceUserName) { this.sourceUserName = sourceUserName; } public short getGroupRange() { return groupRange; } public void setGroupRange(short groupRange) { this.groupRange = groupRange; } public int getSingleSelectCount() { return singleSelectCount; } public void setSingleSelectCount(int singleSelectCount) { this.singleSelectCount = singleSelectCount; } public int getMultiSelectCount() { return multiSelectCount; } public void setMultiSelectCount(int multiSelectCount) { this.multiSelectCount = multiSelectCount; } public int getJudgeCount() { return judgeCount; } public void setJudgeCount(int judgeCount) { this.judgeCount = judgeCount; } public int getQuestionCount() { return questionCount; } public void setQuestionCount(int questionCount) { this.questionCount = questionCount; } public int getFillBlanksCount() { return fillBlanksCount; } public void setFillBlanksCount(int fillBlanksCount) { this.fillBlanksCount = fillBlanksCount; } }