From be548ff54b8fa60a8a778714cd8fa5326722c0aa Mon Sep 17 00:00:00 2001 From: David Athay Date: Thu, 5 Mar 2009 14:30:19 +0000 Subject: Added transactional history --- src/account-server/dalstorage.cpp | 79 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) (limited to 'src/account-server/dalstorage.cpp') diff --git a/src/account-server/dalstorage.cpp b/src/account-server/dalstorage.cpp index 55a31d3..a524fc3 100644 --- a/src/account-server/dalstorage.cpp +++ b/src/account-server/dalstorage.cpp @@ -41,7 +41,7 @@ // defines the supported db version #define DB_VERSION_PARAMETER "database_version" -#define SUPPORTED_DB_VERSION "2" +#define SUPPORTED_DB_VERSION "3" /** @@ -1006,6 +1006,7 @@ void DALStorage::setMemberRights(int guildId, int memberId, int rights) << " set rights = '" << rights << "'" << " where member_id = \"" << memberId << "\";"; + mDb->execSql(sql.str()); } catch (const dal::DbSqlQueryExecFailure& e) { @@ -1627,3 +1628,79 @@ void DALStorage::setOnlineStatus(int charId, bool online) LOG_ERROR("(DALStorage::setOnlineStatus) SQL query failure: " << e.what()); } } + +void DALStorage::addTransaction(const Transaction &trans) +{ + try + { + std::stringstream sql; + sql << "INSERT INTO " << TRANSACTION_TBL_NAME + << " VALUES (" << trans.mCharacterId << ", " << trans.mAction + << ", '" << trans.mMessage << "', " << time(NULL) << ")"; + mDb->execSql(sql.str()); + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::addTransaction) SQL query failure: " << e.what()); + } +} + +std::vector DALStorage::getTransactions(unsigned int num) +{ + std::vector transactions; + string_to toUint; + + try + { + std::stringstream sql; + sql << "SELECT * FROM " << TRANSACTION_TBL_NAME; + dal::RecordSet const &rec = mDb->execSql(sql.str()); + + int size = rec.rows(); + int start = size - num; + // Get the last records and store them in transactions + for (int i = start; i < size; ++i) + { + Transaction trans; + trans.mCharacterId = toUint(rec(i, 0)); + trans.mAction = toUint(rec(i, 1)); + trans.mMessage = rec(i, 2); + transactions.push_back(trans); + } + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::getTransactions) SQL query failure: " << e.what()); + } + + return transactions; +} + +std::vector DALStorage::getTransactions(time_t date) +{ + std::vector transactions; + string_to toUint; + + try + { + std::stringstream sql; + sql << "SELECT * FROM " << TRANSACTION_TBL_NAME << " WHERE time > " + << date; + dal::RecordSet const &rec = mDb->execSql(sql.str()); + + for (int i = 0; i < rec.rows(); ++i) + { + Transaction trans; + trans.mCharacterId = toUint(rec(i, 0)); + trans.mAction = toUint(rec(i, 1)); + trans.mMessage = rec(i, 2); + transactions.push_back(trans); + } + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::getTransactions) SQL query failure: " << e.what()); + } + + return transactions; +} -- cgit