Showing
3 changed files
with
85 additions
and
0 deletions
| @@ -12,3 +12,5 @@ export { HttpUtils } from "./src/main/ets/utils/HttpUtils" | @@ -12,3 +12,5 @@ export { HttpUtils } from "./src/main/ets/utils/HttpUtils" | ||
| 12 | 12 | ||
| 13 | export { HostEnum, HostManager } from "./src/main/ets/http/HttpHostManager" | 13 | export { HostEnum, HostManager } from "./src/main/ets/http/HttpHostManager" |
| 14 | 14 | ||
| 15 | +export { CacheData } from "./src/main/ets/utils/CacheData" | ||
| 16 | + |
| 1 | +/** | ||
| 2 | + * 接口数据存储封装类 | ||
| 3 | + */ | ||
| 4 | +import { DateTimeUtils, StringUtils } from 'wdKit/Index'; | ||
| 5 | +import { CacheDataSaveUtil } from './CacheDataSaveUtil'; | ||
| 6 | + | ||
| 7 | +export class CacheData { | ||
| 8 | + // 接口返回数据 | ||
| 9 | + networkData?: object; | ||
| 10 | + // 数据更新时间戳 | ||
| 11 | + updateTimeInMillis: number = 0; | ||
| 12 | + // 接口返回md5,用于判断接口数据是否更新 | ||
| 13 | + md5: string = ''; | ||
| 14 | + | ||
| 15 | + constructor(md5: string, timeMillis: number, networkData: object) { | ||
| 16 | + this.md5 = md5 | ||
| 17 | + this.updateTimeInMillis = timeMillis | ||
| 18 | + this.networkData = networkData | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * 根据新旧md5值进行判断,是否需要刷新数据 | ||
| 23 | + * @param responseMd5 新值,接口返回 | ||
| 24 | + * @returns | ||
| 25 | + */ | ||
| 26 | + needRefreshByMd5(responseMd5: string): boolean { | ||
| 27 | + if (StringUtils.isEmpty(this.md5) || StringUtils.isEmpty(responseMd5)) { | ||
| 28 | + return false | ||
| 29 | + } | ||
| 30 | + return this.md5 != responseMd5 | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + static saveCacheData(cacheKey: string, data: object, responseMd5: string) { | ||
| 34 | + if (!data) { | ||
| 35 | + return | ||
| 36 | + } | ||
| 37 | + let time = DateTimeUtils.getTimeStamp() | ||
| 38 | + let cacheData = new CacheData(responseMd5, time, data) | ||
| 39 | + CacheDataSaveUtil.save(cacheKey, JSON.stringify(cacheData)) | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * 获取缓存数据 | ||
| 44 | + */ | ||
| 45 | + static getLocalCacheData(key: string): Promise<CacheData | null> { | ||
| 46 | + return new Promise<CacheData | null>((success) => { | ||
| 47 | + if (StringUtils.isEmpty(key)) { | ||
| 48 | + success(null) | ||
| 49 | + return | ||
| 50 | + } | ||
| 51 | + let ll = CacheDataSaveUtil.get(key) | ||
| 52 | + if (ll instanceof Promise) { | ||
| 53 | + ll.then((data) => { | ||
| 54 | + let str = data as string | ||
| 55 | + let cache = JSON.parse(str) as CacheData | ||
| 56 | + success(cache) | ||
| 57 | + }) | ||
| 58 | + } else { | ||
| 59 | + success(null) | ||
| 60 | + } | ||
| 61 | + }) | ||
| 62 | + } | ||
| 63 | +} |
| 1 | +import { KVStoreHelper, StringUtils } from 'wdKit/Index'; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 接口数据存储工具类 | ||
| 5 | + */ | ||
| 6 | +export class CacheDataSaveUtil { | ||
| 7 | + static save(key: string, value: string) { | ||
| 8 | + if (StringUtils.isEmpty(key)) { | ||
| 9 | + return | ||
| 10 | + } | ||
| 11 | + KVStoreHelper.default.put(key, value) | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + static get(key: string) { | ||
| 15 | + if (StringUtils.isEmpty(key)) { | ||
| 16 | + return '' | ||
| 17 | + } | ||
| 18 | + return KVStoreHelper.default.get(key, '') | ||
| 19 | + } | ||
| 20 | +} |
-
Please register or login to post a comment