Files
clients/EffectProcess/sresultsender.cpp

114 lines
3.6 KiB
C++

#include "sresultsender.h"
#include "sutilfunction.h"
#include <QSqlDatabase>
#include <QSettings>
#include <QSqlError>
#include <QSqlQuery>
#include <QString>
#include <QVariant>
#include <QDebug>
#include <iostream>
namespace
{
const QString SEPERATOR = "!@#";
}
class DBContainer
{
public:
DBContainer(QSqlDatabase& _db):m_db(_db)
{
}
~DBContainer()
{
m_db.close();
}
private:
QSqlDatabase &m_db;
};
namespace
{
const QString DBNAME = "effectprocess";
}
SResultSender::SResultSender(QObject* parent):QObject(parent)
{
init();
}
void SResultSender::init()
{
databaseSetting(DBNAME);
}
bool SResultSender::send(const State_s1_effect& _result)
{
QSqlDatabase db = QSqlDatabase::database(DBNAME);
if (!db.open())
{
emit signalError(E_ERROR_CODE::DB_OPEN_ERROR, db.lastError().text());
return false;
}
DBContainer container(db);
/*
QString strQuery = "delete from stats_s1_effect where event_num = " + QString::number(_result.event_num);
QSqlQuery query(db);
if (!query.exec(strQuery))
{
emit signalError(E_ERROR_CODE::DB_QUERY_ERROR, query.lastError().text() + "\n" + query.lastQuery());
return false;
}
*/
/*
strQuery = "insert into " + _table_name + " ("
"event_num,replybuzz,replycount,likecount,interactioncount,engagementcount) "
"values ";
strQuery += QString::number(_result.event_num) + ",";
strQuery += "'" + _result.replybuzz + "',";
strQuery += QString::number(_result.replycount) + ",";
strQuery += QString::number(_result.likecount) + ",";
strQuery += QString::number(_result.interactioncount) + ",";
strQuery += QString::number(_result.engagementcount) + ")";
strQuery += " on duplicate key update replybuzz = '" + _result.replybuzz + "', ";
strQuery += "likecount = " + QString::number(_result.likecount) + ",";
strQuery += "replycount = " + QString::number(_result.replycount) + ",";
strQuery += "interactioncount = " + QString::number(_result.interactioncount) + ",";
strQuery += "engagementcount = " + QString::number(_result.engagementcount);
*/
QString strQuery =
"insert into stats_s1_effect ("
"event_num,replybuzz,replycount,likecount,interactioncount,engagementcount,lastupdate_filter,status) "
"values "
"(:event_num,:replybuzz,:replycount,:likecount,:interactioncount,:engagementcount,:lastupdate_filter,'OK') "
"on duplicate key update replybuzz = :replybuzz, replycount = :replycount,"
"likecount = :likecount, interactioncount = :interactioncount,"
"engagementcount = :engagementcount, lastupdate_filter = :lastupdate_filter, status = 'OK'";
QSqlQuery query(db);
query.prepare(strQuery);
query.bindValue(":event_num", _result.event_num);
// query.bindValue(":replybuzz", _result.replybuzz);
query.bindValue(":replybuzz", _result.totalbuzz);
query.bindValue(":replycount", _result.replycount);
query.bindValue(":likecount", _result.likecount);
query.bindValue(":interactioncount", _result.interactioncount);
query.bindValue(":engagementcount", _result.engagementcount);
query.bindValue(":lastupdate_filter", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
if (!query.exec())
{
emit signalError(E_ERROR_CODE::DB_QUERY_ERROR, query.lastError().text() + "\n" + query.lastQuery());
return false;
}
return true;
}