diff --git a/src/character_creation_worker.cpp b/src/character_creation_worker.cpp index 7f381c8..2dd3793 100644 --- a/src/character_creation_worker.cpp +++ b/src/character_creation_worker.cpp @@ -17,7 +17,7 @@ CharacterCreationWorker::~CharacterCreationWorker() { void CharacterCreationWorker::run() { while (runningWorker) { setCurrentStep("Check if previous day character was created"); - if (!isPreviousDayCharacterCreated()) { + if (!isTodayCharacterCreated()) { setCurrentStep("Create characters for today"); createCharactersForToday(); } @@ -31,21 +31,19 @@ void CharacterCreationWorker::run() { } } -bool CharacterCreationWorker::isPreviousDayCharacterCreated() { +bool CharacterCreationWorker::isTodayCharacterCreated() { try { setCurrentStep("Get Database Connection"); ConnectionGuard connGuard(pool); auto &db = connGuard.get(); - setCurrentStep("Execute Query"); auto results = db.query(QUERY_IS_PREVIOUS_DAY_CHARACTER_CREATED); - if (!results.empty()) { std::string created_at_str = results[0].at("created_at"); return true; } } catch (const std::exception &e) { - std::cerr << "[CharacterCreationWorker] Fehler in isPreviousDayCharacterCreated: " + std::cerr << "[CharacterCreationWorker] Fehler in isTodayCharacterCreated: " << e.what() << std::endl; } setCurrentStep("No previous day character found"); @@ -97,10 +95,10 @@ void CharacterCreationWorker::createCharacter(int region_id, db.prepare("insert_character", QUERY_INSERT_CHARACTER); db.execute("insert_character", {std::to_string(region_id), - std::to_string(first_name_id), - std::to_string(last_name_id), - gender, - std::to_string(title_of_nobility)}); + std::to_string(first_name_id), + std::to_string(last_name_id), + gender, + std::to_string(title_of_nobility)}); } catch (const std::exception &e) { std::cerr << "[CharacterCreationWorker] Fehler in createCharacter: " << e.what() << std::endl; diff --git a/src/character_creation_worker.h b/src/character_creation_worker.h index 0b7367e..18ead74 100644 --- a/src/character_creation_worker.h +++ b/src/character_creation_worker.h @@ -21,7 +21,7 @@ private: std::unordered_map> first_name_cache; std::unordered_set last_name_cache; - bool isPreviousDayCharacterCreated(); + bool isTodayCharacterCreated(); void createCharactersForToday(); void createCharactersForRegion(int region_id); void createCharacter(int region_id, const std::string &gender, int title_of_nobility); @@ -33,6 +33,7 @@ private: SELECT created_at FROM falukant_data."character" WHERE user_id IS NULL + AND created_at::date = CURRENT_DATE ORDER BY created_at DESC LIMIT 1; )"; @@ -59,6 +60,6 @@ private: user_id, region_id, first_name, last_name, birthdate, gender, created_at, updated_at, title_of_nobility ) - VALUES ($1, $2, $3, $4, NOW(), $5, NOW(), NOW(), $6); + VALUES (NULL, $1, $2, $3, NOW(), $4, NOW(), NOW(), $5); )"; };