#include "sresultsender.h" #include "sutilfunction.h" #include #include #include #include #include #include #include #include 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(":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; }