2025年2月28日16:34:54 实体创建
parent
9ef0d6d023
commit
89ea4746bc
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Option;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:14
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface OptionDao extends JpaRepository<Option, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Permission;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:04
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface PermissionDao extends JpaRepository<Permission, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Profession;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:26
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface ProfessionDao extends JpaRepository<Profession, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Question;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:15
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface QuestionDao extends JpaRepository<Question, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Role;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:04
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RoleDao extends JpaRepository<Role, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.Subject;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:19
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface SubjectDao extends JpaRepository<Subject, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.entity.User;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:03
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface UserDao extends JpaRepository<User, Long> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
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 javax.persistence.Entity;
|
||||||
|
import javax.persistence.FetchType;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @Description: 选项
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:10
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "option")
|
||||||
|
public class Option extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Question question;
|
||||||
|
|
||||||
|
private String optionName;//选项A
|
||||||
|
|
||||||
|
private String optionContent;//选项内容
|
||||||
|
|
||||||
|
private Integer optionScore;//选项得分
|
||||||
|
|
||||||
|
private Integer optionOrder;//选项顺序
|
||||||
|
|
||||||
|
private Boolean isAnswer;//是否是正确答案
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
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 javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.ManyToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 14:46
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "permission")
|
||||||
|
public class Permission extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
@Column(name = "frontpath")
|
||||||
|
private String frontpath;
|
||||||
|
|
||||||
|
@ManyToMany(mappedBy = "permissions")
|
||||||
|
private Set<Role> roles = new HashSet<>();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
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 javax.persistence.Entity;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* description: 职业实体类
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:24
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "profession")
|
||||||
|
public class Profession extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "profession")
|
||||||
|
private List<Subject> subjects = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
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 javax.persistence.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:06
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "question")
|
||||||
|
public class Question extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
public enum Type {
|
||||||
|
SINGLE_CHOICE,//单选题
|
||||||
|
MULTIPLE_CHOICE,//多选题
|
||||||
|
JUDGMENT,//判断题
|
||||||
|
SHORT_ANSWER,//简答题
|
||||||
|
TRUE_OR_FALSE,//判断题
|
||||||
|
NUMERICAL,//计算题
|
||||||
|
}
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private Type type;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "question")
|
||||||
|
private List<Option> options = new ArrayList<>();
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Subject subject;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
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 javax.persistence.*;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 14:45
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "role")
|
||||||
|
public class Role extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@ManyToMany(mappedBy = "roles")
|
||||||
|
private Set<User> users = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToMany(fetch = FetchType.LAZY)
|
||||||
|
@JoinTable(name = "role_permission", joinColumns = @JoinColumn(name = "role_id"), inverseJoinColumns = @JoinColumn(name = "permission_id"))
|
||||||
|
private Set<Permission> permissions = new HashSet<>();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
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 javax.persistence.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* description: 学科
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 16:18
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "subject")
|
||||||
|
public class Subject extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
private String name;//学科名称
|
||||||
|
|
||||||
|
private String code;//学科代码
|
||||||
|
|
||||||
|
private String description;//学科描述
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Profession profession;//职业
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "subject")
|
||||||
|
private List<Question> questions = new ArrayList<>();//题目列表
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
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 javax.persistence.*;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/2/28 14:45
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = "user")
|
||||||
|
public class User extends BaseEntity<Long> {
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||||
|
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
|
||||||
|
private Set<Role> roles = new HashSet<>();
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue