2025年2月28日16:34:54 实体创建

master
qmstyle 2025-02-28 16:35:11 +08:00
parent 9ef0d6d023
commit 89ea4746bc
14 changed files with 361 additions and 0 deletions

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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;//是否是正确答案
}

View File

@ -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<>();
}

View File

@ -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<>();
}

View File

@ -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;
}

View File

@ -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<>();
}

View File

@ -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<>();//题目列表
}

View File

@ -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<>();
}