实现削峰套利策略的编辑页面

This commit is contained in:
lixiaoyuan
2025-08-26 18:36:25 +08:00
parent 7fe51ea362
commit 8f6c83147b
37 changed files with 1506 additions and 729 deletions

View File

@@ -50,12 +50,16 @@ void MysqlClient::close()
bool MysqlClient::exec(std::string sql)
{
//XLOGD() << "Mysql exec sql=" << sql;
if (!mysql_)
{
XLOGE() << "Mysql exec error, database is not connected.";
return false;
}
if (sql.empty())
{
XLOGE() << "Mysql exec error, sql is empty.";
return false;
}
int ret = mysql_query(mysql_, sql.c_str());
if (0 != ret)
{
@@ -68,28 +72,18 @@ bool MysqlClient::exec(std::string sql)
bool MysqlClient::exec(std::string sql, vector<Fields>& result)
{
result.clear();
if (!mysql_)
bool ret = MysqlClient::exec(sql);
if (!ret)
{
return false;
}
int ret = mysql_query(mysql_, sql.c_str());
if (0 != ret)
{
//Spdlogger::error("[mysql] mysql_query failed!! error ret={:d}, sql={}", ret, sql);
XLOGE() << "mysql error: " << sql;
return false;
}
else
{
//Spdlogger::info("[mysql] query success. sql={}", sql);
}
MYSQL_RES* res = mysql_store_result(mysql_);
if (!res)
{
return false;
}
vector<string> field_names;
vector<string> fieldNames;
while (true)
{
MYSQL_FIELD* field = mysql_fetch_field(res);
@@ -97,7 +91,7 @@ bool MysqlClient::exec(std::string sql, vector<Fields>& result)
{
break;
}
field_names.push_back(field->name);
fieldNames.push_back(field->name);
}
while (true)
@@ -108,13 +102,13 @@ bool MysqlClient::exec(std::string sql, vector<Fields>& result)
break;
}
Fields row_data;
for (size_t i = 0; i < field_names.size(); ++i)
Fields rowData;
for (size_t i = 0; i < fieldNames.size(); ++i)
{
string field_text = (row[i] == NULL) ? "" : row[i];
row_data.set(field_names[i], field_text);
rowData.set(fieldNames[i], field_text);
}
result.push_back(row_data);
result.push_back(rowData);
}
// 释放结果集