serv-学习
This commit is contained in:
@@ -19,6 +19,11 @@ public class TbLearningRecord extends BaseDTO {
|
||||
* @description 用户ID
|
||||
*/
|
||||
private String userID;
|
||||
|
||||
/**
|
||||
* @description 任务ID
|
||||
*/
|
||||
private String taskID;
|
||||
|
||||
/**
|
||||
* @description 资源类型(1资源 2课程 3章节)
|
||||
@@ -29,11 +34,21 @@ public class TbLearningRecord extends BaseDTO {
|
||||
* @description 资源ID
|
||||
*/
|
||||
private String resourceID;
|
||||
|
||||
|
||||
/**
|
||||
* @description 任务ID
|
||||
* @description 课程ID
|
||||
*/
|
||||
private String taskID;
|
||||
private String courseID;
|
||||
|
||||
/**
|
||||
* @description 章节ID
|
||||
*/
|
||||
private String chapterID;
|
||||
|
||||
/**
|
||||
* @description 节点ID
|
||||
*/
|
||||
private String nodeID;
|
||||
|
||||
/**
|
||||
* @description 学习时长(秒)
|
||||
@@ -79,11 +94,6 @@ public class TbLearningRecord extends BaseDTO {
|
||||
* @description 删除时间
|
||||
*/
|
||||
private Date deleteTime;
|
||||
|
||||
/**
|
||||
* @description 是否删除
|
||||
*/
|
||||
private Boolean deleted;
|
||||
|
||||
public String getUserID() {
|
||||
return userID;
|
||||
@@ -93,6 +103,14 @@ public class TbLearningRecord extends BaseDTO {
|
||||
this.userID = userID;
|
||||
}
|
||||
|
||||
public String getTaskID() {
|
||||
return taskID;
|
||||
}
|
||||
|
||||
public void setTaskID(String taskID) {
|
||||
this.taskID = taskID;
|
||||
}
|
||||
|
||||
public Integer getResourceType() {
|
||||
return resourceType;
|
||||
}
|
||||
@@ -109,12 +127,30 @@ public class TbLearningRecord extends BaseDTO {
|
||||
this.resourceID = resourceID;
|
||||
}
|
||||
|
||||
public String getTaskID() {
|
||||
return taskID;
|
||||
|
||||
|
||||
public String getCourseID() {
|
||||
return courseID;
|
||||
}
|
||||
|
||||
public void setTaskID(String taskID) {
|
||||
this.taskID = taskID;
|
||||
public void setCourseID(String courseID) {
|
||||
this.courseID = courseID;
|
||||
}
|
||||
|
||||
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 Integer getDuration() {
|
||||
@@ -194,9 +230,12 @@ public class TbLearningRecord extends BaseDTO {
|
||||
return "TbLearningRecord{" +
|
||||
"id=" + getID() +
|
||||
", userID='" + userID + '\'' +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", resourceType=" + resourceType +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", courseID='" + courseID + '\'' +
|
||||
", chapterID='" + chapterID + '\'' +
|
||||
", nodeID='" + nodeID + '\'' +
|
||||
", duration=" + duration +
|
||||
", progress=" + progress +
|
||||
", isComplete=" + isComplete +
|
||||
|
||||
@@ -4,13 +4,13 @@ import org.xyzh.common.dto.BaseDTO;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description 任务课程关联表
|
||||
* @filename TbTaskCourse.java
|
||||
* @description 任务项关联表(统一管理资源和课程)
|
||||
* @filename TbTaskItem.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public class TbTaskCourse extends BaseDTO {
|
||||
public class TbTaskItem extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -20,9 +20,14 @@ public class TbTaskCourse extends BaseDTO {
|
||||
private String taskID;
|
||||
|
||||
/**
|
||||
* @description 课程ID
|
||||
* @description 项类型(1资源 2课程)
|
||||
*/
|
||||
private String courseID;
|
||||
private Integer itemType;
|
||||
|
||||
/**
|
||||
* @description 项ID(资源ID或课程ID)
|
||||
*/
|
||||
private String itemID;
|
||||
|
||||
/**
|
||||
* @description 是否必须完成
|
||||
@@ -43,21 +48,8 @@ public class TbTaskCourse extends BaseDTO {
|
||||
* @description 更新者
|
||||
*/
|
||||
private String updater;
|
||||
|
||||
|
||||
/**
|
||||
* @description 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* @description 删除时间
|
||||
*/
|
||||
private Date deleteTime;
|
||||
|
||||
/**
|
||||
* @description 是否删除
|
||||
*/
|
||||
private Boolean deleted;
|
||||
|
||||
public String getTaskID() {
|
||||
return taskID;
|
||||
@@ -67,12 +59,20 @@ public class TbTaskCourse extends BaseDTO {
|
||||
this.taskID = taskID;
|
||||
}
|
||||
|
||||
public String getCourseID() {
|
||||
return courseID;
|
||||
public Integer getItemType() {
|
||||
return itemType;
|
||||
}
|
||||
|
||||
public void setCourseID(String courseID) {
|
||||
this.courseID = courseID;
|
||||
public void setItemType(Integer itemType) {
|
||||
this.itemType = itemType;
|
||||
}
|
||||
|
||||
public String getItemID() {
|
||||
return itemID;
|
||||
}
|
||||
|
||||
public void setItemID(String itemID) {
|
||||
this.itemID = itemID;
|
||||
}
|
||||
|
||||
public Boolean getRequired() {
|
||||
@@ -107,31 +107,18 @@ public class TbTaskCourse extends BaseDTO {
|
||||
this.updater = updater;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
|
||||
public Date getDeleteTime() {
|
||||
return deleteTime;
|
||||
}
|
||||
|
||||
public void setDeleteTime(Date deleteTime) {
|
||||
this.deleteTime = deleteTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbTaskCourse{" +
|
||||
return "TbTaskItem{" +
|
||||
"id=" + getID() +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", courseID='" + courseID + '\'' +
|
||||
", itemType=" + itemType +
|
||||
", itemID='" + itemID + '\'' +
|
||||
", required=" + required +
|
||||
", orderNum=" + orderNum +
|
||||
", createTime=" + getCreateTime() +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,139 +0,0 @@
|
||||
package org.xyzh.common.dto.study;
|
||||
|
||||
import org.xyzh.common.dto.BaseDTO;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description 任务资源关联表
|
||||
* @filename TbTaskResource.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public class TbTaskResource extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* @description 任务ID
|
||||
*/
|
||||
private String taskID;
|
||||
|
||||
/**
|
||||
* @description 资源ID
|
||||
*/
|
||||
private String resourceID;
|
||||
|
||||
/**
|
||||
* @description 是否必须完成
|
||||
*/
|
||||
private Boolean required;
|
||||
|
||||
/**
|
||||
* @description 排序号
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* @description 创建者
|
||||
*/
|
||||
private String creator;
|
||||
|
||||
/**
|
||||
* @description 更新者
|
||||
*/
|
||||
private String updater;
|
||||
|
||||
/**
|
||||
* @description 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* @description 删除时间
|
||||
*/
|
||||
private Date deleteTime;
|
||||
|
||||
/**
|
||||
* @description 是否删除
|
||||
*/
|
||||
private Boolean deleted;
|
||||
|
||||
public String getTaskID() {
|
||||
return taskID;
|
||||
}
|
||||
|
||||
public void setTaskID(String taskID) {
|
||||
this.taskID = taskID;
|
||||
}
|
||||
|
||||
public String getResourceID() {
|
||||
return resourceID;
|
||||
}
|
||||
|
||||
public void setResourceID(String resourceID) {
|
||||
this.resourceID = resourceID;
|
||||
}
|
||||
|
||||
public Boolean getRequired() {
|
||||
return required;
|
||||
}
|
||||
|
||||
public void setRequired(Boolean required) {
|
||||
this.required = required;
|
||||
}
|
||||
|
||||
public Integer getOrderNum() {
|
||||
return orderNum;
|
||||
}
|
||||
|
||||
public void setOrderNum(Integer orderNum) {
|
||||
this.orderNum = orderNum;
|
||||
}
|
||||
|
||||
public String getCreator() {
|
||||
return creator;
|
||||
}
|
||||
|
||||
public void setCreator(String creator) {
|
||||
this.creator = creator;
|
||||
}
|
||||
|
||||
public String getUpdater() {
|
||||
return updater;
|
||||
}
|
||||
|
||||
public void setUpdater(String updater) {
|
||||
this.updater = updater;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
|
||||
public Date getDeleteTime() {
|
||||
return deleteTime;
|
||||
}
|
||||
|
||||
public void setDeleteTime(Date deleteTime) {
|
||||
this.deleteTime = deleteTime;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbTaskResource{" +
|
||||
"id=" + getID() +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", required=" + required +
|
||||
", orderNum=" + orderNum +
|
||||
", createTime=" + getCreateTime() +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
package org.xyzh.common.dto.usercenter;
|
||||
|
||||
import org.xyzh.common.dto.BaseDTO;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description 用户成就进度表 - 追踪用户朝向成就的进度
|
||||
* @filename TbUserAchievementProgress.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public class TbUserAchievementProgress extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* @description 用户ID
|
||||
*/
|
||||
private String userID;
|
||||
|
||||
/**
|
||||
* @description 成就ID
|
||||
*/
|
||||
private String achievementID;
|
||||
|
||||
/**
|
||||
* @description 当前进度值
|
||||
*/
|
||||
private Integer currentValue;
|
||||
|
||||
/**
|
||||
* @description 目标进度值(冗余字段,方便查询)
|
||||
*/
|
||||
private Integer targetValue;
|
||||
|
||||
/**
|
||||
* @description 进度百分比 (0-100)
|
||||
*/
|
||||
private Integer progressPercentage;
|
||||
|
||||
/**
|
||||
* @description 是否已完成
|
||||
*/
|
||||
private Boolean completed;
|
||||
|
||||
/**
|
||||
* @description 最后更新时间
|
||||
*/
|
||||
private Date lastUpdateTime;
|
||||
|
||||
public String getUserID() {
|
||||
return userID;
|
||||
}
|
||||
|
||||
public void setUserID(String userID) {
|
||||
this.userID = userID;
|
||||
}
|
||||
|
||||
public String getAchievementID() {
|
||||
return achievementID;
|
||||
}
|
||||
|
||||
public void setAchievementID(String achievementID) {
|
||||
this.achievementID = achievementID;
|
||||
}
|
||||
|
||||
public Integer getCurrentValue() {
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
public void setCurrentValue(Integer currentValue) {
|
||||
this.currentValue = currentValue;
|
||||
updateProgressPercentage();
|
||||
}
|
||||
|
||||
public Integer getTargetValue() {
|
||||
return targetValue;
|
||||
}
|
||||
|
||||
public void setTargetValue(Integer targetValue) {
|
||||
this.targetValue = targetValue;
|
||||
updateProgressPercentage();
|
||||
}
|
||||
|
||||
public Integer getProgressPercentage() {
|
||||
return progressPercentage;
|
||||
}
|
||||
|
||||
public void setProgressPercentage(Integer progressPercentage) {
|
||||
this.progressPercentage = progressPercentage;
|
||||
}
|
||||
|
||||
public Boolean getCompleted() {
|
||||
return completed;
|
||||
}
|
||||
|
||||
public void setCompleted(Boolean completed) {
|
||||
this.completed = completed;
|
||||
}
|
||||
|
||||
public Date getLastUpdateTime() {
|
||||
return lastUpdateTime;
|
||||
}
|
||||
|
||||
public void setLastUpdateTime(Date lastUpdateTime) {
|
||||
this.lastUpdateTime = lastUpdateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新进度百分比
|
||||
*/
|
||||
private void updateProgressPercentage() {
|
||||
if (currentValue != null && targetValue != null && targetValue > 0) {
|
||||
this.progressPercentage = Math.min(100, (int) ((currentValue * 100.0) / targetValue));
|
||||
this.completed = currentValue >= targetValue;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserAchievementProgress{" +
|
||||
"id=" + getID() +
|
||||
", userID='" + userID + '\'' +
|
||||
", achievementID='" + achievementID + '\'' +
|
||||
", currentValue=" + currentValue +
|
||||
", targetValue=" + targetValue +
|
||||
", progressPercentage=" + progressPercentage +
|
||||
", completed=" + completed +
|
||||
", lastUpdateTime=" + lastUpdateTime +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
package org.xyzh.common.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.xyzh.common.dto.study.TbLearningTask;
|
||||
import org.xyzh.common.dto.study.TbTaskCourse;
|
||||
import org.xyzh.common.dto.study.TbTaskResource;
|
||||
import org.xyzh.common.dto.study.TbTaskItem;
|
||||
import org.xyzh.common.dto.study.TbTaskUser;
|
||||
|
||||
public class TaskItemVO extends TbLearningTask {
|
||||
|
||||
private Integer itemType;
|
||||
private String courseID;
|
||||
private String courseName;
|
||||
private String resourceID;
|
||||
@@ -29,18 +27,31 @@ public class TaskItemVO extends TbLearningTask {
|
||||
public TaskItemVO() {
|
||||
}
|
||||
|
||||
public TaskItemVO(TbTaskCourse taskCourse) {
|
||||
this.courseID = taskCourse.getCourseID();
|
||||
this.setTaskID(taskCourse.getTaskID());
|
||||
this.orderNum = taskCourse.getOrderNum();
|
||||
this.required = taskCourse.getRequired();
|
||||
public Integer getItemType() {
|
||||
return itemType;
|
||||
}
|
||||
public TaskItemVO(TbTaskResource taskResource) {
|
||||
this.resourceID = taskResource.getResourceID();
|
||||
this.setTaskID(taskResource.getTaskID());
|
||||
this.required = taskResource.getRequired();
|
||||
this.orderNum = taskResource.getOrderNum();
|
||||
|
||||
public void setItemType(Integer itemType) {
|
||||
this.itemType = itemType;
|
||||
}
|
||||
|
||||
public TaskItemVO(TbTaskItem taskItem) {
|
||||
this.itemType = taskItem.getItemType();
|
||||
this.setTaskID(taskItem.getTaskID());
|
||||
this.orderNum = taskItem.getOrderNum();
|
||||
this.required = taskItem.getRequired();
|
||||
this.setID(taskItem.getID());
|
||||
this.setCreateTime(taskItem.getCreateTime());
|
||||
this.setCreator(taskItem.getCreator());
|
||||
|
||||
// 根据类型设置对应的ID
|
||||
if (taskItem.getItemType() != null) {
|
||||
if (taskItem.getItemType() == 2) { // 课程
|
||||
this.courseID = taskItem.getItemID();
|
||||
} else if (taskItem.getItemType() == 1) { // 资源
|
||||
this.resourceID = taskItem.getItemID();
|
||||
}
|
||||
}
|
||||
}
|
||||
public TaskItemVO(TbTaskUser taskUser) {
|
||||
this.userID = taskUser.getUserID();
|
||||
@@ -100,21 +111,30 @@ public class TaskItemVO extends TbLearningTask {
|
||||
this.orderNum = orderNum;
|
||||
}
|
||||
|
||||
public TbTaskCourse toTaskCourse() {
|
||||
TbTaskCourse taskCourse = new TbTaskCourse();
|
||||
taskCourse.setCourseID(courseID);
|
||||
taskCourse.setTaskID(getTaskID());
|
||||
taskCourse.setCreateTime(getCreateTime());
|
||||
taskCourse.setCreator(getCreator());
|
||||
return taskCourse;
|
||||
}
|
||||
public TbTaskResource toTaskResource() {
|
||||
TbTaskResource taskResource = new TbTaskResource();
|
||||
taskResource.setResourceID(resourceID);
|
||||
taskResource.setTaskID(getTaskID());
|
||||
taskResource.setCreateTime(getCreateTime());
|
||||
taskResource.setCreator(getCreator());
|
||||
return taskResource;
|
||||
public TbTaskItem toTaskItem() {
|
||||
TbTaskItem taskItem = new TbTaskItem();
|
||||
taskItem.setID(getID());
|
||||
taskItem.setTaskID(getTaskID());
|
||||
taskItem.setItemType(itemType);
|
||||
taskItem.setRequired(required);
|
||||
taskItem.setOrderNum(orderNum);
|
||||
taskItem.setCreateTime(getCreateTime());
|
||||
taskItem.setCreator(getCreator());
|
||||
|
||||
// 根据类型设置对应的itemID
|
||||
if (courseID != null && !courseID.isEmpty()) {
|
||||
taskItem.setItemID(courseID);
|
||||
if (itemType == null) {
|
||||
taskItem.setItemType(2); // 课程
|
||||
}
|
||||
} else if (resourceID != null && !resourceID.isEmpty()) {
|
||||
taskItem.setItemID(resourceID);
|
||||
if (itemType == null) {
|
||||
taskItem.setItemType(1); // 资源
|
||||
}
|
||||
}
|
||||
|
||||
return taskItem;
|
||||
}
|
||||
public TbTaskUser toTaskUser() {
|
||||
TbTaskUser taskUser = new TbTaskUser();
|
||||
|
||||
@@ -2,8 +2,7 @@ package org.xyzh.common.vo;
|
||||
|
||||
import org.xyzh.common.dto.BaseDTO;
|
||||
import org.xyzh.common.dto.study.TbLearningTask;
|
||||
import org.xyzh.common.dto.study.TbTaskCourse;
|
||||
import org.xyzh.common.dto.study.TbTaskResource;
|
||||
import org.xyzh.common.dto.study.TbTaskItem;
|
||||
import org.xyzh.common.dto.study.TbTaskUser;
|
||||
|
||||
import java.util.List;
|
||||
@@ -77,31 +76,28 @@ public class TaskVO extends BaseDTO{
|
||||
public void setTaskStatus(Integer taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
public List<TbTaskCourse> toTaskCourses() {
|
||||
return getTaskCourses().stream().map(TaskItemVO::toTaskCourse).collect(Collectors.toList());
|
||||
public List<TbTaskItem> toTaskCourses() {
|
||||
return getTaskCourses().stream().map(TaskItemVO::toTaskItem).collect(Collectors.toList());
|
||||
}
|
||||
public List<TbTaskResource> toTaskResources() {
|
||||
return getTaskResources().stream().map(TaskItemVO::toTaskResource).collect(Collectors.toList());
|
||||
public List<TbTaskItem> toTaskResources() {
|
||||
return getTaskResources().stream().map(TaskItemVO::toTaskItem).collect(Collectors.toList());
|
||||
}
|
||||
public List<TbTaskUser> toTaskUsers() {
|
||||
return getTaskUsers().stream().map(TaskItemVO::toTaskUser).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public void setTaskCourseList(List<TbTaskCourse> taskCourses) {
|
||||
if (taskCourses == null) {
|
||||
public void setTaskItemList(List<TbTaskItem> taskItems) {
|
||||
if (taskItems == null) {
|
||||
return;
|
||||
}
|
||||
this.taskCourses = taskCourses.stream().map(item -> {
|
||||
return new TaskItemVO(item);
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
public void setTaskResourceList(List<TbTaskResource> taskResources) {
|
||||
if (taskResources == null) {
|
||||
return;
|
||||
}
|
||||
this.taskResources = taskResources.stream().map(item -> {
|
||||
return new TaskItemVO(item);
|
||||
}).collect(Collectors.toList());
|
||||
this.taskCourses = taskItems.stream()
|
||||
.filter(item -> item.getItemType() == 2)
|
||||
.map(TaskItemVO::new)
|
||||
.collect(Collectors.toList());
|
||||
this.taskResources = taskItems.stream()
|
||||
.filter(item -> item.getItemType() == 1)
|
||||
.map(TaskItemVO::new)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
public void setTaskUserList(List<TbTaskUser> taskUsers) {
|
||||
if (taskUsers == null) {
|
||||
|
||||
Reference in New Issue
Block a user