2025年3月18日17:33:08

master
qmstyle 2025-03-18 17:33:54 +08:00
parent 370b9fa76f
commit 92c26552a5
7 changed files with 434 additions and 263 deletions

View File

@ -31,7 +31,7 @@ public class InitController {
private PermissionDao permissionDao;
@RequestMapping("/data")
public void initData(){
public void initData() {
Permission p1 = new Permission();
p1.setName("用户管理");
@ -70,7 +70,7 @@ public class InitController {
p4.setParent(p1);
permissionDao.save(p4);
/****************************************************************************************************************************************/
/****************************************************************************************************************************************/
Permission p5 = new Permission();
p5.setName("问题管理");
@ -126,7 +126,6 @@ public class InitController {
permissionDao.save(p10);
Role role = new Role();
role.setName("管理员");
role.setDescription("管理员");
@ -158,12 +157,12 @@ public class InitController {
private SubjectDao subjectDao;
@GetMapping("/subject/init")
public void subjectInit(){
public void subjectInit() {
subjectInitData();
}
// 学科管理初始化数据
public void subjectInitData(){
public void subjectInitData() {
Subject subject = new Subject();
subject.setName("语文");
@ -223,7 +222,7 @@ public class InitController {
private ProfessionDao professionDao;
// 职业管理初始化数据
public void professionInitData(List<Subject> subjectList){
public void professionInitData(List<Subject> subjectList) {
Profession profession = new Profession();
profession.setName("学生");
@ -236,13 +235,14 @@ public class InitController {
@Autowired
private QuestionOptionDao questionOptionDao;
@GetMapping("/question")
public void questionInit(){
public void questionInit() {
questionInitData();
}
// 问题管理初始化数据
public void questionInitData(){
public void questionInitData() {
Subject subject = this.subjectDao.findByCode("001");
Profession profession = subject.getProfession();
@ -303,93 +303,93 @@ public class InitController {
* A
*
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("《骆驼祥子》中祥子买第一辆洋车用了多长时间?( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("《骆驼祥子》中祥子买第一辆洋车用了多长时间?( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("三年");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("三年");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("四年");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("四年");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("两年");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("两年");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("五年");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("祥子通过省吃俭用,历时三年才攒够钱购买第一辆车");
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("五年");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("祥子通过省吃俭用,历时三年才攒够钱购买第一辆车");
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
*
* A. B. C. D.
* C
*
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("《水浒传》中“白骨精”是指哪个角色?( ");
this.questionDao.save(question);
/**
*
* A. B. C. D.
* C
*
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("《水浒传》中“白骨精”是指哪个角色?( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("杨过");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("杨过");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("郭靖");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("郭靖");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("黄蓉");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("黄蓉");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("张无忌");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("“白骨精”指的是张无忌,他在《水浒传》中扮演的角色是“白骨精”");
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("张无忌");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("“白骨精”指的是张无忌,他在《水浒传》中扮演的角色是“白骨精”");
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
*
@ -400,45 +400,45 @@ public class InitController {
* D
* DB
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("异地恋时,下列哪句诗最能表达思念之情?( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("异地恋时,下列哪句诗最能表达思念之情?( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("泪眼问花花不语,乱红飞过秋千去");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("泪眼问花花不语,乱红飞过秋千去");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("离恨恰如春草,更行更远还生");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("离恨恰如春草,更行更远还生");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("春风十里不如你,江南岸边月下柳");
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("春风十里不如你,江南岸边月下柳");
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("泪眼问花花不语,乱红飞过秋千去");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("D选项以春草蔓延比喻离愁的绵长契合异地相思的意境B选项侧重赠物表心意非专指思念");
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("泪眼问花花不语,乱红飞过秋千去");
optionD.setOptionOrder(4);
optionD.setIsAnswer(true);
optionD.setExplanation("D选项以春草蔓延比喻离愁的绵长契合异地相思的意境B选项侧重赠物表心意非专指思念");
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
*
* A.
@ -448,46 +448,46 @@ public class InitController {
* A
* 西
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("“接天莲叶无穷碧,映日荷花别样红”主要表达什么情感?( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("“接天莲叶无穷碧,映日荷花别样红”主要表达什么情感?( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("对自然美景的赞叹");
optionA.setOptionOrder(1);
optionA.setIsAnswer(true);
optionA.setExplanation("诗句通过描绘莲叶与荷花的壮丽色彩,展现诗人对西湖风光的喜爱");
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("对自然美景的赞叹");
optionA.setOptionOrder(1);
optionA.setIsAnswer(true);
optionA.setExplanation("诗句通过描绘莲叶与荷花的壮丽色彩,展现诗人对西湖风光的喜爱");
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("对离别的伤感");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("对离别的伤感");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("对丰收的期待");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("对丰收的期待");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("对时光流逝的感慨");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("对时光流逝的感慨");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
@ -499,46 +499,46 @@ public class InitController {
* C
* ABD
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子没有语病的是( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子没有语病的是( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("原因");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("原因");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("我们必须站在实践科学发展观的高度统筹规划农业");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("我们必须站在实践科学发展观的高度统筹规划农业");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("从食堂到宿舍的煤屑路在没有月光的晚上阴森可怕");
optionC.setOptionOrder(3);
optionC.setIsAnswer(true);
optionC.setExplanation("从食堂到宿舍的煤屑路在没有月光的晚上阴森可怕,说明人们对自然环境的恐惧");
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("从食堂到宿舍的煤屑路在没有月光的晚上阴森可怕");
optionC.setOptionOrder(3);
optionC.setIsAnswer(true);
optionC.setExplanation("从食堂到宿舍的煤屑路在没有月光的晚上阴森可怕,说明人们对自然环境的恐惧");
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("人口增加导致滥伐林木等问题,造成物种濒危");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("人口增加导致滥伐林木等问题,造成物种濒危");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
* 线使
@ -549,47 +549,47 @@ public class InitController {
* C
* ABD
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子中画线成语使用恰当的是( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子中画线成语使用恰当的是( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("救灾物资络绎不绝地运往灾区");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("救灾物资络绎不绝地运往灾区");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("他总爱在会议上发表明日黄花的观点");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("他总爱在会议上发表明日黄花的观点");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("这场辩论赛双方针锋相对,难分高下");
optionC.setOptionOrder(3);
optionC.setIsAnswer(true);
optionC.setExplanation("这场辩论赛双方针锋相对,难分高下,说明双方观点不一致");
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("这场辩论赛双方针锋相对,难分高下");
optionC.setOptionOrder(3);
optionC.setIsAnswer(true);
optionC.setExplanation("这场辩论赛双方针锋相对,难分高下,说明双方观点不一致");
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("听到获奖消息,他激动得手舞足蹈");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("听到获奖消息,他激动得手舞足蹈");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
/**
*
@ -600,46 +600,46 @@ public class InitController {
* B
* ACD
*/
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子中不属于语病的是( ");
this.questionDao.save(question);
question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列句子中不属于语病的是( ");
this.questionDao.save(question);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("这位老师的讲课风格独特,深受学生喜爱");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("这位老师的讲课风格独特,深受学生喜爱");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("他的课堂气氛活跃,学生们都很投入");
optionB.setOptionOrder(2);
optionB.setIsAnswer(true);
optionB.setExplanation("他的课堂气氛活跃,学生们都很投入,说明教师的教学方式符合学生的学习需求");
this.questionOptionDao.save(optionB);
optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("他的课堂气氛活跃,学生们都很投入");
optionB.setOptionOrder(2);
optionB.setIsAnswer(true);
optionB.setExplanation("他的课堂气氛活跃,学生们都很投入,说明教师的教学方式符合学生的学习需求");
this.questionOptionDao.save(optionB);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("这位同学的作文写得很好,文章结构清晰");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("这位同学的作文写得很好,文章结构清晰");
optionC.setOptionOrder(3);
optionC.setIsAnswer(false);
this.questionOptionDao.save(optionC);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("这位老师的授课方式循序渐进,学生能学到知识");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
optionD = new QuestionOption();
optionD.setQuestion(question);
optionD.setOptionName("D.");
optionD.setOptionContent("这位老师的授课方式循序渐进,学生能学到知识");
optionD.setOptionOrder(4);
optionD.setIsAnswer(false);
this.questionOptionDao.save(optionD);
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
question.setOptions(Arrays.asList(optionA, optionB, optionC, optionD));
}
@ -669,5 +669,49 @@ public class InitController {
}
@Autowired
private PaperDao paperDao;
@GetMapping("/test2")
public void test2() {
Subject subject = this.subjectDao.findByCode("001");
User admin = this.userDao.getById(1L);
Paper paper = new Paper();
paper.setName("测试试卷");
paper.setSubject(subject);
paper.setTotalScore(100);
paper.setCreator(admin);
paper.setStatus(0);
paper.setExamTime(120);
paper.setDescription("测试试卷");
paper.setPassScore(60);
paperDao.save(paper);
}
@GetMapping("/test3")
public void test3() {
Permission permission = new Permission();
permission.setName("试卷管理");
permission.setDescription("试卷管理");
permissionDao.save(permission);
Permission permission2 = new Permission();
permission2.setName("试卷列表");
permission2.setIcon("paper-list");
permission2.setUrl("/paper/list");
permission2.setDescription("试卷列表");
permission2.setSort(3);
permission2.setFrontpath("/paper/list");
permission2.setParent(permission);
permissionDao.save(permission2);
Role role = this.roleDao.findById(1L).get();
role.getPermissions().add(permission);
role.getPermissions().add(permission2);
roleDao.save(role);
}
}

View File

@ -132,7 +132,7 @@ public class UserController {
}
//试卷
@GetMapping("/menu")
public Result menuList() {
List<Menu> list = new ArrayList<>();

View File

@ -0,0 +1,12 @@
package com.zhangmeng.online.exam.dao;
import com.zhangmeng.online.exam.entity.Paper;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author zm
* @date 2025/3/18 16:51
* @version: 1.0
*/
public interface PaperDao extends JpaRepository<Paper, Long> {
}

View File

@ -0,0 +1,35 @@
package com.zhangmeng.online.exam.entity;
import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity;
import lombok.*;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author zm
* @date 2025/3/18 16:33
* @version: 1.0
*/
@NoArgsConstructor
@ToString(exclude = {"questionOptions"})
@Getter
@Setter
@AllArgsConstructor
@Entity
@Table(name = "answer")
public class Answer extends BaseEntity<Long> {
@ManyToOne(fetch = FetchType.LAZY)
private PaperAnswer paperAnswer;
@ManyToOne(fetch = FetchType.LAZY)
private Question questions;//答案对应的题目
@ManyToMany(fetch = FetchType.LAZY,targetEntity = QuestionOption.class)
@JoinTable(name = "answer_question_option", joinColumns = @JoinColumn(name = "answer_id"), inverseJoinColumns = @JoinColumn(name = "option_id"))
private List<QuestionOption> questionOptions = new ArrayList<>();
private String answer;
}

View File

@ -0,0 +1,49 @@
package com.zhangmeng.online.exam.entity;
import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity;
import lombok.*;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author zm
* @date 2025/3/18 16:21
* @version: 1.0
*/
@NoArgsConstructor
@ToString(exclude = {"questions","creator"})
@Getter
@Setter
@AllArgsConstructor
@Entity
@Table(name = "paper")
public class Paper extends BaseEntity<Long> {
private String name;//试卷名称
private String description;//试卷描述
private Integer totalScore;//总分
private Integer passScore;//及格分数
private Integer examTime;//考试时间
private Integer type;//答案
private Integer status;//试卷状态
@ManyToOne(targetEntity = Subject.class,fetch = FetchType.LAZY)
private Subject subject;//所属科目
@ManyToOne(targetEntity = User.class,fetch = FetchType.LAZY)
private User creator;//创建人
@ManyToMany(targetEntity = Question.class)
@JoinTable(name = "paper_question", joinColumns = @JoinColumn(name = "paper_id"), inverseJoinColumns = @JoinColumn(name = "question_id"))
private List<Question> questions = new ArrayList<Question>();//试卷题目列表
}

View File

@ -0,0 +1,30 @@
package com.zhangmeng.online.exam.entity;
import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity;
import lombok.*;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author zm
* @date 2025/3/18 16:36
* @version: 1.0
*/
@NoArgsConstructor
@ToString(exclude = {"answers"})
@Getter
@Setter
@AllArgsConstructor
@Entity
@Table(name = "paper_answer")
public class PaperAnswer extends BaseEntity<Long> {
@ManyToOne(fetch = FetchType.LAZY)
private User crateUser;//试卷答案创建者
@OneToMany(mappedBy = "paperAnswer",fetch = FetchType.LAZY)
private List<Answer> answers = new ArrayList<>();//试卷答案列表
}

View File

@ -1,10 +1,7 @@
package com.zhangmeng.online.exam.entity;
import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.*;
import javax.persistence.*;
import java.util.ArrayList;
@ -17,6 +14,7 @@ import java.util.List;
*/
@NoArgsConstructor
@Data
@ToString(exclude = {"options", "subject", "papers"})
@AllArgsConstructor
@Entity
@EqualsAndHashCode(callSuper = false)
@ -70,4 +68,7 @@ public class Question extends BaseEntity<Long> {
@ManyToOne(fetch = FetchType.LAZY)
private Subject subject;
@ManyToMany(mappedBy = "questions",targetEntity = Paper.class)
private List<Paper> papers = new ArrayList<>();
}