diff --git a/src/main/java/com/zhangmeng/online/exam/controller/InitController.java b/src/main/java/com/zhangmeng/online/exam/controller/InitController.java index 0f71ee1..dfd1bbb 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/InitController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/InitController.java @@ -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 subjectList){ + public void professionInitData(List 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 * ‌解析‌:D选项以春草蔓延比喻离愁的绵长,契合异地相思的意境;B选项侧重赠物表心意,非专指思念‌ */ - 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 * ‌解析‌:A选项“原因”与“所致”重复;B选项缺少“构建和谐社会”等搭配;D选项“导致”与“造成”语义重复‌ */ - 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 * ‌解析‌:A选项“络绎不绝”形容人流而非物资;B选项“明日黄花”比喻过时事物,含贬义,与“观点”搭配不当;D选项“手舞足蹈”多形容儿童,与成人获奖场景不协调‌ */ - 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 * ‌解析‌:A选项“风格”与“独特”搭配不当;C选项“写得”与“文章”搭配不当;D选项“循序渐进”与“能学到”搭配不当‌ */ - 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); + } } diff --git a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java index ef6b9c5..89ea97c 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java @@ -132,7 +132,7 @@ public class UserController { } - + //试卷 @GetMapping("/menu") public Result menuList() { List list = new ArrayList<>(); diff --git a/src/main/java/com/zhangmeng/online/exam/dao/PaperDao.java b/src/main/java/com/zhangmeng/online/exam/dao/PaperDao.java new file mode 100644 index 0000000..a2098ae --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/dao/PaperDao.java @@ -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 { +} diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Answer.java b/src/main/java/com/zhangmeng/online/exam/entity/Answer.java new file mode 100644 index 0000000..48d7f44 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/entity/Answer.java @@ -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 { + + @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 questionOptions = new ArrayList<>(); + + private String answer; +} diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Paper.java b/src/main/java/com/zhangmeng/online/exam/entity/Paper.java new file mode 100644 index 0000000..d0357c8 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/entity/Paper.java @@ -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 { + + 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 questions = new ArrayList();//试卷题目列表 + +} diff --git a/src/main/java/com/zhangmeng/online/exam/entity/PaperAnswer.java b/src/main/java/com/zhangmeng/online/exam/entity/PaperAnswer.java new file mode 100644 index 0000000..e51f980 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/entity/PaperAnswer.java @@ -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 { + + @ManyToOne(fetch = FetchType.LAZY) + private User crateUser;//试卷答案创建者 + + @OneToMany(mappedBy = "paperAnswer",fetch = FetchType.LAZY) + private List answers = new ArrayList<>();//试卷答案列表 +} diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Question.java b/src/main/java/com/zhangmeng/online/exam/entity/Question.java index 3748f75..8d9ca60 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/Question.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/Question.java @@ -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 { @ManyToOne(fetch = FetchType.LAZY) private Subject subject; + + @ManyToMany(mappedBy = "questions",targetEntity = Paper.class) + private List papers = new ArrayList<>(); }