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("用户管理");
@ -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();
@ -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<>();
}