feat: 任务开始页面,相关逻辑补充

This commit is contained in:
2025-07-08 09:20:31 +08:00
parent 72c9a0be65
commit 5df805cca7
7 changed files with 71 additions and 28 deletions
@@ -8,6 +8,7 @@ import com.guo.learningprogresstracker.enums.StudySessionStateEnum;
import com.guo.learningprogresstracker.utils.GenerateNumTool;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import java.io.Serializable;
import java.time.Duration;
@@ -98,7 +99,7 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
this.setSessionState(StudySessionStateEnum.ONGOING.name());
this.setLastStartTime(LocalDateTime.now());
} else if (this.getSessionState().equals(StudySessionStateEnum.ONGOING.name())) {
log.info("进行中的学习会话({})被重新获取",this.getSessionNum());
log.info("进行中的学习会话({})被重新开始",this.getSessionNum());
} else{
log.warn("不应出现的情况:开始了一个状态为【{}】的学习会话({})",this.getSessionState(),this.getSessionNum());
}
@@ -107,15 +108,15 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
/**
* 暂停会话
*/
public void pausedStudySession(){
if (this.getSessionState().equals(StudySessionStateEnum.PAUSED.name())){
log.warn("不应出现的情况:暂停了一个状态为【{}】的学习会话",this.getSessionState());
public void pausedStudySession(LocalDateTime endTime){
if (this.getSessionState().equals(StudySessionStateEnum.PAUSED.name())) {
log.warn("不应出现的情况:暂停了一个状态为【{}】的学习会话({})", this.getSessionState(), this.getSessionNum());
//
}else {
this.setEndTime(LocalDateTime.now());
this.setActualTime(Duration.between(this.startTime,this.endTime).toSeconds());
this.setEffectiveTime(this.getEffectiveTime()+Duration.between(this.lastStartTime,this.endTime).toSeconds());
this.setEffectivenessRatio(this.effectiveTime/this.actualTime);
} else {
this.setEndTime(ObjectUtils.isEmpty(endTime) ? LocalDateTime.now() : endTime);
this.setActualTime(Duration.between(this.startTime, this.endTime).toSeconds());
this.setEffectiveTime(this.getEffectiveTime() + Duration.between(this.lastStartTime, this.endTime).toSeconds());
this.setEffectivenessRatio(this.effectiveTime / this.actualTime);
this.setSessionState(StudySessionStateEnum.PAUSED.name());
}
}
@@ -128,7 +129,7 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
log.warn("不应出现的情况:结束了一个状态为【{}】的学习会话",this.getSessionState());
}else {
if (this.getSessionState().equals(StudySessionStateEnum.ONGOING.name())) {
this.pausedStudySession();
this.pausedStudySession(endTime);
}
this.setSessionState(StudySessionStateEnum.ENDED.name());
}