From 3cea926a1eb872ec133427548f5bf2874422c1c3 Mon Sep 17 00:00:00 2001 From: wanghao Date: Wed, 4 Mar 2026 17:23:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E8=A1=A8=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../watch/vo/UserData/res/UserStat.java | 21 +++++++++++++++---- .../service/impl/WatchDataApiServiceImpl.java | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/health-watch/health-watch-api/src/main/java/com/renkang/watch/vo/UserData/res/UserStat.java b/health-watch/health-watch-api/src/main/java/com/renkang/watch/vo/UserData/res/UserStat.java index 62ababf..dacc0e9 100644 --- a/health-watch/health-watch-api/src/main/java/com/renkang/watch/vo/UserData/res/UserStat.java +++ b/health-watch/health-watch-api/src/main/java/com/renkang/watch/vo/UserData/res/UserStat.java @@ -49,10 +49,23 @@ public class UserStat { default: break; } - this.latest = BigDecimal.valueOf(Double.parseDouble(watchH5IndexItemNewVo.getDataValue())); - this.max = BigDecimal.valueOf(Double.parseDouble(watchH5IndexItemNewVo.getDataMax())); - this.min = BigDecimal.valueOf(Double.parseDouble(watchH5IndexItemNewVo.getDataMin())); - this.avg = BigDecimal.valueOf(Double.parseDouble(watchH5IndexItemNewVo.getDataAvg())); + this.latest = parseSafe(watchH5IndexItemNewVo.getDataValue()); + this.max = parseSafe(watchH5IndexItemNewVo.getDataMax()); + this.min = parseSafe(watchH5IndexItemNewVo.getDataMin()); + this.avg = parseSafe(watchH5IndexItemNewVo.getDataAvg()); this.latestTime = watchH5IndexItemNewVo.getDataDate(); } + + /** + * 安全解析字符串为 BigDecimal,入参为 null 或空串时返回 null + * + * @param value 待解析的字符串数值 + * @return 解析结果,无效输入返回 null + */ + private static BigDecimal parseSafe(String value) { + if (value == null || value.isEmpty()) { + return null; + } + return BigDecimal.valueOf(Double.parseDouble(value)); + } } 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 5f71327..247c4a3 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 @@ -969,6 +969,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService { wrapper.selectAs(WatchStatUserInfoDaySleep::getLongDurationTotal,WatchH5IndexItemNewVo::getDataValue); wrapper.selectAs(WatchStatUserInfoDaySleep::getLongDurationTotal,WatchH5IndexItemNewVo::getDataMax); wrapper.selectAs(WatchStatUserInfoDaySleep::getShortDurationTotal,WatchH5IndexItemNewVo::getDataMin); + wrapper.selectAs(WatchStatUserInfoDaySleep::getSleepAvg,WatchH5IndexItemNewVo::getDataAvg); wrapper.selectAs(WatchStatUserInfoDaySleep::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDaySleep::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDaySleep::getDataDate);