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