hlp:荆州版本

This commit is contained in:
kite_lucs
2026-10-19 17:03:47 +08:00
parent e533ea8e0b
commit 065b146998
438 changed files with 163143 additions and 185387 deletions
+159 -159
View File
@@ -1,159 +1,159 @@
#include "dbredis.h"
#include <QDateTime>
QSqlDatabase DBRedis::m_DataBase;
QString DBRedis::m_ConnectName = "dbredis";
bool DBRedis::m_HasInit = false;
DBRedis::DBRedis()
{
}
DBRedis::~DBRedis()
{
if (m_DataBase.isOpen())
{
m_DataBase.close();
}
}
int DBRedis::deleteExpiredEntries()
{
int res = init();
if (res)
{
return res;
}
qint64 currentTimestamp = QDateTime::currentDateTime().toSecsSinceEpoch();
QSqlQuery query(m_DataBase);
query.prepare("DELETE FROM data_store WHERE expiry > 0 AND expiry < :currentTimestamp");
query.bindValue(":currentTimestamp", currentTimestamp);
if (!query.exec())
{
qDebug() << "Error deleting expired entries:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::setData(const QString & key, const QString & value, uint32_t expiry)
{
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("SELECT COUNT(*) FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error checking existing key";
return 1;
}
int count = 0;
while (query.next())
{
count += query.value(0).toInt();
}
if (count > 0)
{
query.prepare("UPDATE data_store SET value = :value, expiry = :expiry WHERE key = :key");
query.bindValue(":value", value);
query.bindValue(":expiry", expiry > 0 ? QDateTime::currentDateTime().toSecsSinceEpoch() + expiry : 0);
query.bindValue(":key", key);
}
else
{
query.prepare("INSERT INTO data_store (key, value, expiry) VALUES (:key, :value, :expiry)");
query.bindValue(":key", key);
query.bindValue(":value", value);
query.bindValue(":expiry", expiry > 0 ? QDateTime::currentDateTime().toSecsSinceEpoch() + expiry : 0);
}
if (!query.exec())
{
qDebug() << "Error setting value:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::getData(const QString & key, QString & value)
{
value.clear();
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("SELECT value FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error getting value:" << query.lastError().text();
return 1;
}
if (!query.next())
{
qDebug() << "Error getting value:" << query.lastError().text();
return 2;
}
value = query.value(0).toString();
return 0;
}
int DBRedis::deleteData(const QString & key)
{
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("DELETE FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error deleting value:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::init()
{
if (m_HasInit)
{
return 0;
}
m_DataBase = QSqlDatabase::addDatabase("QSQLITE", m_ConnectName);
// m_DataBase.setDatabaseName("dbredis.db");
m_DataBase.setDatabaseName("/home/plg/conf/sysPara.db");
if (m_DataBase.open())
{
QString table = "CREATE TABLE IF NOT EXISTS data_store(key TEXT, value TEXT, expiry INTEGER)";
QSqlQuery query(QSqlDatabase::database(m_ConnectName));
if (!query.exec(table.toUtf8()))
{
qDebug() << "Error deleting value:" << query.lastError().text();
return 1;
}
}
else
{
qDebug() << "Error db open fail";
return 3;
}
m_HasInit = true;
return 0;
}
#include "dbredis.h"
#include <QDateTime>
QSqlDatabase DBRedis::m_DataBase;
QString DBRedis::m_ConnectName = "dbredis";
bool DBRedis::m_HasInit = false;
DBRedis::DBRedis()
{
}
DBRedis::~DBRedis()
{
if (m_DataBase.isOpen())
{
m_DataBase.close();
}
}
int DBRedis::deleteExpiredEntries()
{
int res = init();
if (res)
{
return res;
}
qint64 currentTimestamp = QDateTime::currentDateTime().toSecsSinceEpoch();
QSqlQuery query(m_DataBase);
query.prepare("DELETE FROM data_store WHERE expiry > 0 AND expiry < :currentTimestamp");
query.bindValue(":currentTimestamp", currentTimestamp);
if (!query.exec())
{
qDebug() << "Error deleting expired entries:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::setData(const QString & key, const QString & value, uint32_t expiry)
{
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("SELECT COUNT(*) FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error checking existing key";
return 1;
}
int count = 0;
while (query.next())
{
count += query.value(0).toInt();
}
if (count > 0)
{
query.prepare("UPDATE data_store SET value = :value, expiry = :expiry WHERE key = :key");
query.bindValue(":value", value);
query.bindValue(":expiry", expiry > 0 ? QDateTime::currentDateTime().toSecsSinceEpoch() + expiry : 0);
query.bindValue(":key", key);
}
else
{
query.prepare("INSERT INTO data_store (key, value, expiry) VALUES (:key, :value, :expiry)");
query.bindValue(":key", key);
query.bindValue(":value", value);
query.bindValue(":expiry", expiry > 0 ? QDateTime::currentDateTime().toSecsSinceEpoch() + expiry : 0);
}
if (!query.exec())
{
qDebug() << "Error setting value:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::getData(const QString & key, QString & value)
{
value.clear();
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("SELECT value FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error getting value:" << query.lastError().text();
return 1;
}
if (!query.next())
{
qDebug() << "Error getting value:" << query.lastError().text();
return 2;
}
value = query.value(0).toString();
return 0;
}
int DBRedis::deleteData(const QString & key)
{
int res = deleteExpiredEntries();
if (res)
{
return res;
}
QSqlQuery query(m_DataBase);
query.prepare("DELETE FROM data_store WHERE key = :key");
query.bindValue(":key", key);
if (!query.exec())
{
qDebug() << "Error deleting value:" << query.lastError().text();
return 1;
}
return 0;
}
int DBRedis::init()
{
if (m_HasInit)
{
return 0;
}
m_DataBase = QSqlDatabase::addDatabase("QSQLITE", m_ConnectName);
// m_DataBase.setDatabaseName("dbredis.db");
m_DataBase.setDatabaseName("/home/plg/conf/sysPara.db");
if (m_DataBase.open())
{
QString table = "CREATE TABLE IF NOT EXISTS data_store(key TEXT, value TEXT, expiry INTEGER)";
QSqlQuery query(QSqlDatabase::database(m_ConnectName));
if (!query.exec(table.toUtf8()))
{
qDebug() << "Error deleting value:" << query.lastError().text();
return 1;
}
}
else
{
qDebug() << "Error db open fail";
return 3;
}
m_HasInit = true;
return 0;
}