From 29c2be8856e2f428185f1a0eadff91e0ec8cd3ae Mon Sep 17 00:00:00 2001 From: lianlonggang Date: Wed, 1 Jul 2026 10:42:14 +0800 Subject: [PATCH] =?UTF-8?q?style(watch):=20=E7=9D=A1=E7=9C=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=8D=88=E7=9D=A1=EF=BC=88=E7=9F=AD=E7=9D=A1=EF=BC=89?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/renkang/watch/WatchH5IndexItemNewVo.java | 4 ++++ .../api/service/impl/WatchDataApiServiceImpl.java | 15 +++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/health-watch/health-watch-api/src/main/java/com/renkang/watch/WatchH5IndexItemNewVo.java b/health-watch/health-watch-api/src/main/java/com/renkang/watch/WatchH5IndexItemNewVo.java index da37a7c..3b6b7f0 100644 --- a/health-watch/health-watch-api/src/main/java/com/renkang/watch/WatchH5IndexItemNewVo.java +++ b/health-watch/health-watch-api/src/main/java/com/renkang/watch/WatchH5IndexItemNewVo.java @@ -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 { diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java index 52c7d07..da50241 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java @@ -899,7 +899,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService { // 构建「数据类型 → 异步查询 Future」映射,消除 switch-case 冗余 Map> 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 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; }