serv-学习
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
package org.xyzh.common.core.enums;
|
||||
|
||||
/**
|
||||
* @description 成就条件类型枚举
|
||||
* @filename AchievementConditionType.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public enum AchievementConditionType {
|
||||
|
||||
/**
|
||||
* 1-学习时长(分钟)
|
||||
*/
|
||||
LEARNING_TIME(1, "学习时长"),
|
||||
|
||||
/**
|
||||
* 2-浏览资源数量
|
||||
*/
|
||||
RESOURCE_VIEW_COUNT(2, "浏览资源数量"),
|
||||
|
||||
/**
|
||||
* 3-完成课程数量
|
||||
*/
|
||||
COURSE_COMPLETE_COUNT(3, "完成课程数量"),
|
||||
|
||||
/**
|
||||
* 4-连续登录天数
|
||||
*/
|
||||
CONTINUOUS_LOGIN_DAYS(4, "连续登录天数"),
|
||||
|
||||
/**
|
||||
* 5-收藏资源数量
|
||||
*/
|
||||
RESOURCE_COLLECT_COUNT(5, "收藏资源数量"),
|
||||
|
||||
/**
|
||||
* 6-完成任务数量
|
||||
*/
|
||||
TASK_COMPLETE_COUNT(6, "完成任务数量"),
|
||||
|
||||
/**
|
||||
* 7-获得积分数量
|
||||
*/
|
||||
POINTS_EARNED(7, "获得积分数量"),
|
||||
|
||||
/**
|
||||
* 8-发表评论数量
|
||||
*/
|
||||
COMMENT_COUNT(8, "发表评论数量"),
|
||||
|
||||
/**
|
||||
* 9-完成章节数量
|
||||
*/
|
||||
CHAPTER_COMPLETE_COUNT(9, "完成章节数量"),
|
||||
|
||||
/**
|
||||
* 10-累计登录天数
|
||||
*/
|
||||
TOTAL_LOGIN_DAYS(10, "累计登录天数");
|
||||
|
||||
private final int code;
|
||||
private final String description;
|
||||
|
||||
AchievementConditionType(int code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据code获取条件类型
|
||||
*/
|
||||
public static AchievementConditionType fromCode(int code) {
|
||||
for (AchievementConditionType type : values()) {
|
||||
if (type.code == code) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
package org.xyzh.common.core.enums;
|
||||
|
||||
/**
|
||||
* @description 成就事件类型枚举
|
||||
* @filename AchievementEventType.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public enum AchievementEventType {
|
||||
|
||||
/**
|
||||
* 学习相关事件
|
||||
*/
|
||||
LEARNING_TIME_UPDATED("learning_time_updated", "学习时长更新"),
|
||||
COURSE_COMPLETED("course_completed", "课程完成"),
|
||||
COURSE_STARTED("course_started", "开始学习课程"),
|
||||
CHAPTER_COMPLETED("chapter_completed", "章节完成"),
|
||||
|
||||
/**
|
||||
* 资源相关事件
|
||||
*/
|
||||
RESOURCE_VIEWED("resource_viewed", "浏览资源"),
|
||||
RESOURCE_COLLECTED("resource_collected", "收藏资源"),
|
||||
RESOURCE_SHARED("resource_shared", "分享资源"),
|
||||
|
||||
/**
|
||||
* 任务相关事件
|
||||
*/
|
||||
TASK_COMPLETED("task_completed", "任务完成"),
|
||||
TASK_ITEM_COMPLETED("task_item_completed", "任务项完成"),
|
||||
|
||||
/**
|
||||
* 互动相关事件
|
||||
*/
|
||||
COMMENT_POSTED("comment_posted", "发表评论"),
|
||||
LIKE_GIVEN("like_given", "点赞"),
|
||||
|
||||
/**
|
||||
* 登录相关事件
|
||||
*/
|
||||
USER_LOGIN("user_login", "用户登录"),
|
||||
CONTINUOUS_LOGIN("continuous_login", "连续登录"),
|
||||
|
||||
/**
|
||||
* 积分相关事件
|
||||
*/
|
||||
POINTS_EARNED("points_earned", "获得积分"),
|
||||
|
||||
/**
|
||||
* 测试相关事件
|
||||
*/
|
||||
TEST_PASSED("test_passed", "测试通过"),
|
||||
TEST_PERFECT_SCORE("test_perfect_score", "测试满分");
|
||||
|
||||
private final String code;
|
||||
private final String description;
|
||||
|
||||
AchievementEventType(String code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据code获取事件类型
|
||||
*/
|
||||
public static AchievementEventType fromCode(String code) {
|
||||
for (AchievementEventType type : values()) {
|
||||
if (type.code.equals(code)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.xyzh.common.core.enums;
|
||||
|
||||
/**
|
||||
* @description 任务项类型常量
|
||||
* @filename TaskItemType.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public enum TaskItemType {
|
||||
|
||||
/**
|
||||
* 资源类型
|
||||
*/
|
||||
RESOURCE(1),
|
||||
|
||||
/**
|
||||
* 课程类型
|
||||
*/
|
||||
COURSE(2);
|
||||
|
||||
private int value;
|
||||
|
||||
TaskItemType(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
package org.xyzh.common.core.event;
|
||||
|
||||
import org.xyzh.common.core.enums.AchievementEventType;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description 成就事件数据类
|
||||
* @filename AchievementEvent.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-24
|
||||
*/
|
||||
public class AchievementEvent {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userID;
|
||||
|
||||
/**
|
||||
* 事件类型
|
||||
*/
|
||||
private AchievementEventType eventType;
|
||||
|
||||
/**
|
||||
* 事件值(如学习时长、资源数量等)
|
||||
*/
|
||||
private Integer eventValue;
|
||||
|
||||
/**
|
||||
* 事件时间
|
||||
*/
|
||||
private Date eventTime;
|
||||
|
||||
/**
|
||||
* 额外数据
|
||||
*/
|
||||
private Map<String, Object> extraData;
|
||||
|
||||
public AchievementEvent() {
|
||||
this.eventTime = new Date();
|
||||
this.extraData = new HashMap<>();
|
||||
}
|
||||
|
||||
public AchievementEvent(String userID, AchievementEventType eventType, Integer eventValue) {
|
||||
this.userID = userID;
|
||||
this.eventType = eventType;
|
||||
this.eventValue = eventValue;
|
||||
this.eventTime = new Date();
|
||||
this.extraData = new HashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建器模式
|
||||
*/
|
||||
public static class Builder {
|
||||
private final AchievementEvent event;
|
||||
|
||||
public Builder(String userID, AchievementEventType eventType) {
|
||||
event = new AchievementEvent();
|
||||
event.userID = userID;
|
||||
event.eventType = eventType;
|
||||
}
|
||||
|
||||
public Builder value(Integer value) {
|
||||
event.eventValue = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder extra(String key, Object value) {
|
||||
event.extraData.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder time(Date time) {
|
||||
event.eventTime = time;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AchievementEvent build() {
|
||||
return event;
|
||||
}
|
||||
}
|
||||
|
||||
public static Builder builder(String userID, AchievementEventType eventType) {
|
||||
return new Builder(userID, eventType);
|
||||
}
|
||||
|
||||
public String getUserID() {
|
||||
return userID;
|
||||
}
|
||||
|
||||
public void setUserID(String userID) {
|
||||
this.userID = userID;
|
||||
}
|
||||
|
||||
public AchievementEventType getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
|
||||
public void setEventType(AchievementEventType eventType) {
|
||||
this.eventType = eventType;
|
||||
}
|
||||
|
||||
public Integer getEventValue() {
|
||||
return eventValue;
|
||||
}
|
||||
|
||||
public void setEventValue(Integer eventValue) {
|
||||
this.eventValue = eventValue;
|
||||
}
|
||||
|
||||
public Date getEventTime() {
|
||||
return eventTime;
|
||||
}
|
||||
|
||||
public void setEventTime(Date eventTime) {
|
||||
this.eventTime = eventTime;
|
||||
}
|
||||
|
||||
public Map<String, Object> getExtraData() {
|
||||
return extraData;
|
||||
}
|
||||
|
||||
public void setExtraData(Map<String, Object> extraData) {
|
||||
this.extraData = extraData;
|
||||
}
|
||||
|
||||
public Object getExtraData(String key) {
|
||||
return extraData.get(key);
|
||||
}
|
||||
|
||||
public void putExtraData(String key, Object value) {
|
||||
this.extraData.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AchievementEvent{" +
|
||||
"userID='" + userID + '\'' +
|
||||
", eventType=" + eventType +
|
||||
", eventValue=" + eventValue +
|
||||
", eventTime=" + eventTime +
|
||||
", extraData=" + extraData +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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