2025年3月17日17:55:47

master
qmstyle 2025-03-17 17:55:55 +08:00
parent 531fdf4b25
commit 01b136ada9
4 changed files with 504 additions and 0 deletions

View File

@ -1,11 +1,14 @@
package com.zhangmeng.online.exam.controller;
import com.zhangmeng.online.exam.dao.*;
import com.zhangmeng.online.exam.dto.Result;
import com.zhangmeng.online.exam.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@ -154,6 +157,11 @@ public class InitController {
@Autowired
private SubjectDao subjectDao;
@GetMapping("/subject/init")
public void subjectInit(){
subjectInitData();
}
// 学科管理初始化数据
public void subjectInitData(){
@ -223,4 +231,443 @@ public class InitController {
professionDao.save(profession);
}
@Autowired
private QuestionDao questionDao;
@Autowired
private QuestionOptionDao questionOptionDao;
@GetMapping("/question")
public void questionInit(){
questionInitData();
}
// 问题管理初始化数据
public void questionInitData(){
Subject subject = this.subjectDao.findByCode("001");
Profession profession = subject.getProfession();
/**
*
* A.
* B.10
* C.
* D.西
* C
*
*/
Question question = new Question();
question.setSubject(subject);
question.setType(Question.Type.SINGLE_CHOICE);
question.setName("下列文学常识表述错误的一项是( ");
this.questionDao.save(question);
QuestionOption optionA = new QuestionOption();
optionA.setQuestion(question);
optionA.setOptionName("A.");
optionA.setOptionContent("《骆驼祥子》中祥子失去土地后流落到北平城拉车");
optionA.setOptionOrder(1);
optionA.setIsAnswer(false);
this.questionOptionDao.save(optionA);
QuestionOption optionB = new QuestionOption();
optionB.setQuestion(question);
optionB.setOptionName("B.");
optionB.setOptionContent("《朝花夕拾》原名《旧事重提》收录了鲁迅的10篇回忆性散文");
optionB.setOptionOrder(2);
optionB.setIsAnswer(false);
this.questionOptionDao.save(optionB);
QuestionOption optionC = new QuestionOption();
optionC.setQuestion(question);
optionC.setOptionName("C.");
optionC.setOptionContent("《水浒传》中“智取生辰纲”的故事与吴用、林冲等人相关");
optionC.setOptionOrder(3);
optionC.setIsAnswer(true);
optionC.setExplanation("“智取生辰纲”的主要策划者是吴用,参与者包括晁盖、公孙胜等,林冲并未参与此事");
this.questionOptionDao.save(optionC);
QuestionOption 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));
/**
*
* A. B. C. D.
* A
*
*/
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);
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);
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));
/**
*
* 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);
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);
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));
/**
*
* A.
* B.
* C.
* D.
* D
* DB
*/
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);
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);
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));
/**
*
* A.
* B.
* C.
* D.
* A
* 西
*/
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);
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);
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));
/**
*
* A.
* B.
* C.宿
* D.
* C
* ABD
*/
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);
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);
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));
/**
* 线使
* A.
* B.
* C.
* D.
* C
* ABD
*/
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);
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);
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));
/**
*
* A.
* B.
* C.
* D.
* B
* ACD
*/
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);
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);
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));
}
@GetMapping("/test1")
public void test1() {
Role role = this.roleDao.findById(1L).get();
Permission p = new Permission();
p.setName("选项管理");
p.setDescription("选项管理");
p.setSort(3);
p.setFrontpath("/role/list");
p.setRoles(new HashSet<>(List.of(role)));
permissionDao.save(p);
Permission p3 = new Permission();
p3.setName("选项管理");
p3.setIcon("option-list");
p3.setUrl("/option/list");
p3.setDescription("角色管理");
p3.setSort(3);
p3.setFrontpath("/option/list");
p3.setParent(p);
permissionDao.save(p3);
}
}

View File

@ -0,0 +1,51 @@
package com.zhangmeng.online.exam.controller;
import com.zhangmeng.online.exam.dao.SubjectDao;
import com.zhangmeng.online.exam.dto.Result;
import com.zhangmeng.online.exam.entity.Subject;
import com.zhangmeng.online.exam.entity.User;
import com.zhangmeng.online.exam.utils.PageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author zm
* @date 2025/3/17 16:44
* @version: 1.0
*/
@RestController
@RequestMapping("/subject")
public class SubjectController {
@Autowired
private SubjectDao subjectDao;
@RequestMapping("/list")
public Object list(Integer pageNum, Integer pageSize) {
Pageable pageable = PageRequest.of(PageUtils.getPageNum(pageNum), pageSize, Sort.Direction.DESC, "addTime");
Page<Subject> all = subjectDao.findAll(pageable);
List<Subject> list = all.getContent();
List<Map<String, Object>> resultList = new ArrayList<>();
for (Subject subject : list) {
Map<String, Object> map = new HashMap<>();
map.put("id", subject.getId());
map.put("name", subject.getName());
map.put("code", subject.getCode());
map.put("description", subject.getDescription());
map.put("addTime", subject.getAddTime());
resultList.add(map);
}
return Result.success(pageNum, pageSize, all.getTotalElements(), resultList);
}
}

View File

@ -9,4 +9,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
* @version: 1.0
*/
public interface SubjectDao extends JpaRepository<Subject, Long> {
public Subject findByCode(String code);
}

View File

@ -38,4 +38,7 @@ public class QuestionOption extends BaseEntity<Long> {
private Integer optionOrder;//选项顺序
private Boolean isAnswer;//是否是正确答案
private String explanation;//选项解析
}