视图修改、接口修改

This commit is contained in:
2025-10-28 19:04:35 +08:00
parent 98c73632bd
commit c5c134fbb3
96 changed files with 7122 additions and 4194 deletions

View File

@@ -12,6 +12,8 @@ import org.xyzh.common.dto.BaseDTO;
public class TbBanner extends BaseDTO {
private static final long serialVersionUID = 1L;
private String bannerID;
/**
* @description Banner标题
@@ -58,6 +60,14 @@ public class TbBanner extends BaseDTO {
*/
private String updater;
public String getBannerID() {
return bannerID;
}
public void setBannerID(String bannerID) {
this.bannerID = bannerID;
}
public String getTitle() {
return title;
}
@@ -134,6 +144,7 @@ public class TbBanner extends BaseDTO {
public String toString() {
return "TbBanner{" +
"id=" + getID() +
", bannerID='" + bannerID + '\'' +
", title='" + title + '\'' +
", imageUrl='" + imageUrl + '\'' +
", linkType=" + linkType +

View File

@@ -1,35 +0,0 @@
package org.xyzh.common.vo;
import org.xyzh.common.dto.BaseDTO;
import org.xyzh.common.dto.study.TbCourseNode;
import org.xyzh.common.dto.study.TbCourseChapter;
import java.util.ArrayList;
import java.util.List;
public class ChapterVO extends BaseDTO{
private static final long serialVersionUID = 1L;
private TbCourseChapter chapter;
private List<TbCourseNode> nodes;
public TbCourseChapter getChapter() {
return chapter;
}
public void setChapter(TbCourseChapter chapter) {
this.chapter = chapter;
}
public List<TbCourseNode> getNodes() {
return nodes;
}
public void setNodes(List<TbCourseNode> nodes) {
this.nodes = nodes;
}
public void addNode(TbCourseNode node) {
if (nodes == null) {
nodes = new ArrayList<>();
}
nodes.add(node);
}
}

View File

@@ -0,0 +1,589 @@
package org.xyzh.common.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.xyzh.common.dto.BaseDTO;
import org.xyzh.common.dto.study.TbCourse;
import org.xyzh.common.dto.study.TbCourseChapter;
import org.xyzh.common.dto.study.TbCourseNode;
import org.xyzh.common.dto.study.TbLearningRecord;
/**
* @description 课程项目VO - 包含课程和学习记录的关键信息
* @filename CourseItemVO.java
* @author yslg
* @copyright xyzh
* @since 2025-10-28
*/
public class CourseItemVO extends BaseDTO {
private static final long serialVersionUID = 1L;
// ========== 课程基本信息 ==========
/**
* @description 课程ID
*/
private String courseID;
/**
* @description 课程名称
*/
private String name;
/**
* @description 课程封面图片
*/
private String coverImage;
/**
* @description 课程描述
*/
private String description;
/**
* @description 课程时长(分钟)
*/
private Integer duration;
/**
* @description 授课老师
*/
private String teacher;
/**
* @description 课程状态0未上线 1已上线 2已下架
*/
private Integer status;
/**
* @description 浏览次数
*/
private Integer viewCount;
/**
* @description 学习人数
*/
private Integer learnCount;
/**
* @description 课程创建时间
*/
private Date createTime;
// ========== 学习记录信息 ==========
/**
* @description 学习记录ID
*/
private String recordID;
/**
* @description 学习进度0-100
*/
private BigDecimal progress;
/**
* @description 是否完成
*/
private Boolean isComplete;
/**
* @description 学习时长(秒)
*/
private Integer learningDuration;
/**
* @description 最后学习时间
*/
private Date lastLearnTime;
/**
* @description 完成时间
*/
private Date completeTime;
// ========== 章节节点信息 ==========
/**
* @description 章节ID当此对象代表章节或节点时使用
*/
private String chapterID;
/**
* @description 节点ID当此对象代表节点时使用
*/
private String nodeID;
/**
* @description 父级ID章节的父章节ID
*/
private String parentID;
/**
* @description 节点类型1视频 2文档 3音频 4图片 5链接
*/
private Integer nodeType;
/**
* @description 节点内容(富文本内容)
*/
private String content;
/**
* @description 视频URL
*/
private String videoUrl;
/**
* @description 资源ID
*/
private String resourceID;
/**
* @description 排序号
*/
private Integer orderNum;
/**
* @description 是否必修1必修 0选修
*/
private Integer isRequired;
// ========== 层级结构 ==========
/**
* @description 章节列表(课程的章节列表)
*/
private List<CourseItemVO> chapters;
/**
* @description 章节节点映射key: chapterID, value: 该章节下的节点列表)
*/
private Map<String, List<CourseItemVO>> chapterNodes;
// ========== Getters and Setters ==========
public String getCourseID() {
return courseID;
}
public void setCourseID(String courseID) {
this.courseID = courseID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCoverImage() {
return coverImage;
}
public void setCoverImage(String coverImage) {
this.coverImage = coverImage;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getViewCount() {
return viewCount;
}
public void setViewCount(Integer viewCount) {
this.viewCount = viewCount;
}
public Integer getLearnCount() {
return learnCount;
}
public void setLearnCount(Integer learnCount) {
this.learnCount = learnCount;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getRecordID() {
return recordID;
}
public void setRecordID(String recordID) {
this.recordID = recordID;
}
public BigDecimal getProgress() {
return progress;
}
public void setProgress(BigDecimal progress) {
this.progress = progress;
}
public Boolean getIsComplete() {
return isComplete;
}
public void setIsComplete(Boolean isComplete) {
this.isComplete = isComplete;
}
public Integer getLearningDuration() {
return learningDuration;
}
public void setLearningDuration(Integer learningDuration) {
this.learningDuration = learningDuration;
}
public Date getLastLearnTime() {
return lastLearnTime;
}
public void setLastLearnTime(Date lastLearnTime) {
this.lastLearnTime = lastLearnTime;
}
public Date getCompleteTime() {
return completeTime;
}
public void setCompleteTime(Date completeTime) {
this.completeTime = completeTime;
}
public String getChapterID() {
return chapterID;
}
public void setChapterID(String chapterID) {
this.chapterID = chapterID;
}
public String getNodeID() {
return nodeID;
}
public void setNodeID(String nodeID) {
this.nodeID = nodeID;
}
public String getParentID() {
return parentID;
}
public void setParentID(String parentID) {
this.parentID = parentID;
}
public Integer getNodeType() {
return nodeType;
}
public void setNodeType(Integer nodeType) {
this.nodeType = nodeType;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getVideoUrl() {
return videoUrl;
}
public void setVideoUrl(String videoUrl) {
this.videoUrl = videoUrl;
}
public String getResourceID() {
return resourceID;
}
public void setResourceID(String resourceID) {
this.resourceID = resourceID;
}
public Integer getOrderNum() {
return orderNum;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public Integer getIsRequired() {
return isRequired;
}
public void setIsRequired(Integer isRequired) {
this.isRequired = isRequired;
}
public List<CourseItemVO> getChapters() {
return chapters;
}
public void setChapters(List<CourseItemVO> chapters) {
this.chapters = chapters;
}
public Map<String, List<CourseItemVO>> getChapterNodes() {
return chapterNodes;
}
public void setChapterNodes(Map<String, List<CourseItemVO>> chapterNodes) {
this.chapterNodes = chapterNodes;
}
// ========== 类型转换方法 ==========
/**
* @description 转换为课程实体对象
* @return TbCourse 课程实体
*/
public TbCourse toCourse() {
TbCourse course = new TbCourse();
course.setID(this.getID());
course.setCourseID(this.courseID);
course.setName(this.name);
course.setCoverImage(this.coverImage);
course.setDescription(this.description);
course.setDuration(this.duration);
course.setTeacher(this.teacher);
course.setStatus(this.status);
course.setViewCount(this.viewCount);
course.setLearnCount(this.learnCount);
course.setCreateTime(this.createTime);
return course;
}
/**
* @description 从课程实体创建CourseItemVO
* @param course 课程实体
* @return CourseItemVO
*/
public static CourseItemVO fromCourse(TbCourse course) {
if (course == null) {
return null;
}
CourseItemVO vo = new CourseItemVO();
vo.setID(course.getID());
vo.setCourseID(course.getCourseID());
vo.setName(course.getName());
vo.setCoverImage(course.getCoverImage());
vo.setDescription(course.getDescription());
vo.setDuration(course.getDuration());
vo.setTeacher(course.getTeacher());
vo.setStatus(course.getStatus());
vo.setViewCount(course.getViewCount());
vo.setLearnCount(course.getLearnCount());
vo.setCreateTime(course.getCreateTime());
return vo;
}
/**
* @description 转换为学习记录实体对象
* @return TbLearningRecord 学习记录实体
*/
public TbLearningRecord toLearningRecord() {
TbLearningRecord record = new TbLearningRecord();
if (this.recordID != null) {
// 如果有recordID说明是从已有记录转换的需要设置ID
record.setID(this.recordID);
}
record.setCourseID(this.courseID);
record.setDuration(this.learningDuration);
record.setProgress(this.progress);
record.setIsComplete(this.isComplete);
record.setCompleteTime(this.completeTime);
record.setLastLearnTime(this.lastLearnTime);
return record;
}
/**
* @description 设置学习记录信息
* @param record 学习记录实体
*/
public void setLearningRecordInfo(TbLearningRecord record) {
if (record == null) {
return;
}
this.recordID = record.getID();
this.progress = record.getProgress();
this.isComplete = record.getIsComplete();
this.learningDuration = record.getDuration();
this.lastLearnTime = record.getLastLearnTime();
this.completeTime = record.getCompleteTime();
}
/**
* @description 从课程和学习记录创建CourseItemVO
* @param course 课程实体
* @param record 学习记录实体
* @return CourseItemVO
*/
public static CourseItemVO fromCourseAndRecord(TbCourse course, TbLearningRecord record) {
CourseItemVO vo = fromCourse(course);
if (vo != null && record != null) {
vo.setLearningRecordInfo(record);
}
return vo;
}
/**
* @description 从章节创建CourseItemVO
* @param chapter 章节实体
* @return CourseItemVO
*/
public static CourseItemVO fromChapter(TbCourseChapter chapter) {
if (chapter == null) {
return null;
}
CourseItemVO vo = new CourseItemVO();
vo.setID(chapter.getID());
vo.setChapterID(chapter.getChapterID());
vo.setCourseID(chapter.getCourseID());
vo.setParentID(chapter.getParentID());
vo.setName(chapter.getName());
vo.setDescription(chapter.getContent());
vo.setDuration(chapter.getDuration());
vo.setVideoUrl(chapter.getVideoUrl());
vo.setResourceID(chapter.getResourceID());
vo.setNodeType(chapter.getChapterType());
vo.setOrderNum(chapter.getOrderNum());
vo.setCreateTime(chapter.getCreateTime());
return vo;
}
/**
* @description 从节点创建CourseItemVO
* @param node 节点实体
* @return CourseItemVO
*/
public static CourseItemVO fromNode(TbCourseNode node) {
if (node == null) {
return null;
}
CourseItemVO vo = new CourseItemVO();
vo.setID(node.getID());
vo.setNodeID(node.getNodeID());
vo.setChapterID(node.getChapterID());
vo.setName(node.getName());
vo.setContent(node.getContent());
vo.setDuration(node.getDuration());
vo.setVideoUrl(node.getVideoUrl());
vo.setResourceID(node.getResourceID());
vo.setNodeType(node.getNodeType());
vo.setOrderNum(node.getOrderNum());
vo.setIsRequired(node.getIsRequired());
vo.setCreateTime(node.getCreateTime());
return vo;
}
/**
* @description 转换为章节实体对象
* @return TbCourseChapter 章节实体
*/
public TbCourseChapter toChapter() {
TbCourseChapter chapter = new TbCourseChapter();
chapter.setID(this.getID());
chapter.setChapterID(this.chapterID);
chapter.setCourseID(this.courseID);
chapter.setParentID(this.parentID);
chapter.setName(this.name);
chapter.setContent(this.description);
chapter.setDuration(this.duration);
chapter.setVideoUrl(this.videoUrl);
chapter.setResourceID(this.resourceID);
chapter.setChapterType(this.nodeType);
chapter.setOrderNum(this.orderNum);
return chapter;
}
/**
* @description 转换为节点实体对象
* @return TbCourseNode 节点实体
*/
public TbCourseNode toNode() {
TbCourseNode node = new TbCourseNode();
node.setID(this.getID());
node.setNodeID(this.nodeID);
node.setChapterID(this.chapterID);
node.setName(this.name);
node.setContent(this.content);
node.setDuration(this.duration);
node.setVideoUrl(this.videoUrl);
node.setResourceID(this.resourceID);
node.setNodeType(this.nodeType);
node.setOrderNum(this.orderNum);
node.setIsRequired(this.isRequired);
return node;
}
@Override
public String toString() {
return "CourseItemVO{" +
"courseID='" + courseID + '\'' +
", name='" + name + '\'' +
", coverImage='" + coverImage + '\'' +
", teacher='" + teacher + '\'' +
", duration=" + duration +
", status=" + status +
", progress=" + progress +
", isComplete=" + isComplete +
", learningDuration=" + learningDuration +
", lastLearnTime=" + lastLearnTime +
", viewCount=" + viewCount +
", learnCount=" + learnCount +
'}';
}
}

View File

@@ -1,39 +0,0 @@
package org.xyzh.common.vo;
import org.xyzh.common.dto.BaseDTO;
import org.xyzh.common.dto.study.TbCourse;
import org.xyzh.common.dto.study.TbCourseTag;
import org.xyzh.common.vo.ChapterVO;
import java.util.List;
public class CourseVO extends BaseDTO{
private static final long serialVersionUID = 1L;
private TbCourse course;
private List<ChapterVO> courseChapters;
private List<TbCourseTag> courseTags;
public TbCourse getCourse() {
return course;
}
public void setCourse(TbCourse course) {
this.course = course;
}
public List<ChapterVO> getCourseChapters() {
return courseChapters;
}
public void setCourseChapters(List<ChapterVO> courseChapters) {
this.courseChapters = courseChapters;
}
public List<TbCourseTag> getCourseTags() {
return courseTags;
}
public void setCourseTags(List<TbCourseTag> courseTags) {
this.courseTags = courseTags;
}
}