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);