Chuyển lưu trữ dữ liệu sang data base
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
2026-06-17 11:16:30 +07:00
parent 4054d81aaf
commit 098e1b2b69
45 changed files with 1971 additions and 1657 deletions

View File

@@ -1,6 +1,6 @@
#include "mission/mission_queue.hpp"
#include "util/file_util.hpp"
#include "storage/database.hpp"
#include "util/id_util.hpp"
#include <chrono>
@@ -40,7 +40,7 @@ double paramNumber(const nlohmann::json& params, const std::string& key, double
} // namespace
MissionQueue::MissionQueue(std::filesystem::path queue_path) : queue_path_(std::move(queue_path))
MissionQueue::MissionQueue(Database& db) : db_(db)
{
load();
ensureRunnerDefaults();
@@ -60,22 +60,15 @@ void MissionQueue::load()
std::lock_guard<std::recursive_mutex> lock(mu_);
queue_ = nlohmann::json::array();
runner_ = nlohmann::json::object();
if (!std::filesystem::exists(queue_path_))
nlohmann::json parsed;
if (!db_.getDocument("mission_queue", parsed))
return;
try
if (parsed.is_object())
{
const auto parsed = nlohmann::json::parse(FileUtil::readBinary(queue_path_));
if (parsed.is_object())
{
if (parsed.contains("queue") && parsed["queue"].is_array())
queue_ = parsed["queue"];
if (parsed.contains("runner") && parsed["runner"].is_object())
runner_ = parsed["runner"];
}
}
catch (...)
{
queue_ = nlohmann::json::array();
if (parsed.contains("queue") && parsed["queue"].is_array())
queue_ = parsed["queue"];
if (parsed.contains("runner") && parsed["runner"].is_object())
runner_ = parsed["runner"];
}
ensureRunnerDefaults();
}
@@ -83,7 +76,7 @@ void MissionQueue::load()
void MissionQueue::saveUnlocked() const
{
const nlohmann::json payload = {{"queue", queue_}, {"runner", runner_}};
FileUtil::writeBinaryAtomic(queue_path_, payload.dump(2));
db_.setDocument("mission_queue", payload);
}
void MissionQueue::ensureRunnerDefaults()