|
@ -1,5 +1,11 @@ |
|
|
#include "disinfection_logs_manager.hpp"
|
|
|
#include "disinfection_logs_manager.hpp"
|
|
|
|
|
|
|
|
|
|
|
|
#include <dirent.h>
|
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
|
|
|
|
#include "iflytop/core/components/fileutils.hpp"
|
|
|
using namespace iflytop; |
|
|
using namespace iflytop; |
|
|
|
|
|
using namespace core; |
|
|
using namespace std; |
|
|
using namespace std; |
|
|
|
|
|
|
|
|
#define LOG_STORGE_PATH "./disinfection_logs/"
|
|
|
#define LOG_STORGE_PATH "./disinfection_logs/"
|
|
@ -35,3 +41,59 @@ shared_ptr<DisinfectionLogger> DisinfectionLogsManager::createNewLogger(string l |
|
|
logger->initialize(fmt::format("{}{}.csv", LOG_STORGE_PATH, log_file_name)); |
|
|
logger->initialize(fmt::format("{}{}.csv", LOG_STORGE_PATH, log_file_name)); |
|
|
return logger; |
|
|
return logger; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void split(const string& s, vector<string>& sv, const char delim = ' ') { |
|
|
|
|
|
sv.clear(); |
|
|
|
|
|
istringstream iss(s); |
|
|
|
|
|
string temp; |
|
|
|
|
|
|
|
|
|
|
|
while (getline(iss, temp, delim)) { |
|
|
|
|
|
sv.push_back(temp); |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
void DisinfectionLogsManager::list_dir_csvfile(string path, vector<string>& sv) { |
|
|
|
|
|
sv.clear(); |
|
|
|
|
|
DIR* dir; |
|
|
|
|
|
struct dirent* ptr; |
|
|
|
|
|
if ((dir = opendir(path.c_str())) == NULL) { |
|
|
|
|
|
logger->error("Open dir {} error...", path); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
while ((ptr = readdir(dir)) != NULL) { |
|
|
|
|
|
if (ptr->d_name[0] == '.') continue; |
|
|
|
|
|
if (ptr->d_type == 8) { |
|
|
|
|
|
string filename = ptr->d_name; |
|
|
|
|
|
if (filename.find(".csv") != string::npos) { |
|
|
|
|
|
sv.push_back(filename); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
closedir(dir); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
nlohmann::json DisinfectionLogsManager::getlogger(string log_file_name) { |
|
|
|
|
|
string content = FileUtils().readFileAsString(fmt::format("{}{}.csv", LOG_STORGE_PATH, log_file_name)); |
|
|
|
|
|
nlohmann::json csvcontent; |
|
|
|
|
|
vector<string> lines; |
|
|
|
|
|
split(content, lines, '\n'); |
|
|
|
|
|
|
|
|
|
|
|
for (auto& line : lines) { |
|
|
|
|
|
csvcontent["content"].push_back(line); |
|
|
|
|
|
} |
|
|
|
|
|
return csvcontent; |
|
|
|
|
|
} |
|
|
|
|
|
nlohmann::json DisinfectionLogsManager::getLoggerList() { |
|
|
|
|
|
//
|
|
|
|
|
|
// 1. get all files in LOG_STORGE_PATH
|
|
|
|
|
|
vector<string> files; |
|
|
|
|
|
list_dir_csvfile(LOG_STORGE_PATH, files); |
|
|
|
|
|
nlohmann::json loggerlist; |
|
|
|
|
|
for (auto& file : files) { |
|
|
|
|
|
// 获取文件名去掉.csv
|
|
|
|
|
|
file = file.substr(0, file.find(".csv")); |
|
|
|
|
|
loggerlist.push_back(file); |
|
|
|
|
|
} |
|
|
|
|
|
return loggerlist; |
|
|
|
|
|
} |