From cd40c6f6f3a6138cb70b2e2d017cc7f34a887ef8 Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期五, 17 四月 2026 13:59:49 +0800
Subject: [PATCH] 1.更新vf107代码,更新自动上报通行记录接口、人员查询接口、人员添加接口
---
vf107/src/service/mqttService.js | 440 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 407 insertions(+), 33 deletions(-)
diff --git a/vf107/src/service/mqttService.js b/vf107/src/service/mqttService.js
index b582aa4..61721b4 100644
--- a/vf107/src/service/mqttService.js
+++ b/vf107/src/service/mqttService.js
@@ -42,7 +42,7 @@
*/
mqttService.insertPermission = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -58,7 +58,7 @@
*/
mqttService.getPermission = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.getPermission(data)
return reply(event, res)
}
@@ -68,7 +68,7 @@
*/
mqttService.delPermission = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.delPermission(data)
if (Array.isArray(res)) {
return reply(event, res, CODE.E_100)
@@ -81,7 +81,7 @@
*/
mqttService.modifyPermission = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -111,7 +111,7 @@
*/
mqttService.insertUser = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -128,7 +128,7 @@
*/
mqttService.getUser = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.getUser(data)
return reply(event, res)
}
@@ -138,7 +138,7 @@
*/
mqttService.delUser = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.delUser(data)
if (Array.isArray(res)) {
return reply(event, res, CODE.E_100)
@@ -163,7 +163,7 @@
*/
mqttService.modifyUser = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -171,7 +171,7 @@
if (Array.isArray(res)) {
return reply(event, res, CODE.E_100)
}
- return reply(event, res)
+ return reply(event)
}
// =================================鍑瘉澧炲垹鏀规煡=================================
@@ -180,7 +180,7 @@
*/
mqttService.insertKey = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -196,7 +196,7 @@
*/
mqttService.getKey = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.getKey(data)
if (typeof res == 'string') {
return reply(event, res, CODE.E_100)
@@ -209,7 +209,7 @@
*/
mqttService.delKey = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.delKey(data)
if (Array.isArray(res)) {
return reply(event, res, CODE.E_100)
@@ -223,7 +223,7 @@
*/
mqttService.clearKey = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let ret = api.clearKey(data)
if (typeof ret == "string") {
return reply(event, "sql error ret:" + ret, CODE.E_100)
@@ -237,7 +237,7 @@
*/
mqttService.modifyKey = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -249,13 +249,163 @@
}
+
+// =================================搴旀�ュ紑浠撳瘑鐮佸鍒犳敼鏌�=================================
+/**
+ * 娣诲姞搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.insertEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癷nsertEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let payload = JSON.parse(event.payload)
+ let data = payload.payload && payload.payload.data ? payload.payload.data : {}
+ logger.info('[mqttService] 瑙f瀽鍚庣殑鍙傛暟:', JSON.stringify(data))
+ let res = this.insertEmergencyPasswordAgreement(data)
+ if (typeof res == 'string') {
+ logger.error('[mqttService] insertEmergencyPassword澶辫触:', res)
+ return reply(event, res, CODE.E_100)
+ }
+ logger.info('[mqttService] insertEmergencyPassword鎴愬姛')
+ return reply(event)
+ } catch (error) {
+ logger.error('[mqttService] insertEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+/**
+ * 娣诲姞搴旀�ュ紑浠撳瘑鐮侀�氱敤鍗忚鏍煎紡
+ * @param {object} data - 搴旀�ュ紑浠撳瘑鐮佹暟鎹璞�
+ * @returns {boolean|string} true琛ㄧず鎴愬姛锛宻tring琛ㄧず閿欒淇℃伅
+ */
+mqttService.insertEmergencyPasswordAgreement = function (data) {
+ // 搴旀�ュ紑浠撳瘑鐮佸湪璁惧涓粎鏈夊敮涓�鐨�1涓紝鎵�浠ュ厛娓呯┖琛�
+ let deleteRet = sqliteService.d1_emergency_password.deleteAll()
+ if (deleteRet != 0) {
+ return "娓呯┖鏃у瘑鐮佸け璐�: " + deleteRet
+ }
+
+ // 妫�鏌ュ瘑鐮佹槸鍚︽湁鏁�
+ if (!data.password) {
+ return "password cannot be empty"
+ }
+
+ // 妫�鏌ュ瘑鐮侀暱搴︽槸鍚﹀ぇ浜庣瓑浜�8浣�
+ if (data.password.length < 8) {
+ return "Password length must be at least 8 digits"
+ }
+
+ // 鏋勫缓瀵嗙爜璁板綍
+ let record = {}
+ record.id = data.id || 'emergency_' + Date.now() // 濡傛灉娌℃湁id锛岃嚜鍔ㄧ敓鎴�
+ record.password = data.password
+ record.description = "浜戠涓嬪彂" // 閫氳繃MQTT鍜孒TTP鎺ュ彛璁剧疆鐨勫簲鎬ュ紑浠撳瘑鐮侊紝description濉厖涓�"浜戠涓嬪彂"
+ record.createTime = Date.now()
+ record.updateTime = Date.now()
+ record.status = data.status || 1
+
+ // 淇濆瓨瀵嗙爜
+ let ret = sqliteService.d1_emergency_password.save(record)
+ if (ret == 0) {
+ return true
+ } else {
+ return "sql error ret:" + ret
+ }
+}
+
+/**
+ * 鏌ヨ搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.getEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癵etEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let payload = JSON.parse(event.payload)
+ let res = this.getEmergencyPasswordAgreement()
+ logger.info('[mqttService] 鏌ヨ缁撴灉:', JSON.stringify(res))
+ return reply(event, res)
+ } catch (error) {
+ logger.error('[mqttService] getEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+/**
+ * 鏌ヨ搴旀�ュ紑浠撳瘑鐮侀�氱敤鍗忚鏍煎紡
+ * @returns {object} 鏌ヨ缁撴灉
+ */
+mqttService.getEmergencyPasswordAgreement = function () {
+ let passwords = sqliteService.d1_emergency_password.findAll()
+ if (passwords && passwords.length > 0) {
+ let password = passwords[0];
+ // 杞崲鏃堕棿鎴充负瀛楃涓叉牸寮�
+ if (password.createTime) {
+ // 灏濊瘯灏哻reateTime杞崲涓烘暟瀛�
+ const createTimeNum = Number(password.createTime);
+ if (!isNaN(createTimeNum)) {
+ // 妫�鏌ユ椂闂存埑鏄惁涓烘绉掔骇锛堝ぇ浜庣瓑浜�10浣嶏級
+ if (createTimeNum.toString().length >= 10) {
+ // 宸茬粡鏄绉掔骇锛岃浆鎹负绉掔骇
+ password.createTime = timestampToDateString(createTimeNum / 1000);
+ } else {
+ // 绉掔骇锛岀洿鎺ヤ娇鐢�
+ password.createTime = timestampToDateString(createTimeNum);
+ }
+ }
+ }
+ if (password.updateTime) {
+ // 灏濊瘯灏唘pdateTime杞崲涓烘暟瀛�
+ const updateTimeNum = Number(password.updateTime);
+ if (!isNaN(updateTimeNum)) {
+ // 妫�鏌ユ椂闂存埑鏄惁涓烘绉掔骇锛堝ぇ浜庣瓑浜�10浣嶏級
+ if (updateTimeNum.toString().length >= 10) {
+ // 宸茬粡鏄绉掔骇锛岃浆鎹负绉掔骇
+ password.updateTime = timestampToDateString(updateTimeNum / 1000);
+ } else {
+ // 绉掔骇锛岀洿鎺ヤ娇鐢�
+ password.updateTime = timestampToDateString(updateTimeNum);
+ }
+ }
+ }
+ return password;
+ }
+ return {};
+}
+
+
+/**
+ * 娓呯┖搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.clearEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癱learEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let ret = sqliteService.d1_emergency_password.deleteAll()
+ if (ret == 0) {
+ logger.info('[mqttService] clearEmergencyPassword鎴愬姛')
+ return reply(event)
+ } else {
+ logger.error('[mqttService] clearEmergencyPassword澶辫触:', "sql error ret:" + ret)
+ return reply(event, "sql error ret:" + ret, CODE.E_100)
+ }
+ } catch (error) {
+ logger.error('[mqttService] clearEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+
// =================================瀵嗛挜澧炲垹鏀规煡=================================
/**
* 娣诲姞瀵嗛挜
*/
mqttService.insertSecurity = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
if (data.length > 100) {
return reply(event, "data length should not be greater than 100", CODE.E_100)
}
@@ -271,7 +421,7 @@
*/
mqttService.getSecurity = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.getSecurity(data)
if (typeof res == 'string') {
return reply(event, res, CODE.E_100)
@@ -284,7 +434,7 @@
*/
mqttService.delSecurity = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.delSecurity(data)
if (Array.isArray(res)) {
return reply(event, res, CODE.E_100)
@@ -304,24 +454,230 @@
}
}
+
+// =================================搴旀�ュ紑浠撳瘑鐮佸鍒犳敼鏌�=================================
+/**
+ * 娣诲姞搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.insertEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癷nsertEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let payload = JSON.parse(event.payload)
+ let data = payload.payload && payload.payload.data ? payload.payload.data : {}
+ logger.info('[mqttService] 瑙f瀽鍚庣殑鍙傛暟:', JSON.stringify(data))
+ let res = this.insertEmergencyPasswordAgreement(data)
+ if (typeof res == 'string') {
+ logger.error('[mqttService] insertEmergencyPassword澶辫触:', res)
+ return reply(event, res, CODE.E_100)
+ }
+ logger.info('[mqttService] insertEmergencyPassword鎴愬姛')
+ return reply(event)
+ } catch (error) {
+ logger.error('[mqttService] insertEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+/**
+ * 娣诲姞搴旀�ュ紑浠撳瘑鐮侀�氱敤鍗忚鏍煎紡
+ * @param {object} data - 搴旀�ュ紑浠撳瘑鐮佹暟鎹璞�
+ * @returns {boolean|string} true琛ㄧず鎴愬姛锛宻tring琛ㄧず閿欒淇℃伅
+ */
+mqttService.insertEmergencyPasswordAgreement = function (data) {
+ // 搴旀�ュ紑浠撳瘑鐮佸湪璁惧涓粎鏈夊敮涓�鐨�1涓紝鎵�浠ュ厛娓呯┖琛�
+ let deleteRet = sqliteService.d1_emergency_password.deleteAll()
+ if (deleteRet != 0) {
+ return "娓呯┖鏃у瘑鐮佸け璐�: " + deleteRet
+ }
+
+ // 妫�鏌ュ瘑鐮佹槸鍚︽湁鏁�
+ if (!data.password) {
+ return "password cannot be empty"
+ }
+
+ // 妫�鏌ュ瘑鐮侀暱搴︽槸鍚﹀ぇ浜庣瓑浜�8浣�
+ if (data.password.length < 8) {
+ return "Password length must be at least 8 digits"
+ }
+
+ // 鏋勫缓瀵嗙爜璁板綍
+ let record = {}
+ record.id = data.id || 'emergency_' + Date.now() // 濡傛灉娌℃湁id锛岃嚜鍔ㄧ敓鎴�
+ record.password = data.password
+ record.description = "浜戠涓嬪彂" // 閫氳繃MQTT鍜孒TTP鎺ュ彛璁剧疆鐨勫簲鎬ュ紑浠撳瘑鐮侊紝description濉厖涓�"浜戠涓嬪彂"
+ record.createTime = Date.now()
+ record.updateTime = Date.now()
+ record.status = data.status || 1
+
+ // 淇濆瓨瀵嗙爜
+ let ret = sqliteService.d1_emergency_password.save(record)
+ if (ret == 0) {
+ return true
+ } else {
+ return "sql error ret:" + ret
+ }
+}
+
+/**
+ * 鏌ヨ搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.getEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癵etEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let payload = JSON.parse(event.payload)
+ let res = this.getEmergencyPasswordAgreement()
+ logger.info('[mqttService] 鏌ヨ缁撴灉:', JSON.stringify(res))
+ return reply(event, res)
+ } catch (error) {
+ logger.error('[mqttService] getEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+/**
+ * 鏌ヨ搴旀�ュ紑浠撳瘑鐮侀�氱敤鍗忚鏍煎紡
+ * @returns {object} 鏌ヨ缁撴灉
+ */
+mqttService.getEmergencyPasswordAgreement = function () {
+ let passwords = sqliteService.d1_emergency_password.findAll()
+ if (passwords && passwords.length > 0) {
+ let password = passwords[0];
+ // 杞崲鏃堕棿鎴充负瀛楃涓叉牸寮�
+ if (password.createTime) {
+ // 灏濊瘯灏哻reateTime杞崲涓烘暟瀛�
+ const createTimeNum = Number(password.createTime);
+ if (!isNaN(createTimeNum)) {
+ // 妫�鏌ユ椂闂存埑鏄惁涓烘绉掔骇锛堝ぇ浜庣瓑浜�10浣嶏級
+ if (createTimeNum.toString().length >= 10) {
+ // 宸茬粡鏄绉掔骇锛岃浆鎹负绉掔骇
+ password.createTime = timestampToDateString(createTimeNum / 1000);
+ } else {
+ // 绉掔骇锛岀洿鎺ヤ娇鐢�
+ password.createTime = timestampToDateString(createTimeNum);
+ }
+ }
+ }
+ if (password.updateTime) {
+ // 灏濊瘯灏唘pdateTime杞崲涓烘暟瀛�
+ const updateTimeNum = Number(password.updateTime);
+ if (!isNaN(updateTimeNum)) {
+ // 妫�鏌ユ椂闂存埑鏄惁涓烘绉掔骇锛堝ぇ浜庣瓑浜�10浣嶏級
+ if (updateTimeNum.toString().length >= 10) {
+ // 宸茬粡鏄绉掔骇锛岃浆鎹负绉掔骇
+ password.updateTime = timestampToDateString(updateTimeNum / 1000);
+ } else {
+ // 绉掔骇锛岀洿鎺ヤ娇鐢�
+ password.updateTime = timestampToDateString(updateTimeNum);
+ }
+ }
+ }
+ return password;
+ }
+ return {};
+}
+
+
+/**
+ * 娓呯┖搴旀�ュ紑浠撳瘑鐮�
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
+ */
+mqttService.clearEmergencyPassword = function (event) {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癱learEmergencyPassword鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let ret = sqliteService.d1_emergency_password.deleteAll()
+ if (ret == 0) {
+ logger.info('[mqttService] clearEmergencyPassword鎴愬姛')
+ return reply(event)
+ } else {
+ logger.error('[mqttService] clearEmergencyPassword澶辫触:', "sql error ret:" + ret)
+ return reply(event, "sql error ret:" + ret, CODE.E_100)
+ }
+ } catch (error) {
+ logger.error('[mqttService] clearEmergencyPassword error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
+ }
+}
+
+
/**
* 杩滅▼鎺у埗
+ * @param {object} event - MQTT浜嬩欢瀵硅薄
*/
mqttService.control = function (event) {
- let payload = JSON.parse(event.payload)
- let ret = api.control(payload)
- // 杩滅▼鎶撴媿銆佷紒涓氬井淇¤В缁戯紝闇�瑕佺瓑娴佺▼瀹屾垚鍚庢墠鍥炲锛屼笉鑳界珛鍗冲洖澶�
- if (payload.data.command != 8 && payload.data.command != 11) {
- // 濡傛灉鏄寚绾规搷浣滐紝浣嗘槸璁惧涓嶆敮鎸佹寚绾圭殑璇濓紝灏辩洿鎺ヨ繑鍥為敊璇�
- if(payload.data.command == 12 && !driver.device.finger){
- return reply(event, "finger not supported", CODE.E_100)
- }
- if (typeof ret == "string") {
- return reply(event, "unknown failure", CODE.E_100)
- } else {
+ try {
+ logger.info('[mqttService] 鎺ユ敹鍒癱ontrol鍛戒护:', JSON.stringify(event.topic))
+ logger.info('[mqttService] 鍛戒护payload:', event.payload)
+ let payload = JSON.parse(event.payload)
+ let data = payload.payload.data || {}
+ switch (data.command) {
+ case 0:
+ //閲嶅惎
+ logger.info('[mqttService] 鎵ц閲嶅惎鍛戒护')
+ reply(event)
+ common.asyncReboot(2)
+ return
+ case 1:
+ //杩滅▼寮�闂�
+ logger.info('[mqttService] 鎵ц杩滅▼寮�闂ㄥ懡浠�')
+ driver.gpio.open()
+ break
+ case 4:
+ //閲嶇疆
+ logger.info('[mqttService] 鎵ц閲嶇疆鍛戒护')
+ common.systemBrief("rm -rf /app/data/config/*")
+ common.systemBrief("rm -rf /app/data/db/*")
+ common.systemBrief("rm -rf /app/data/user/*")
+ common.systemBrief("rm -rf /app/data/user/*")
+ common.systemBrief("rm -rf /vgmj.db")
+ reply(event)
+ common.asyncReboot(2)
+ return
+ case 5:
+ //鎾斁璇煶
+ logger.info('[mqttService] 鎵ц鎾斁璇煶鍛戒护')
+ if (data.extra) {
+ let res = common.systemWithRes(`test -e "/app/code/resource/wav/${data.extra.wav}.wav" && echo "OK" || echo "NO"`, 2)
+ if (res.includes('OK')) {
+ driver.alsa.play(`/app/code/resource/wav/${data.extra.wav}.wav`)
+ }
+ }
+ break
+ case 6:
+ // 6锛氬睆骞曞睍绀哄浘鐗�
+ // TODO
+ logger.info('[mqttService] 鎵ц灞忓箷灞曠ず鍥剧墖鍛戒护')
+ break
+ case 7:
+ // 7锛氬睆骞曞睍绀烘枃瀛�
+ // TODO
+ logger.info('[mqttService] 鎵ц灞忓箷灞曠ず鏂囧瓧鍛戒护')
+ break
+ case 10:
+ logger.info('[mqttService] 鎵ц浜岀淮鐮佸睍绀哄懡浠�')
+ if (!isEmpty(data.extra.qrCodeBase64) && typeof data.extra.qrCodeBase64 == 'string') {
+ //base64杞浘鐗囦繚瀛�
+ let src = `/app/code/resource/image/app_qrcode.png`
+ std.ensurePathExists(src)
+ common.base64_2binfile(src, data.extra.qrCodeBase64)
+ logger.info('[mqttService] 浜岀淮鐮佷繚瀛樻垚鍔�')
+ return reply(event)
+ }
+ break
+ default:
+ logger.info('[mqttService] 鏈煡鍛戒护:', data.command)
+ break
+ }
+ logger.info('[mqttService] control鍛戒护鎵ц瀹屾垚')
return reply(event)
+ } catch (error) {
+ logger.error('[mqttService] control error:', error)
+ return reply(event, { error: error.message }, CODE.E_100)
}
- }
}
/**
@@ -343,7 +699,7 @@
*/
mqttService.setConfig = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.setConfig(data)
if (typeof res == "string") {
return reply(event, res, CODE.E_100)
@@ -356,8 +712,9 @@
* 鍗囩骇鍥轰欢
*/
mqttService.upgradeFirmware = function (event) {
+ logger.info('[mqttService] 鎺ユ敹鍒板崌绾у浐浠跺懡浠�:', JSON.stringify(event.topic))
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.upgradeFirmware(data)
if (typeof res == "string") {
return reply(event, res, CODE.E_100)
@@ -371,7 +728,7 @@
*/
mqttService.getRecords = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.getRecords(data, true)
return reply(event, res)
}
@@ -382,7 +739,7 @@
*/
mqttService.delRecords = function (event) {
let payload = JSON.parse(event.payload)
- let data = payload.data
+ let data = payload.payload && payload.payload.data ? payload.payload.data : payload.data
let res = api.delRecords(data)
if (typeof res == 'string') {
return reply(event, res, CODE.E_100)
@@ -487,6 +844,23 @@
}
mqttService.mqttReply = mqttReply
+/**
+ * 鏃堕棿鎴宠浆鏃ユ湡瀛楃涓�
+ * @param {number} timestamp - 鏃堕棿鎴筹紙绉掔骇锛�
+ * @returns {string} 鏃ユ湡瀛楃涓诧紝鏍煎紡锛歒YYY-MM-DD HH:MM:SS
+ */
+function timestampToDateString(timestamp) {
+ const date = new Date(timestamp * 1000);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ const hours = String(date.getHours()).padStart(2, '0');
+ const minutes = String(date.getMinutes()).padStart(2, '0');
+ const seconds = String(date.getSeconds()).padStart(2, '0');
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+mqttService.timestampToDateString = timestampToDateString
+
// 鍒ょ┖
function isEmpty(value) {
return value === undefined || value === null || value === ""
--
Gitblit v1.9.3