修正学习会话计时指针与时间单位定义

This commit is contained in:
2026-04-12 13:06:00 +08:00
parent 05f47b92a8
commit c696397d83
2 changed files with 12 additions and 13 deletions
@@ -28,11 +28,11 @@ public class StudySessionResponse {
private LocalDateTime endTime; private LocalDateTime endTime;
@Schema(description = "实际使用时间(分钟") @Schema(description = "实际使用时间(")
private double actualTime; private double actualTime;
@Schema(description = "有效学习时间(分钟") @Schema(description = "有效学习时间(")
private double effectiveTime; private double effectiveTime;
@@ -43,7 +43,7 @@ public class StudySessionResponse {
@Schema(description = "学习会话的状态(进行中、暂停、已结束)") @Schema(description = "学习会话的状态(进行中、暂停、已结束)")
private String sessionState; private String sessionState;
@Schema(description = "倒计时开始位置(S") @Schema(description = "倒计时指针位置(毫秒")
private double pointerPosition; private double pointerPosition;
@Schema(description = "系统提示") @Schema(description = "系统提示")
@@ -95,6 +95,8 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
StudySessionsEntity studySessionsEntity = new StudySessionsEntity(); StudySessionsEntity studySessionsEntity = new StudySessionsEntity();
studySessionsEntity.setSessionNum(GenerateNumTool.generateNum("SESSION")); studySessionsEntity.setSessionNum(GenerateNumTool.generateNum("SESSION"));
studySessionsEntity.setStartTime(LocalDateTime.now()); studySessionsEntity.setStartTime(LocalDateTime.now());
studySessionsEntity.setLastStartTime(LocalDateTime.now());
studySessionsEntity.setPointerPosition(WORK_DURATION * 60 * 1000L);
studySessionsEntity.setLastModifiedTime(LocalDateTime.now()); studySessionsEntity.setLastModifiedTime(LocalDateTime.now());
studySessionsEntity.setSessionState(StudySessionStateEnum.ONGOING.name()); studySessionsEntity.setSessionState(StudySessionStateEnum.ONGOING.name());
return studySessionsEntity; return studySessionsEntity;
@@ -150,13 +152,7 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
* @return * @return
*/ */
public boolean isFirstRun() { public boolean isFirstRun() {
if (ObjectUtils.isEmpty(this.lastStartTime)) { return ObjectUtils.isEmpty(this.pointerPosition);
return false;
} else if (this.lastStartTime.equals(this.startTime)) {
return true;
} else {
return false;
}
} }
@@ -187,10 +183,13 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
case ONGOING: case ONGOING:
long elapsedMillis = Duration.between(lastStartTime, LocalDateTime.now()).toMillis(); long elapsedMillis = Duration.between(lastStartTime, LocalDateTime.now()).toMillis();
long newPointerPosition = pointerPosition - elapsedMillis; long basePointerPosition = ObjectUtils.isEmpty(pointerPosition)
? WORK_DURATION * 60 * 1000L
: pointerPosition;
long newPointerPosition = basePointerPosition - elapsedMillis;
if (newPointerPosition <= 0) { if (newPointerPosition <= 0) {
// 如果循环已经结束,则需要重置指针位置 // 如果循环已经结束,则需要重置指针位置
this.pointerPosition = WORK_DURATION * 1000L; this.pointerPosition = WORK_DURATION * 60 * 1000L;
} else { } else {
this.pointerPosition = newPointerPosition; this.pointerPosition = newPointerPosition;
} }