const HealthDataCache = { CACHE_KEY: 'healthDataCache', // 获取缓存数据,若没有缓存则返回初始数据 getCache() { let cache = wx.getStorageSync(this.CACHE_KEY); if (!cache) { // 初始化缓存数据 cache = { sleepLastTime: 0, heartRateLastTime: 0, temperatureLastTime: 0, bloodOxygenLastTime: 0, bloodPressureLastTime: 0, stepLastTime:0 }; wx.setStorageSync(this.CACHE_KEY, cache); // 如果没有缓存,设置默认值 } return cache; }, // 更新缓存数据 updateCache(field, value) { const cache = this.getCache(); // 获取缓存数据 if (cache[field] !== undefined) { cache[field] = value; // 更新对应字段 wx.setStorageSync(this.CACHE_KEY, cache); // 保存更新后的缓存数据 console.log(`缓存更新成功,${field} 设置为 ${value}`); } else { console.log(`字段 ${field} 不存在,无法更新`); } }, // 更新血压数据 updateBloodPressureData(newDate) { let lastTime = this.getLastTimeField('bloodPressureLastTime'); if(newDate > lastTime){ this.updateCache('bloodPressureLastTime', newDate); } }, // 更新心率数据 updateHeartRateData(newDate) { // 判断最新传入的时间戳是否 大于 上次更新数据的时间,只有大于才更新缓存时间 let lastTime = this.getLastTimeField('heartRateLastTime'); if(newDate > lastTime){ console.log("本次更新时间大于上次更新时间"); console.log("上次更新时间>>>:",lastTime); console.log("本次更新时间>>>:",newDate); this.updateCache('heartRateLastTime', newDate); } }, // 更新体温数据 updateTemperatureData(newDate) { let lastTime = this.getLastTimeField('temperatureLastTime'); if(newDate > lastTime){ this.updateCache('temperatureLastTime', newDate); } }, // 更新血氧数据 updateBloodOxygenData(newDate) { let lastTime = this.getLastTimeField('bloodOxygenLastTime'); if(newDate > lastTime){ this.updateCache('bloodOxygenLastTime', newDate); } }, // 更新睡眠数据 ,睡眠计算可能不一样,因为存的是date updateSleepData(newDate) { let lastTime = this.getLastTimeField('sleepLastTime'); if(newDate > lastTime){ this.updateCache('sleepLastTime', newDate); } }, // 更新步数数据 updateStepData(newDate) { let lastTime = this.getLastTimeField('stepLastTime'); if(newDate > lastTime){ this.updateCache('stepLastTime', newDate); } }, // 更新所有时间字段的时间 updateAllFieldsTime(newDate) { this.updateCache('sleepLastTime', newDate); this.updateCache('heartRateLastTime', newDate); this.updateCache('temperatureLastTime', newDate); this.updateCache('bloodOxygenLastTime', newDate); this.updateCache('bloodPressureLastTime', newDate); this.updateCache('stepLastTime', newDate); console.log(`所有字段时间更新为: ${newDate}`); }, // 获取缓存中指定字段的值 getField(field) { const cache = this.getCache(); return cache[field]; }, // 根据字段获取时间戳,若返回空,则默认取过去7天,作为起始时间 getLastTimeField(field){ let lastTime = this.getField(field); if(lastTime === null || lastTime === ''|| lastTime === undefined){ // 获取九宫格的数据时间作为 开始同步时间,这里暂时获取当前时间戳 return new Date().getTime() / 1000; } return lastTime; }, }; // 导出模块 module.exports = HealthDataCache;