feat:更新计算睡眠时长
This commit is contained in:
@@ -10,6 +10,7 @@ import lombok.Setter;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -29,12 +30,12 @@ public class HealthRecordDto {
|
||||
private Double weight;
|
||||
|
||||
@Schema(description = "睡眠开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private LocalDateTime sleepStartTime;
|
||||
@JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
|
||||
private LocalTime sleepStartTime;
|
||||
|
||||
@Schema(description = "睡眠结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private LocalDateTime sleepEndTime;
|
||||
@JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
|
||||
private LocalTime sleepEndTime;
|
||||
|
||||
@Schema(description = "睡眠时长")
|
||||
private Double sleepDuration;
|
||||
|
||||
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -23,10 +24,10 @@ public class HealthRecord extends AbstractEntity {
|
||||
private Double weight;
|
||||
|
||||
@TableField("sleep_start_time")
|
||||
private LocalDateTime sleepStartTime;
|
||||
private LocalTime sleepStartTime;
|
||||
|
||||
@TableField("sleep_end_time")
|
||||
private LocalDateTime sleepEndTime;
|
||||
private LocalTime sleepEndTime;
|
||||
|
||||
@TableField("sleep_duration")
|
||||
private Double sleepDuration;
|
||||
|
||||
@@ -40,7 +40,6 @@ public class HealthServiceImpl implements HealthService {
|
||||
@Override
|
||||
public Boolean update(Long id, HealthRecordDto dto) {
|
||||
if (id == 0) {
|
||||
setSleepDuration(dto);
|
||||
return healthRecordMapper.insert(healthConverter.toEntity(dto)) == 1;
|
||||
} else {
|
||||
if ((dto.getSportProject() == null || dto.getSportProject().isEmpty())
|
||||
@@ -48,19 +47,10 @@ public class HealthServiceImpl implements HealthService {
|
||||
&& dto.getSportDuration() == 0 && dto.getWeight() == 0) {
|
||||
return healthRecordMapper.deleteById(id) == 1;
|
||||
} else {
|
||||
setSleepDuration(dto);
|
||||
HealthRecord healthRecord = healthConverter.toEntity(dto);
|
||||
healthRecord.setId(id);
|
||||
return healthRecordMapper.updateById(healthRecord) == 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setSleepDuration(HealthRecordDto dto) {
|
||||
LocalDateTime startTime = dto.getSleepStartTime();
|
||||
LocalDateTime endTime = dto.getSleepEndTime();
|
||||
if (startTime != null && endTime != null) {
|
||||
dto.setSleepDuration(Duration.between(startTime, endTime).toMinutes() / 60.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user