[xingyu.guo] feat: 1. 替换所有响应值中的id为num,不将非业务字段展示给外部 2. 调整[实际使用时间]等字段类型为double,方便计算\保存与读取 3. 【获取所有任务列表】api,完善功能,并增加分页功能 4.将int类型修改为使用Integer,更加安全

This commit is contained in:
guo
2024-09-22 08:20:48 +08:00
parent 7315f02ce6
commit 6005782b14
12 changed files with 86 additions and 67 deletions
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.guo.learningprogresstracker.enums.StudySessionStateEnum;
import com.guo.learningprogresstracker.utils.GenerateNumTool;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -49,22 +50,22 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
private LocalDateTime endTime;
/**
* 实际使用时间(分钟
* 实际使用时间(
*/
@TableField(value = "actual_time")
private Integer actualTime;
private double actualTime;
/**
* 有效学习时间(分钟
* 有效学习时间(
*/
@TableField(value = "effective_time")
private Integer effectiveTime;
private double effectiveTime;
/**
* 有效时间比
*/
@TableField(value = "effectiveness_ratio")
private Double effectivenessRatio;
private double effectivenessRatio;
/**
* 学习会话的状态(进行中、暂停、已结束)
@@ -82,6 +83,7 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
*/
public static StudySessionsEntity initNewSession(){
StudySessionsEntity studySessionsEntity = new StudySessionsEntity();
studySessionsEntity.setSessionNum(GenerateNumTool.generateNum("SESSION"));
studySessionsEntity.setStartTime(LocalDateTime.now());
studySessionsEntity.setLastModifiedTime(LocalDateTime.now());
studySessionsEntity.setSessionState(StudySessionStateEnum.ONGOING.name());
@@ -105,11 +107,13 @@ public class StudySessionsEntity extends BaseEntity implements Serializable {
*/
public void pausedStudySession(){
if (this.getSessionState().equals(StudySessionStateEnum.PAUSED.name())){
log.warn("不应出现的情况:暂停了一个状态为【{}】的学习会话",this.getSessionState());
//
}else {
this.setEndTime(LocalDateTime.now());
this.setEffectiveTime((int) Duration.between(this.lastStartTime,this.endTime).toMinutes());
this.setActualTime((int) Duration.between(this.endTime,this.startTime).toMinutes());
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());
}
}