Compare commits

..

No commits in common. 'master' and 'develop' have entirely different histories.

@ -8,53 +8,57 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
/**
* @version 3.3.0
* @description: The enum System code.
* Copyright (C), 2020-2021,
* @date 2021/5/25 10:45
*/
@Component
public class WebContext {
private static final String USER_ATTRIBUTES = "USER_ATTRIBUTES"; // 请求上下文中存储当前用户的键
private final UserService userService; // 用户服务,用于根据用户名查询用户信息
public class
WebContext {
private static final String USER_ATTRIBUTES = "USER_ATTRIBUTES";
private final UserService userService;
/**
* Instantiates a new Web context.
*
* @param userService the user service
*/
@Autowired
public WebContext(UserService userService) {
this.userService = userService; // 构造器注入 UserService
this.userService = userService;
}
/**
*
* Sets current user.
*
* @param user
* @param user the user
*/
public void setCurrentUser(User user) {
RequestContextHolder.currentRequestAttributes().setAttribute(USER_ATTRIBUTES, user, RequestAttributes.SCOPE_REQUEST);
}
/**
*
* Gets current user.
*
* @return
* @return the current user
*/
public User getCurrentUser() {
// 尝试从请求上下文中获取当前用户
User user = (User) RequestContextHolder.currentRequestAttributes().getAttribute(USER_ATTRIBUTES, RequestAttributes.SCOPE_REQUEST);
// 如果当前请求上下文中已经有用户,则直接返回
if (null != user) {
return user;
} else {
// 如果请求上下文中没有用户,尝试从 Spring Security 中获取认证用户
org.springframework.security.core.userdetails.User springUser = (org.springframework.security.core.userdetails.User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (null == springUser) {
return null; // 如果没有认证的用户,返回 null
return null;
}
// 根据 Spring Security 的用户信息获取应用系统中的 User 对象
user = userService.getUserByUserName(springUser.getUsername());
// 如果成功获取到用户信息,将其存储到请求上下文中
if (null != user) {
setCurrentUser(user);
}
return user;
}
}
}
}

@ -1,104 +1,96 @@
package com.mindskip.xzs.viewmodel.admin.dashboard;
import java.util.List;
// 定义一个 IndexVM 类,用于在管理后台展示仪表盘数据
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class IndexVM {
// 试卷总数
private Integer examPaperCount;
// 问题总数
private Integer questionCount;
// 已做的试卷数量
private Integer doExamPaperCount;
// 已做的问题数量
private Integer doQuestionCount;
// 存储一个月内每天用户行为的统计值,数据类型为整数列表
private List<Integer> mothDayUserActionValue;
// 存储一个月内每天做题的统计值,数据类型为整数列表
private List<Integer> mothDayDoExamQuestionValue;
// 存储一个月内每天的文本信息,数据类型为字符串列表(可能用于记录每日的提示、日志等)
private List<String> mothDayText;
// 获取试卷总数
public Integer getExamPaperCount() {
return examPaperCount;
}
// 设置试卷总数
public void setExamPaperCount(Integer examPaperCount) {
this.examPaperCount = examPaperCount;
}
// 获取问题总数
public Integer getQuestionCount() {
return questionCount;
}
// 设置问题总数
public void setQuestionCount(Integer questionCount) {
this.questionCount = questionCount;
}
// 获取已做的试卷数量
public Integer getDoExamPaperCount() {
return doExamPaperCount;
}
// 设置已做的试卷数量
public void setDoExamPaperCount(Integer doExamPaperCount) {
this.doExamPaperCount = doExamPaperCount;
}
// 获取已做的问题数量
public Integer getDoQuestionCount() {
return doQuestionCount;
}
// 设置已做的问题数量
public void setDoQuestionCount(Integer doQuestionCount) {
this.doQuestionCount = doQuestionCount;
}
// 获取一个月内每天用户行为的统计值
public List<Integer> getMothDayUserActionValue() {
return mothDayUserActionValue;
}
// 设置一个月内每天用户行为的统计值
public void setMothDayUserActionValue(List<Integer> mothDayUserActionValue) {
this.mothDayUserActionValue = mothDayUserActionValue;
}
// 获取一个月内每天做题的统计值
public List<Integer> getMothDayDoExamQuestionValue() {
return mothDayDoExamQuestionValue;
}
// 设置一个月内每天做题的统计值
public void setMothDayDoExamQuestionValue(List<Integer> mothDayDoExamQuestionValue) {
this.mothDayDoExamQuestionValue = mothDayDoExamQuestionValue;
}
// 获取一个月内每天的文本信息
public List<String> getMothDayText() {
return mothDayText;
}
// 设置一个月内每天的文本信息
public void setMothDayText(List<String> mothDayText) {
this.mothDayText = mothDayText;
}
// 考试卷数
private Integer examPaperCount;
// 试题数
private Integer questionCount;
// 已做的考试卷数
private Integer doExamPaperCount;
// 已做的试题数
private Integer doQuestionCount;
// 每月用户行为数据
private List<Integer> mothDayUserActionValue;
// 每月做题数
private List<Integer> mothDayDoExamQuestionValue;
// 每月的文本描述(如活动、提示等)
private List<String> mothDayText;
// 获取考试卷数
public Integer getExamPaperCount() {
return examPaperCount;
}
// 设置考试卷数
public void setExamPaperCount(Integer examPaperCount) {
this.examPaperCount = examPaperCount;
}
// 获取试题数
public Integer getQuestionCount() {
return questionCount;
}
// 设置试题数
public void setQuestionCount(Integer questionCount) {
this.questionCount = questionCount;
}
// 获取已做的考试卷数
public Integer getDoExamPaperCount() {
return doExamPaperCount;
}
// 设置已做的考试卷数
public void setDoExamPaperCount(Integer doExamPaperCount) {
this.doExamPaperCount = doExamPaperCount;
}
// 获取已做的试题数
public Integer getDoQuestionCount() {
return doQuestionCount;
}
// 设置已做的试题数
public void setDoQuestionCount(Integer doQuestionCount) {
this.doQuestionCount = doQuestionCount;
}
// 获取每月用户行为数据
public List<Integer> getMothDayUserActionValue() {
return mothDayUserActionValue;
}
// 设置每月用户行为数据
public void setMothDayUserActionValue(List<Integer> mothDayUserActionValue) {
this.mothDayUserActionValue = mothDayUserActionValue;
}
// 获取每月做题数数据
public List<Integer> getMothDayDoExamQuestionValue() {
return mothDayDoExamQuestionValue;
}
// 设置每月做题数数据
public void setMothDayDoExamQuestionValue(List<Integer> mothDayDoExamQuestionValue) {
this.mothDayDoExamQuestionValue = mothDayDoExamQuestionValue;
}
// 获取每月的文本描述
public List<String> getMothDayText() {
return mothDayText;
}
// 设置每月的文本描述
public void setMothDayText(List<String> mothDayText) {
this.mothDayText = mothDayText;
}
}

@ -2,52 +2,68 @@ package com.mindskip.xzs.viewmodel.admin.education;
import com.mindskip.xzs.viewmodel.BaseVM;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
// SubjectEditRequestVM 类用于编辑学科的请求数据模型,继承自 BaseVM
/**
* @version 3.5.0
* @description: `BaseVM`
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class SubjectEditRequestVM extends BaseVM {
// 学科的 ID用于识别学科
// 科目ID
private Integer id;
// 学科名称,不能为空
// 科目名称,不能为空
@NotBlank
private String name;
// 学科等级,不能为空
// 科目等级,不能为空
@NotNull
private Integer level;
// 学科等级的名称,不能为空
// 科目等级名称,不能为空
@NotBlank
private String levelName;
// 获取学科 ID
// 获取科目ID
public Integer getId() {
return id;
}
// 设置学科 ID
// 设置科目ID
public void setId(Integer id) {
this.id = id;
}
// 获取学科名称
// 获取科目名称
public String getName() {
return name;
}
// 设置学科名称
// 设置科目名称
public void setName(String name) {
this.name = name;
}
// 获取学科等级
// 获取科目等级
public Integer getLevel() {
return level;
}
// 设置学科等级
// 设置科目等级
public void setLevel(Integer level) {
this.level = level;
}
// 获取学科等级名称
// 获取科目等级名称
public String getLevelName() {
return levelName;
}
// 设置学科等级名称
// 设置科目等级名称
public void setLevelName(String levelName) {
this.levelName = levelName;
}

@ -2,26 +2,35 @@ package com.mindskip.xzs.viewmodel.admin.education;
import com.mindskip.xzs.base.BasePage;
// SubjectPageRequestVM 类用于学科分页请求,继承自 BasePage
/**
* @version 3.5.0
* @description: `BasePage`
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class SubjectPageRequestVM extends BasePage {
private Integer id;// 学科的 ID用于过滤特定学科
private Integer level;// 学科的 ID用于过滤特定学科
// 科目ID
private Integer id;
// 科目等级
private Integer level;
// 获取学科 ID
// 获取科目ID
public Integer getId() {
return id;
}
// 设置学科 ID
// 设置科目ID
public void setId(Integer id) {
this.id = id;
}
// 设置学科等级
// 获取科目等级
public Integer getLevel() {
return level;
}
// 设置学科等级
// 设置科目等级
public void setLevel(Integer level) {
this.level = level;
}

@ -1,55 +1,63 @@
// SubjectResponseVM 类用于学科的响应数据模型,继承自 BaseVM
public class SubjectResponseVM extends BaseVM {
package com.mindskip.xzs.viewmodel.admin.education;
import com.mindskip.xzs.viewmodel.BaseVM;
// 学科的 ID唯一标识学科
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class SubjectResponseVM extends BaseVM {
// 科目ID
private Integer id;
// 学科名称
// 名称
private String name;
// 学科等级
// 等级
private Integer level;
// 科等级名称
// 等级名称
private String levelName;
// 获取学科 ID
// 获取科目ID
public Integer getId() {
return id;
}
// 设置学科 ID
// 设置科目ID
public void setId(Integer id) {
this.id = id;
}
// 获取科名称
// 获取名称
public String getName() {
return name;
}
// 设置科名称
// 设置名称
public void setName(String name) {
this.name = name;
}
// 获取科等级
// 获取等级
public Integer getLevel() {
return level;
}
// 设置科等级
// 设置等级
public void setLevel(Integer level) {
this.level = level;
}
// 获取科等级名称
// 获取等级名称
public String getLevelName() {
return levelName;
}
// 设置科等级名称
// 设置等级名称
public void setLevelName(String levelName) {
this.levelName = levelName;
}
}
}

@ -1,103 +1,138 @@
package com.mindskip.xzs.viewmodel.admin.exam;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
// 用于编辑试卷请求数据的视图模型
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class ExamPaperEditRequestVM {
private Integer id; // 试卷的唯一标识符,用于更新特定试卷
// 试卷ID
private Integer id;
// 试卷等级
@NotNull
private Integer level;// 试卷的等级,不能为空
private Integer level;
// 科目ID
@NotNull
private Integer subjectId;// 试卷所属学科的 ID不能为空
private Integer subjectId;
// 试卷类型
@NotNull
private Integer paperType;// 试卷类型,不能为空
private Integer paperType;
// 试卷名称
@NotBlank
private String name;// 试卷名称,不能为空
private String name;
// 建议的时间(分钟)
@NotNull
private Integer suggestTime;// 建议的考试时间,单位为分钟,不能为空
private Integer suggestTime;
private List<String> limitDateTime;// 限制的日期时间,用于设置考试开始和结束的日期时间范围
// 试卷的标题项列表,不能为空且至少包含一个标题
@Size(min = 1,message = "请添加试卷标题")
// 限制日期和时间
private List<String> limitDateTime;
// 试卷标题项,至少包含一个标题项
@Size(min = 1, message = "请添加试卷标题")
@Valid
private List<ExamPaperTitleItemVM> titleItems;
// 试卷的总分,作为字符串表示
// 试卷分数
private String score;
// 获取试卷 ID
// 获取试卷ID
public Integer getId() {
return id;
}
// 设置试卷 ID
// 设置试卷ID
public void setId(Integer id) {
this.id = id;
}
// 获取试卷等级
public Integer getLevel() {
return level;
}
// 设置试卷等级
public void setLevel(Integer level) {
this.level = level;
}
// 获取学科 ID
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
// 设置学科 ID
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
// 获取试卷类型
public Integer getPaperType() {
return paperType;
}
// 设置试卷类型
public void setPaperType(Integer paperType) {
this.paperType = paperType;
}
// 获取试卷名称
public String getName() {
return name;
}
// 设置试卷名称
public void setName(String name) {
this.name = name;
}
// 获取建议的考试时间
// 获取建议时间
public Integer getSuggestTime() {
return suggestTime;
}
// 设置建议的考试时间
// 设置建议时间
public void setSuggestTime(Integer suggestTime) {
this.suggestTime = suggestTime;
}
// 获取限制的日期时间
// 获取限制日期和时间
public List<String> getLimitDateTime() {
return limitDateTime;
}
// 设置限制的日期时间
// 设置限制日期和时间
public void setLimitDateTime(List<String> limitDateTime) {
this.limitDateTime = limitDateTime;
}
// 获取试卷的标题项列表
// 获取试卷标题项
public List<ExamPaperTitleItemVM> getTitleItems() {
return titleItems;
}
// 设置试卷的标题项列表
// 设置试卷标题项
public void setTitleItems(List<ExamPaperTitleItemVM> titleItems) {
this.titleItems = titleItems;
}
// 获取试卷的总分
// 获取试卷分数
public String getScore() {
return score;
}
// 设置试卷的总分
// 设置试卷分数
public void setScore(String score) {
this.score = score;
}

@ -2,52 +2,75 @@ package com.mindskip.xzs.viewmodel.admin.exam;
import com.mindskip.xzs.base.BasePage;
//用于分页请求试卷列表的视图模型
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class ExamPaperPageRequestVM extends BasePage {
private Integer id; // 试卷的唯一标识符,用于过滤查询某个特定试卷
private Integer subjectId; // 学科 ID用于查询某一学科的试卷
private Integer level;// 试卷等级,用于查询某一等级的试卷
private Integer paperType;// 试卷类型,用于查询某一类型的试卷
private Integer taskExamId;// 任务考试的 ID用于查询某个任务考试下的试卷
// 获取试卷 ID
// 试卷ID
private Integer id;
// 科目ID
private Integer subjectId;
// 试卷等级
private Integer level;
// 试卷类型
private Integer paperType;
// 任务考试ID
private Integer taskExamId;
// 获取试卷ID
public Integer getId() {
return id;
}
// 设置试卷 ID
// 设置试卷ID
public void setId(Integer id) {
this.id = id;
}
// 获取学科 ID
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
// 设置学科 ID
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
// 获取试卷等级
public Integer getLevel() {
return level;
}
// 设置试卷等级
public void setLevel(Integer level) {
this.level = level;
}
// 获取试卷类型
public Integer getPaperType() {
return paperType;
}
// 设置试卷类型
public void setPaperType(Integer paperType) {
this.paperType = paperType;
}
// 获取任务考试 ID
// 获取任务考试ID
public Integer getTaskExamId() {
return taskExamId;
}
// 设置任务考试 ID
// 设置任务考试ID
public void setTaskExamId(Integer taskExamId) {
this.taskExamId = taskExamId;
}

@ -2,33 +2,43 @@ package com.mindskip.xzs.viewmodel.admin.exam;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
//用于表示试卷中的一个标题项,包含标题和相关的题目
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class ExamPaperTitleItemVM {
// 标题内容,不能为空
// 标题内容不能为空
@NotBlank(message = "标题内容不能为空")
private String name;
// 题目列表,至少包含一个题目,所有题目都应为有效的题目对象
@Size(min = 1,message = "请添加题目")
// 题目列表,至少添加一个题目
@Size(min = 1, message = "请添加题目")
@Valid
private List<QuestionEditRequestVM> questionItems;
// 获取标题内容
public String getName() {
return name;
}
// 设置标题内容
public void setName(String name) {
this.name = name;
}
// 获取题目列表
public List<QuestionEditRequestVM> getQuestionItems() {
return questionItems;
}
// 设置题目列表
public void setQuestionItems(List<QuestionEditRequestVM> questionItems) {
this.questionItems = questionItems;

@ -1,95 +1,117 @@
package com.mindskip.xzs.viewmodel.admin.exam;
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class ExamResponseVM {
private Integer id; // 试卷ID
//用于表示考试的响应视图模型,包含考试的相关信息
public class ExamResponseVM {
private Integer id;// 考试ID
private String name; // 试卷名称
private String name;// 考试名称
private Integer questionCount; // 试卷题目数量
private Integer questionCount;// 题目数量
private Integer score; // 试卷总分
private Integer score;// 总分
private String createTime; // 试卷创建时间
private String createTime;// 创建时间,通常是字符串格式(例如"2024-12-13 12:30"
private Integer createUser; // 试卷创建用户ID
private Integer createUser;// 创建者的用户ID
private Integer subjectId; // 试卷科目ID
private Integer subjectId;// 科目ID指向该考试所涉及的科目
private Integer paperType; // 试卷类型
private Integer paperType;// 试卷类型(例如选择题,简答题等)
private Integer frameTextContentId; // 试卷框架文本内容ID
private Integer frameTextContentId;// 帧文本内容ID可能用于存储额外的试卷内容或说明
// 获取考试ID
// 获取试卷ID
public Integer getId() {
return id;
}
// 设置考试ID
// 设置试卷ID
public void setId(Integer id) {
this.id = id;
}
// 获取考试名称
// 获取试卷名称
public String getName() {
return name;
}
// 设置考试名称
// 设置试卷名称
public void setName(String name) {
this.name = name;
}
// 获取题目数量
public Integer getQuestionCount() {
return questionCount;
}
// 设置题目数量
public void setQuestionCount(Integer questionCount) {
this.questionCount = questionCount;
}
// 获取考试总分
// 获取试卷总分
public Integer getScore() {
return score;
}
// 设置考试总分
// 设置试卷总分
public void setScore(Integer score) {
this.score = score;
}
// 获取考试创建时间
// 获取创建时间
public String getCreateTime() {
return createTime;
}
// 设置考试创建时间
// 设置创建时间
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
// 获取创建者用户ID
// 获取创建用户ID
public Integer getCreateUser() {
return createUser;
}
// 设置创建者用户ID
// 设置创建用户ID
public void setCreateUser(Integer createUser) {
this.createUser = createUser;
}
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
// 获取试卷类型
public Integer getPaperType() {
return paperType;
}
// 设置试卷类型
public void setPaperType(Integer paperType) {
this.paperType = paperType;
}
// 获取帧文本内容ID
// 获取试卷框架文本内容ID
public Integer getFrameTextContentId() {
return frameTextContentId;
}
// 设置帧文本内容ID
// 设置试卷框架文本内容ID
public void setFrameTextContentId(Integer frameTextContentId) {
this.frameTextContentId = frameTextContentId;
}

@ -1,89 +1,119 @@
package com.mindskip.xzs.viewmodel.admin.file;
import java.util.List;
//用于封装UEditor配置的视图模型主要用于处理与图片上传和展示相关的配置。
/**
* @version 3.5.0
* @description: Ueditor
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class UeditorConfigVM {
private String imageActionName;// 图片上传操作的名称,通常用于前端传递给后台时的接口操作名称
private String imageFieldName;// 图片上传时的字段名称,即前端传输文件时使用的表单字段名称
private Long imageMaxSize;// 图片最大上传大小(单位:字节)
private List<String> imageAllowFiles;// 允许上传的图片文件类型(如:.jpg, .png, .gif等
private boolean imageCompressEnable;// 是否启用图片压缩功能
private Integer imageCompressBorder;// 图片压缩的最大宽高值,当图片宽度或高度大于此值时,进行压缩
private String imageInsertAlign; // 图片插入时的对齐方式left、center、right
private String imageUrlPrefix;// 图片URL的前缀用于生成完整的图片URL
private String imagePathFormat;// 图片保存的路径格式,通常用于指定图片上传后的保存路径
// 图片保存的路径格式,通常用于指定图片上传后的保存路径
private String imageActionName; // 图片上传的操作名称
private String imageFieldName; // 图片上传字段的名称
private Long imageMaxSize; // 图片最大允许上传的大小(单位:字节)
private List<String> imageAllowFiles; // 允许上传的图片格式类型
private boolean imageCompressEnable; // 是否开启图片压缩功能
private Integer imageCompressBorder; // 压缩图片的边界尺寸
private String imageInsertAlign; // 图片插入时的对齐方式
private String imageUrlPrefix; // 图片的URL前缀通常用于 CDN 配置
private String imagePathFormat; // 图片路径格式,用于配置上传图片保存路径
// 获取图片上传操作名称
public String getImageActionName() {
return imageActionName;
}
// 设置图片上传操作的名称
// 设置图片上传操作名称
public void setImageActionName(String imageActionName) {
this.imageActionName = imageActionName;
}
// 获取图片上传时的字段名称
// 获取图片上传字段名称
public String getImageFieldName() {
return imageFieldName;
}
// 设置图片上传时的字段名称
// 设置图片上传字段名称
public void setImageFieldName(String imageFieldName) {
this.imageFieldName = imageFieldName;
}
// 获取图片最大上传大小
// 获取图片最大允许上传大小
public Long getImageMaxSize() {
return imageMaxSize;
}
// 设置图片最大上传大小
// 设置图片最大允许上传大小
public void setImageMaxSize(Long imageMaxSize) {
this.imageMaxSize = imageMaxSize;
}
// 获取允许上传的图片文件类型
// 获取允许上传的图片格式类型
public List<String> getImageAllowFiles() {
return imageAllowFiles;
}
// 设置允许上传的图片文件类型
// 设置允许上传的图片格式类型
public void setImageAllowFiles(List<String> imageAllowFiles) {
this.imageAllowFiles = imageAllowFiles;
}
// 获取是否启用图片压缩功能
// 获取是否开启图片压缩
public boolean isImageCompressEnable() {
return imageCompressEnable;
}
// 设置是否启用图片压缩功能
// 设置是否开启图片压缩
public void setImageCompressEnable(boolean imageCompressEnable) {
this.imageCompressEnable = imageCompressEnable;
}
// 获取图片压缩的最大宽高值
// 获取图片压缩边界尺寸
public Integer getImageCompressBorder() {
return imageCompressBorder;
}
// 设置图片压缩的最大宽高值
// 设置图片压缩边界尺寸
public void setImageCompressBorder(Integer imageCompressBorder) {
this.imageCompressBorder = imageCompressBorder;
}
// 获取图片插入时的对齐方式
public String getImageInsertAlign() {
return imageInsertAlign;
}
// 设置图片插入时的对齐方式
public void setImageInsertAlign(String imageInsertAlign) {
this.imageInsertAlign = imageInsertAlign;
}
// 获取图片URL的前缀
// 获取图片URL前缀
public String getImageUrlPrefix() {
return imageUrlPrefix;
}
// 设置图片URL的前缀
// 设置图片URL前缀
public void setImageUrlPrefix(String imageUrlPrefix) {
this.imageUrlPrefix = imageUrlPrefix;
}
// 获取图片保存的路径格式
// 获取图片路径格式
public String getImagePathFormat() {
return imagePathFormat;
}
// 设置图片保存的路径格式
// 设置图片路径格式
public void setImagePathFormat(String imagePathFormat) {
this.imagePathFormat = imagePathFormat;
}

@ -1,60 +1,76 @@
package com.mindskip.xzs.viewmodel.admin.file;
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class UploadResultVM {
private String original; // 原始文件名
private String name; // 上传后文件名
private String url; // 文件的访问URL
private Long size; // 文件大小(单位:字节)
private String type; // 文件类型(如图片、视频等)
private String state; // 上传状态,通常是 "SUCCESS" 或 "ERROR"
//用于封装文件上传结果的视图模型,包含文件上传后返回的各种信息
public class UploadResultVM {
private String original; // 原始文件名
private String name;// 上传后的文件名
private String url;// 文件的访问URL
private Long size;// 文件的大小(单位:字节)
private String type; // 文件的类型
private String state;// 文件的状态
// 获取原始文件名
public String getOriginal() {
return original;
}
// 设置原始文件名
public void setOriginal(String original) {
this.original = original;
}
// 获取上传后的文件名
// 获取上传后文件名
public String getName() {
return name;
}
// 设置上传后的文件名
// 设置上传后文件名
public void setName(String name) {
this.name = name;
}
// 获取文件的访问URL
public String getUrl() {
return url;
}
// 设置文件的访问URL
public void setUrl(String url) {
this.url = url;
}
// 获取文件的大小
// 获取文件大小
public Long getSize() {
return size;
}
// 设置文件的大小
// 设置文件大小
public void setSize(Long size) {
this.size = size;
}
// 获取文件的类型
// 获取文件类型
public String getType() {
return type;
}
// 设置文件的类型
// 设置文件类型
public void setType(String type) {
this.type = type;
}
// 设置文件的类型
// 获取上传状态
public String getState() {
return state;
}
// 设置文件的状态
// 设置上传状态
public void setState(String state) {
this.state = state;
}

@ -2,15 +2,22 @@ package com.mindskip.xzs.viewmodel.admin.message;
import com.mindskip.xzs.base.BasePage;
//用于封装查询消息分页请求的视图模型,继承自 BasePage 分页功能
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class MessagePageRequestVM extends BasePage {
private String sendUserName;// 发送者用户名,用于查询特定发送者的消息
// 获取发送者的用户名
private String sendUserName; // 发送者用户名,用于筛选特定发送者的消息
// 获取发送者用户名
public String getSendUserName() {
return sendUserName;
}
// 设置发送者的用户名
// 设置发送者用户名
public void setSendUserName(String sendUserName) {
this.sendUserName = sendUserName;
}

@ -1,87 +1,107 @@
package com.mindskip.xzs.viewmodel.admin.message;
import java.util.Date;
//用于封装消息的响应视图模型,包含消息的基本信息和统计数据。
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class MessageResponseVM {
private Integer id;// 消息的唯一标识
private String title;// 消息的标题
private Integer id; // 消息ID
private String title; // 消息标题
private String content;// 消息的内容
private String content; // 消息内容
private String sendUserName;// 发送者用户名
private String sendUserName; // 发送者用户名
private String receives;// 接收者列表,可能是多个接收者的用户名,以逗号分隔
private String receives; // 接收者,可能包含多个用户名,逗号分隔
private Integer receiveUserCount;// 接收用户的数量
private Integer receiveUserCount; // 接收用户的数量
private Integer readCount; // 阅读次数,表示该消息被阅读的次数
private Integer readCount; // 已读用户的数量
private String createTime;// 消息的创建时间
// 获取消息的唯一标识
private String createTime; // 消息创建时间
// 获取消息ID
public Integer getId() {
return id;
}
// 设置消息的唯一标识
// 设置消息ID
public void setId(Integer id) {
this.id = id;
}
// 获取消息的标题
// 获取消息标题
public String getTitle() {
return title;
}
// 设置消息的标题
// 设置消息标题
public void setTitle(String title) {
this.title = title;
}
// 获取消息的内容
// 获取消息内容
public String getContent() {
return content;
}
// 设置消息的内容
// 设置消息内容
public void setContent(String content) {
this.content = content;
}
// 设置消息的内容
// 获取发送者用户名
public String getSendUserName() {
return sendUserName;
}
// 设置发送者的用户名
// 设置发送者用户名
public void setSendUserName(String sendUserName) {
this.sendUserName = sendUserName;
}
// 获取接收者的用户名列表
// 获取接收者列表
public String getReceives() {
return receives;
}
// 设置接收者的用户名列表
// 设置接收者列表
public void setReceives(String receives) {
this.receives = receives;
}
// 获取接收用户的数量
public Integer getReceiveUserCount() {
return receiveUserCount;
}
// 设置接收用户的数量
public void setReceiveUserCount(Integer receiveUserCount) {
this.receiveUserCount = receiveUserCount;
}
// 获取消息的阅读次数
// 获取已读用户的数量
public Integer getReadCount() {
return readCount;
}
// 设置消息的阅读次数
// 设置已读用户的数量
public void setReadCount(Integer readCount) {
this.readCount = readCount;
}
// 获取消息的创建时间
// 获取消息创建时间
public String getCreateTime() {
return createTime;
}
// 设置消息的创建时间
// 设置消息创建时间
public void setCreateTime(String createTime) {
this.createTime = createTime;
}

@ -1,42 +1,52 @@
package com.mindskip.xzs.viewmodel.admin.message;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
//用于封装发送消息时的请求视图模型
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 9:45
*/
public class MessageSendVM {
// 消息的标题,不能为空
@NotBlank
private String title;
@NotBlank// 消息的标题,不能为空
private String content;
// 消息接收者的用户ID列表不能为空且至少包含一个接收者
@Size(min = 1, message = "接收人不能为空")
private List<Integer> receiveUserIds;
// 获取消息的标题
@NotBlank // 标题不能为空
private String title; // 消息标题
@NotBlank // 内容不能为空
private String content; // 消息内容
@Size(min = 1, message = "接收人不能为空") // 至少选择一个接收人
private List<Integer> receiveUserIds; // 接收用户的ID列表
// 获取消息标题
public String getTitle() {
return title;
}
// 设置消息的标题
// 设置消息标题
public void setTitle(String title) {
this.title = title;
}
// 获取消息的内容
// 获取消息内容
public String getContent() {
return content;
}
// 设置消息的内容
// 设置消息内容
public void setContent(String content) {
this.content = content;
}
// 获取接收者的用户ID列表
// 获取接收用户ID列表
public List<Integer> getReceiveUserIds() {
return receiveUserIds;
}
// 设置接收者的用户ID列表
// 设置接收用户ID列表
public void setReceiveUserIds(List<Integer> receiveUserIds) {
this.receiveUserIds = receiveUserIds;
}

@ -1,93 +1,116 @@
package com.mindskip.xzs.viewmodel.admin.paper;
//用于封装考试答案的响应视图模型。
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 10:10
*/
public class ExamAnswerResponseVM {
private Integer id;// 考试ID
private Integer id; // 考试ID
private String name;// 考试名称
private String name; // 考试名称
private Integer questionCount;// 考试名称
private Integer questionCount; // 题目数量
private Integer score;// 总分
private Integer score; // 总分
private String createTime;// 创建时间
private String createTime; // 创建时间
private Integer createUser;// 创建者的用户ID
private Integer createUser; // 创建用户ID
private Integer subjectId;// 所属科目ID
private Integer subjectId; // 科目ID
private Integer paperType;// 试卷类型
private Integer paperType; // 试卷类型
private Integer frameTextContentId; // 试卷框架文本内容ID
private Integer frameTextContentId;// 框架文本内容ID
// 获取考试ID
public Integer getId() {
return id;
}
// 设置考试ID
public void setId(Integer id) {
this.id = id;
}
// 获取考试名称
public String getName() {
return name;
}
// 设置考试名称
public void setName(String name) {
this.name = name;
}
// 获取题目数量
public Integer getQuestionCount() {
return questionCount;
}
// 设置题目数量
public void setQuestionCount(Integer questionCount) {
this.questionCount = questionCount;
}
// 获取总分
public Integer getScore() {
return score;
}
// 设置总分
public void setScore(Integer score) {
this.score = score;
}
// 获取创建时间
public String getCreateTime() {
return createTime;
}
// 设置创建时间
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
// 获取创建者用户ID
// 获取创建用户ID
public Integer getCreateUser() {
return createUser;
}
// 设置创建者用户ID
// 设置创建用户ID
public void setCreateUser(Integer createUser) {
this.createUser = createUser;
}
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
// 获取试卷类型
public Integer getPaperType() {
return paperType;
}
// 设置试卷类型
public void setPaperType(Integer paperType) {
this.paperType = paperType;
}
// 获取框架文本内容ID
// 获取试卷框架文本内容ID
public Integer getFrameTextContentId() {
return frameTextContentId;
}
// 设置框架文本内容ID
// 设置试卷框架文本内容ID
public void setFrameTextContentId(Integer frameTextContentId) {
this.frameTextContentId = frameTextContentId;
}

@ -1,13 +1,21 @@
package com.mindskip.xzs.viewmodel.admin.paper;
import com.mindskip.xzs.base.BasePage;
//用于封装考试答卷查询请求的数据模型。
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 10:10
*/
public class ExamPaperAnswerPageRequestVM extends BasePage {
private Integer subjectId;// 科目ID用于过滤查询结果表示查询的考试答卷所属的科目
private Integer subjectId; // 科目ID
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;

@ -1,49 +1,61 @@
package com.mindskip.xzs.viewmodel.admin.question;
import javax.validation.constraints.NotBlank;
//用于表示题目的编辑视图模型。
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 10:15
*/
public class QuestionEditItemVM {
@NotBlank // 题目的前缀(例如题号、序号等),不能为空
@NotBlank // 不能为空,表示问题前缀
private String prefix;
@NotBlank// 题目的内容,不能为空
@NotBlank // 不能为空,表示问题内容
private String content;
// 题目的分数
private String score;
// 题目的唯一标识符,用于区分不同的题目
private String itemUuid;
// 获取题目的前缀
private String score; // 问题分数,默认为字符串类型
private String itemUuid; // 问题项的唯一标识符
// 获取问题前缀
public String getPrefix() {
return prefix;
}
// 设置题目的前缀
// 设置问题前缀
public void setPrefix(String prefix) {
this.prefix = prefix;
}
// 获取题目的内容
// 获取问题内容
public String getContent() {
return content;
}
// 设置题目的内容
// 设置问题内容
public void setContent(String content) {
this.content = content;
}
// 获取题目的分数
// 获取问题分数
public String getScore() {
return score;
}
// 设置题目的分数
// 设置问题分数
public void setScore(String score) {
this.score = score;
}
// 获取题目的唯一标识符
// 获取问题项的UUID
public String getItemUuid() {
return itemUuid;
}
// 设置题目的唯一标识符
// 设置问题项的UUID
public void setItemUuid(String itemUuid) {
this.itemUuid = itemUuid;
}
}

@ -1,133 +1,166 @@
package com.mindskip.xzs.viewmodel.admin.question;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;
//用于表示题目编辑请求的数据模型,后台管理系统中进行题目的修改和更新。
/**
* @version 3.5.0
* @description:
* Copyright (C), 2020-2021,
* @date 2021/12/25 10:15
*/
public class QuestionEditRequestVM {
// 题目的唯一标识符
private Integer id;
@NotNull // 题目的类型(例如选择题、填空题等),不能为空
private Integer id; // 题目ID
@NotNull // 不能为空,表示题目类型
private Integer questionType;
@NotNull // 科目ID不能为空
@NotNull // 不能为空表示科目ID
private Integer subjectId;
@NotBlank// 题目的标题,不能为空
@NotBlank // 不能为空,表示题目标题
private String title;
// 年级等级,可为空
private Integer gradeLevel;
// 题目项列表,@Valid 注解确保其中的每个项也进行验证
@Valid
private Integer gradeLevel; // 年级等级
@Valid // 题目项,必须是有效的列表
private List<QuestionEditItemVM> items;
@NotBlank// 题目的解析内容,不能为空
@NotBlank // 不能为空,表示题目解析
private String analyze;
// 正确答案的列表(可以为空)
private List<String> correctArray;
// 正确答案(主要针对单选题),不能为空
private String correct;
@NotBlank// 题目的分数,不能为空
private List<String> correctArray; // 正确答案数组
private String correct; // 正确答案
@NotBlank // 不能为空,表示题目分数
private String score;
// 题目的难度级别范围是1到5不能为空
@Range(min = 1, max = 5, message = "请选择题目难度")
@Range(min = 1, max = 5, message = "请选择题目难度") // 题目难度必须在1到5之间
private Integer difficult;
// 题目项的排序顺序
private Integer itemOrder;
//获得ID
private Integer itemOrder; // 题目项顺序
// 获取题目ID
public Integer getId() {
return id;
}
//设置ID
// 设置题目ID
public void setId(Integer id) {
this.id = id;
}
//获取问题类型
// 获取题目类型
public Integer getQuestionType() {
return questionType;
}
//设置问题类型
// 设置题目类型
public void setQuestionType(Integer questionType) {
this.questionType = questionType;
}
//获得学科ID
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
//设置学科ID
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
//获取标题
// 获取题目标题
public String getTitle() {
return title;
}
//设置标题
// 设置题目标题
public void setTitle(String title) {
this.title = title;
}
//获取试卷等级
// 获取年级等级
public Integer getGradeLevel() {
return gradeLevel;
}
//设置试卷等级
// 设置年级等级
public void setGradeLevel(Integer gradeLevel) {
this.gradeLevel = gradeLevel;
}
//获取问题类型
// 获取题目项列表
public List<QuestionEditItemVM> getItems() {
return items;
}
//设置问题类型
// 设置题目项列表
public void setItems(List<QuestionEditItemVM> items) {
this.items = items;
}
//获得答案
// 获取题目解析
public String getAnalyze() {
return analyze;
}
//设置答案
// 设置题目解析
public void setAnalyze(String analyze) {
this.analyze = analyze;
}
//获得正确答案数组
// 获取正确答案数组
public List<String> getCorrectArray() {
return correctArray;
}
//设置正确答案数组
// 设置正确答案数组
public void setCorrectArray(List<String> correctArray) {
this.correctArray = correctArray;
}
//获得填写正确答案
// 获取正确答案
public String getCorrect() {
return correct;
}
//设置填写正确答案
// 设置正确答案
public void setCorrect(String correct) {
this.correct = correct;
}
//获得分数
// 获取题目分数
public String getScore() {
return score;
}
//设置分数
// 设置题目分数
public void setScore(String score) {
this.score = score;
}
//获得错误求解
// 获取题目难度
public Integer getDifficult() {
return difficult;
}
//设置错误求解
// 设置题目难度
public void setDifficult(Integer difficult) {
this.difficult = difficult;
}
//获得序号
// 获取题目项顺序
public Integer getItemOrder() {
return itemOrder;
}
//设置序号
// 设置题目项顺序
public void setItemOrder(Integer itemOrder) {
this.itemOrder = itemOrder;
}

@ -2,43 +2,58 @@ package com.mindskip.xzs.viewmodel.admin.question;
import com.mindskip.xzs.base.BasePage;
// 用于封装查询题目分页请求的类。
/**
* @version 3.5.0
* @description: IDID
* Copyright (C), 2020-2021,
* @date 2021/12/25 10:15
*/
public class QuestionPageRequestVM extends BasePage {
private Integer id;// 题目的ID支持精确查询
private Integer level;// 题目的难度等级,支持查询指定难度的题目
private Integer subjectId;// 科目ID查询特定科目的题目
private Integer questionType;// 题目类型,支持查询特定类型的题目
//获得题目ID
private Integer id; // 题目ID
private Integer level; // 题目难度等级
private Integer subjectId; // 科目ID
private Integer questionType; // 题目类型
// 获取题目ID
public Integer getId() {
return id;
}
//设置题目ID
// 设置题目ID
public void setId(Integer id) {
this.id = id;
}
//获得题目等级
// 获取题目难度等级
public Integer getLevel() {
return level;
}
//设置题目等级
// 设置题目难度等级
public void setLevel(Integer level) {
this.level = level;
}
//获得科目ID
// 获取科目ID
public Integer getSubjectId() {
return subjectId;
}
//设置科目ID
// 设置科目ID
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
//获得问题类型
// 获取题目类型
public Integer getQuestionType() {
return questionType;
}
//设置问题类型
// 设置题目类型
public void setQuestionType(Integer questionType) {
this.questionType = questionType;
}

Loading…
Cancel
Save