style(watch): 睡眠接口午睡(短睡)兼容问题处理
This commit is contained in:
+4
@@ -2,6 +2,7 @@ package com.renkang.watch;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.renkang.watch.vo.WatchH5IndexItemVo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -48,6 +49,9 @@ public class WatchH5IndexItemNewVo {
|
||||
@Schema(title = "最高阈值")
|
||||
private String warnMax;
|
||||
|
||||
@JsonIgnore
|
||||
private String shortDurationTotal;//睡眠数据乱七八糟的,先加个字段处理app首页数据问题
|
||||
|
||||
public String getDataAvg() {
|
||||
if(StrUtil.isNotEmpty(dataAvg)){
|
||||
try {
|
||||
|
||||
+9
-6
@@ -899,7 +899,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
|
||||
// 构建「数据类型 → 异步查询 Future」映射,消除 switch-case 冗余
|
||||
Map<String, CompletableFuture<WatchH5IndexItemNewVo>> futureMap = new HashMap<>();
|
||||
futureMap.put("sleep", CompletableFuture.supplyAsync(() -> latestSleepData(userId), getAsyncTaskExecutor()));
|
||||
futureMap.put("sleep", CompletableFuture.supplyAsync(() -> latestIndexSleepData(userId), getAsyncTaskExecutor()));
|
||||
futureMap.put("heart_rate", CompletableFuture.supplyAsync(() -> latestHeartRateData(userId), getAsyncTaskExecutor()));
|
||||
futureMap.put("spo2", CompletableFuture.supplyAsync(() -> latestSpo2Data(userId), getAsyncTaskExecutor()));
|
||||
futureMap.put("stress", CompletableFuture.supplyAsync(() -> latestStressData(userId), getAsyncTaskExecutor()));
|
||||
@@ -963,7 +963,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
});
|
||||
}
|
||||
|
||||
private WatchH5IndexItemNewVo latestSleepData(String userId) {
|
||||
private WatchH5IndexItemNewVo latestIndexSleepData(String userId) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDaySleep> wrapper = new MPJLambdaWrapper<>();
|
||||
//因为睡眠详情页取的是长睡时长作为当天的睡眠时间 , 所以这里保持一致并没有取当天的睡眠总时长
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getLongDurationTotal,WatchH5IndexItemNewVo::getDataValue);
|
||||
@@ -971,14 +971,17 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getLightSleepTimes,WatchH5IndexItemNewVo::getDataMin);
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getSleepAvg,WatchH5IndexItemNewVo::getDataAvg);
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getLastUploadTime,WatchH5IndexItemNewVo::getDataDateNew);
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getShortDurationTotal,WatchH5IndexItemNewVo::getShortDurationTotal);
|
||||
wrapper.eq(WatchStatUserInfoDaySleep::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDaySleep::getDataDate);
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
WatchH5IndexItemNewVo vo = watchStatUserInfoDaySleepMapper.selectJoinOne(WatchH5IndexItemNewVo.class, wrapper);
|
||||
// 浅睡有值但深睡为空 → 当天仅有浅睡数据,用浅睡补齐 dataValue/dataMax
|
||||
if (vo != null && StrUtil.isNotEmpty(vo.getDataMin()) && StrUtil.isEmpty(vo.getDataMax())) {
|
||||
vo.setDataValue(vo.getDataMin());
|
||||
vo.setDataMax(vo.getDataMin());
|
||||
// 长睡(dataValue)为空或0 → 当天可能仅有午睡(短睡),用短睡总时长补齐 dataValue
|
||||
if (vo != null
|
||||
&& (StrUtil.isEmpty(vo.getDataValue()) || "0".equals(vo.getDataValue()))
|
||||
&& StrUtil.isNotEmpty(vo.getShortDurationTotal())
|
||||
&& !"0".equals(vo.getShortDurationTotal())) {
|
||||
vo.setDataValue(vo.getShortDurationTotal());
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user