diff --git a/miniprogram/pages/treating/treating.js b/miniprogram/pages/treating/treating.js index 732d344..95de4ad 100644 --- a/miniprogram/pages/treating/treating.js +++ b/miniprogram/pages/treating/treating.js @@ -1,4 +1,5 @@ var ble = require('../../services/ble') +var api = require('../../utils/api') var commandSync = require('../../services/command-sync') var config = require('../../config/env') @@ -52,6 +53,8 @@ Page({ this._onDisconnect = this.onDisconnect.bind(this) this._onReconnect = this.onReconnect.bind(this) this._onReconnectFailed = this.onReconnectFailed.bind(this) + this._sessionId = 'SESS_' + Date.now() + ble.on('status', this._onStatus) ble.on('treatment_complete', this._onComplete) ble.on('exception', this._onException) @@ -60,6 +63,7 @@ Page({ ble.on('reconnect_failed', this._onReconnectFailed) this.startLocalTimer() this.syncCommands() + this.syncTreatmentStart() }, onUnload: function () { @@ -117,6 +121,40 @@ Page({ if (deviceId) commandSync.sync(deviceId) }, + syncTreatmentStart: function () { + var self = this + var startTime = new Date(self.data.startedAt) + var endTime = new Date(self.data.startedAt + self.data.duration) + api.syncTreatment({ + session_id: self._sessionId, + device_id: self._deviceId || '', + start_time: startTime.toISOString(), + end_time: endTime.toISOString(), + regions: self.data.regions, + total_duration_ms: self.data.duration, + mode: self.data.mode, + avg_pd: 0, + source: 'treatment_start' + }).catch(function () {}) + }, + + syncTreatmentEnd: function (elapsed) { + var self = this + var startTime = new Date(self.data.startedAt) + var endTime = new Date(self.data.startedAt + elapsed) + api.syncTreatment({ + session_id: self._sessionId, + device_id: self._deviceId || '', + start_time: startTime.toISOString(), + end_time: endTime.toISOString(), + regions: self.data.regions, + total_duration_ms: elapsed, + mode: self.data.mode, + avg_pd: 0, + source: 'treatment_end' + }).catch(function () {}) + }, + onComplete: function (result) { this.setData({ completed: true, progress: 100 }) var app = getApp() @@ -137,8 +175,11 @@ Page({ finishAsComplete: function () { var elapsed = Math.min(this.data.duration, Date.now() - this.data.startedAt) + if (elapsed < this.data.duration) { + this.syncTreatmentEnd(elapsed) + } this.onComplete({ - session_id: 'LOCAL_' + Date.now(), + session_id: this._sessionId, regions: this.data.regions, total_duration_ms: elapsed, avg_pd: 0, diff --git a/miniprogram/pages/treatment-done/treatment-done.js b/miniprogram/pages/treatment-done/treatment-done.js index d3f8c73..417b0c5 100644 --- a/miniprogram/pages/treatment-done/treatment-done.js +++ b/miniprogram/pages/treatment-done/treatment-done.js @@ -55,8 +55,8 @@ Page({ http.post('/api/v1/treatment/sync', { session_id: self.data.sessionId, device_id: self._deviceId || '', - start_time: new Date(Date.now() - self.data.duration).toISOString(), - end_time: new Date().toISOString(), + start_time: treatment.start_time || new Date(Date.now() - self.data.duration).toISOString(), + end_time: treatment.end_time || new Date().toISOString(), regions: self.data.regions, total_duration_ms: self.data.duration, mode: self.data.mode,