From acfed5f9b3c538340a2f0c4bfd7464464d8171fb Mon Sep 17 00:00:00 2001 From: zhangsheng Date: Thu, 22 May 2025 09:56:54 +0800 Subject: [PATCH] modify clear expire data --- dbaccess/sql_db.cpp | 22 +++++++++++++++++++++- dbaccess/sql_db.hpp | 1 + threadfunc/check_thread.cpp | 1 + uart/uart_feature_parse.cpp | 4 ---- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/dbaccess/sql_db.cpp b/dbaccess/sql_db.cpp index e74ecb1..7311a02 100644 --- a/dbaccess/sql_db.cpp +++ b/dbaccess/sql_db.cpp @@ -1370,7 +1370,27 @@ int SqliteDB::QueryofflineData() { } return res; } - +int SqliteDB::ClearExpireData(){ + char whereCon[1024] = {0}; + char deleteSql[1024] = {0}; + char selectSql[1024] = {0}; + memset(whereCon, 0x00, sizeof(whereCon)); + memset(deleteSql, 0x00, sizeof(deleteSql)); + memset(selectSql, 0x00, sizeof(selectSql)); + sprintf(selectSql, " MeasurementID "); + array_t vecRes; + char localtimestamp[32] = {0}; + GetTimeNet(localtimestamp, 1); + vecRes = GetDataMultiLine(T_SENSOR_INFO(TNAME), selectSql, NULL); + for (size_t i = 0; i < vecRes.size(); i++) { + sprintf(whereCon, " timeStamp < %ld", atol(localtimestamp) - 2592000);//前一个月 + sprintf(deleteSql, "delete from t_dataStatic_%s where %s", vecRes[i][0].c_str(), whereCon); + ExeSql(deleteSql); + sprintf(deleteSql, "delete from t_data_%s where %s", vecRes[i][0].c_str(), whereCon); + ExeSql(deleteSql); + } + return 0; +} int SqliteDB::TransBegin() { return sqlite3_exec(mDBAcess, "begin;", 0, 0, 0); } int SqliteDB::TransRollback() { return sqlite3_exec(mDBAcess, "rollback;", 0, 0, 0); } diff --git a/dbaccess/sql_db.hpp b/dbaccess/sql_db.hpp index b8c4d79..9f3dcdf 100644 --- a/dbaccess/sql_db.hpp +++ b/dbaccess/sql_db.hpp @@ -68,6 +68,7 @@ public: int CalculateDip(); int InintGateway(); int QueryofflineData(); + int ClearExpireData(); int CalculateWaveRate(); std::string GetNodeConfigureInfor(const char *whereCon); int CloseDB(); diff --git a/threadfunc/check_thread.cpp b/threadfunc/check_thread.cpp index 119cafe..a5951de 100644 --- a/threadfunc/check_thread.cpp +++ b/threadfunc/check_thread.cpp @@ -189,6 +189,7 @@ void CheckThread() { sprintf(whereCon, " timestamp < '%ld' ", atol(localtimestamp) - 2592000); //删除1个月前的数据 sqlite_db_ctrl::instance().DeleteTableData(" t_battery_history ", whereCon); sqlite_db_ctrl::instance().DeleteTableData(" receive_wave_status ", whereCon); + sqlite_db_ctrl::instance().ClearExpireData(); } #ifdef WIFI_MODULE if (wifi_reconnect_count == 600) { // 每 10分钟,重连WiFi网络 diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index 4105c43..28659e9 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -605,10 +605,6 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { if (flag == 1) { zlog_info(zct, "DealDataNodeFeature end %02x%02x", pRecvData->ShortAddr[0], pRecvData->ShortAddr[1]); } - memset(whereCon, 0x00, sizeof(whereCon)); - sprintf(whereCon, " timestamp < '%ld' ", atol(localtimestamp) - 2592000); //删除1个月前的数据 - sqlite_db_ctrl::instance().DeleteTableData(szTableNameStatic, whereCon); - sqlite_db_ctrl::instance().DeleteTableData(szTableNameData, whereCon); return 0; }