93 lines
2.5 KiB
Plaintext
93 lines
2.5 KiB
Plaintext
/**
|
|
* 演示新的统一插入功能的使用示例
|
|
*/
|
|
|
|
import { SenseDataService } from './senseDataService.uts'
|
|
|
|
export class InsertExample {
|
|
|
|
/**
|
|
* 单个插入示例
|
|
*/
|
|
static async insertSingleMeasurement() {
|
|
const data = new UTSJSONObject()
|
|
data.set('device_id', 'device_001')
|
|
data.set('user_id', 'user_001')
|
|
data.set('measurement_type', 'heart_rate')
|
|
data.set('measured_at', new Date().toISOString())
|
|
data.set('unit', 'bpm')
|
|
const rawData = new UTSJSONObject()
|
|
rawData.set('value', 75)
|
|
data.set('raw_data', rawData)
|
|
|
|
// 使用统一的 createMeasurement 方法 - 自动检测为单个插入
|
|
const result = await SenseDataService.createMeasurement(data)
|
|
|
|
if (result.success) {
|
|
console.log('单个插入成功:', result.data)
|
|
} else {
|
|
console.log('单个插入失败:', result.msg)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
/**
|
|
* 批量插入示例
|
|
*/
|
|
static async insertBatchMeasurements() {
|
|
const dataList: Array<UTSJSONObject> = []
|
|
|
|
// 创建多个测量数据
|
|
for (let i = 0; i < 5; i++) {
|
|
const data = new UTSJSONObject()
|
|
data.set('device_id', 'device_001')
|
|
data.set('user_id', 'user_001')
|
|
data.set('measurement_type', 'steps')
|
|
data.set('measured_at', new Date(Date.now() - i * 60000).toISOString()) // 每分钟一个数据点
|
|
data.set('unit', 'steps')
|
|
const rawData = new UTSJSONObject()
|
|
rawData.set('value', 1000 + i * 100)
|
|
data.set('raw_data', rawData)
|
|
dataList.push(data)
|
|
}
|
|
|
|
// 使用统一的 createMeasurement 方法 - 自动检测为批量插入
|
|
const result = await SenseDataService.createMeasurement(dataList)
|
|
|
|
if (result.success) {
|
|
console.log('批量插入成功,插入条数:', Array.isArray(result.data) ? result.data.length : 1)
|
|
} else {
|
|
console.log('批量插入失败:', result.msg)
|
|
}
|
|
|
|
return result
|
|
}
|
|
/**
|
|
* 使用 bindDevice 方法插入设备数据
|
|
*/
|
|
static async insertDeviceData() {
|
|
const deviceData = new UTSJSONObject()
|
|
deviceData.set('user_id', 'user_001')
|
|
deviceData.set('device_type', 'smartwatch')
|
|
deviceData.set('device_name', 'Apple Watch')
|
|
deviceData.set('device_mac', 'AA:BB:CC:DD:EE:FF')
|
|
deviceData.set('status', 'online')
|
|
const extra = new UTSJSONObject()
|
|
extra.set('model', 'Series 9')
|
|
extra.set('version', '10.1')
|
|
deviceData.set('extra', extra)
|
|
|
|
// 使用 bindDevice 方法
|
|
const result = await SenseDataService.bindDevice(deviceData)
|
|
|
|
if (result.success) {
|
|
console.log('设备数据插入成功:', result.data)
|
|
} else {
|
|
console.log('设备数据插入失败:', result.msg)
|
|
}
|
|
|
|
return result
|
|
}
|
|
}
|