filterprocess debug 모드 추가

git-svn-id: svn://192.168.0.12/source@321 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2016-11-28 10:20:10 +00:00
parent a2c55d909b
commit 60f692f641
11 changed files with 135 additions and 38 deletions

View File

@@ -24,7 +24,8 @@ SOURCES += main.cpp \
sinfluencer.cpp \
sspammer.cpp \
spowercafe.cpp \
shttpsender.cpp
shttpsender.cpp \
sservice.cpp
HEADERS += \
sdbmanager.h \

View File

@@ -48,6 +48,7 @@ bool SConsumer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QList
for (int i = 0; i < SInitializer::E_ARTICLE_MAX; i++)
bFiltered[i] = false;
_datagroup.copyData(vecData);
m_pSInitializer->insertCategoryLog(QString("Consumer Category: ") + m_pSInitializer->getCategoryName(_nCategory));
foreach (const SInitializer::stFilter& filter, _listFilter)
{
switch(filter.m_nType)
@@ -71,9 +72,14 @@ bool SConsumer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QList
m_SFilterAlgorithm.FilterCounter(vecData, bFiltered, filter.m_vData.toString());
break;
}
m_pSInitializer->insertCategoryLog("Body: " + QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + ", " +
"Reply: " + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ", " +
SService::convertJsonToStr(filter.m_nType, filter.m_vData.toString()));
}
stReal streal;
m_pSInitializer->insertLog(QString("CategoryNum:") + QString::number(_nCategory) + ",(" +
m_pSInitializer->insertLog(QString("Category:") + m_pSInitializer->getCategoryName(_nCategory) + ",(" +
QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + '/' + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ")" + "(Body/Reply)" );
const int *anColumn = m_pSInitializer->getColumnIntArray();
if (bFiltered[SInitializer::E_ARTICLE_BODY])

View File

@@ -4,12 +4,15 @@
#include "sfilteralgorithm.h"
#include "../Json/sjson.h"
#include <QDebug>
#include <iostream>
using namespace std;
/*
void FilterSearch(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson);
void FilterCounter(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson);
void FilterReplace(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson);
void FilterDate(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson, int _nDateColumn);
void FilterLength(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson);
*/
void SFilterAlgorithm::FilterDate(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson, int _nDateColumn)
{
@@ -37,6 +40,7 @@ void SFilterAlgorithm::FilterDate(QVector<QStringList> *m_data, bool *m_bDataFla
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
//cout << ((nSelect == 0) ? "body" : "reply") << ":" << m_data[nSelect].size() << endl;
}
void SFilterAlgorithm::FilterLength(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson)
@@ -77,6 +81,8 @@ void SFilterAlgorithm::FilterLength(QVector<QStringList> *m_data, bool *m_bDataF
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
//cout << ((nSelect == 0) ? "body" : "reply") << ":" << m_data[nSelect].size() << endl;
}
void SFilterAlgorithm::FilterCounter(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson)
@@ -135,6 +141,8 @@ void SFilterAlgorithm::FilterCounter(QVector<QStringList> *m_data, bool *m_bData
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
//cout << ((nSelect == 0) ? "body" : "reply") << ":" << m_data[nSelect].size() << endl;
}
void SFilterAlgorithm::FilterReplace(QVector<QStringList> *m_data, bool *m_bDataFlag, QString _strJson)
@@ -238,6 +246,7 @@ void SFilterAlgorithm::FilterSearch(QVector<QStringList> *m_data, bool *m_bDataF
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
//cout << ((nSelect == 0) ? "body" : "reply") << ":" << m_data[nSelect].size() << endl;
m_vecKeyword.clear();
}
}

View File

@@ -4,6 +4,7 @@
#include "../common.h"
class QString;
class QStringList;
class SInitializer;
class SFilterAlgorithm
{
private:

View File

@@ -41,6 +41,7 @@ bool SFilterProcess::run()
}
case E_PROCSS_TYPE_CATEGORY_MAKE:
{
m_SInitializer.insertCategoryLog("FilterGroupName: " + process.m_strFilterGroupName);
switch(process.m_nServiceNum)
{
case E_SERVICE_INFLUENCER:
@@ -72,6 +73,8 @@ bool SFilterProcess::run()
break;
}
case E_PROCSS_TYPE_SEND:
{
if (m_SInitializer.isUpload())
{
m_SConsumerMarketer.makeTable(m_SDatagroup);
m_SConsumerCheckList.makeTable(m_SDatagroup);
@@ -104,7 +107,14 @@ bool SFilterProcess::run()
m_SDatagroup.getstDate()->m_strMaxdate, m_SDatagroup.getstDate()->m_strLastupdate,
m_SDatagroup.getCounts()->m_nFilterBodyCount, m_SDatagroup.getCounts()->m_nFilterReplyCount,
process.m_nCompanyNum);
m_SInitializer.insertLog("Upload Done");
m_nCompany = process.m_nCompanyNum;
}
else
{
m_nCompany = -100;
m_SInitializer.insertLog("No Upload");
}
break;
}
}

View File

@@ -99,6 +99,7 @@ bool SInfluencer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLi
for (int i = 0; i < SInitializer::E_ARTICLE_MAX; i++)
bFiltered[i] = false;
_datagroup.copyData(vecData);
m_pSInitializer->insertCategoryLog(QString("Influencer Category: ") + m_pSInitializer->getCategoryName(_nCategory));
foreach (SInitializer::stFilter filter, _listFilter)
{
switch(filter.m_nType)
@@ -122,9 +123,12 @@ bool SInfluencer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLi
m_SFilterAlgorithm.FilterCounter(vecData, bFiltered, filter.m_vData.toString());
break;
}
m_pSInitializer->insertCategoryLog("Body: " + QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + ", " +
"Reply: " + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ", " +
SService::convertJsonToStr(filter.m_nType, filter.m_vData.toString()));
}
stReal streal;
m_pSInitializer->insertLog(QString("CategoryNum:") + QString::number(_nCategory) + ",(" +
m_pSInitializer->insertLog(QString("Category:") + m_pSInitializer->getCategoryName(_nCategory) + ",(" +
QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + '/' + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ")" + "(Body/Reply)" );
const int *anColumn = m_pSInitializer->getColumnIntArray();
if (bFiltered[SInitializer::E_ARTICLE_BODY])

View File

@@ -98,9 +98,10 @@ bool SInitializer::enableSettings(QSqlDatabase& db, int _nMode)
void SInitializer::updateWebDBInfoState(QSqlDatabase &_db, int _nCompany, QString _strStatus)
{
QString strQuery = "update dbinfo set "
"status = '" + _strStatus + "' "
"info = '" + _strStatus + "' "
"where company_num = " + QString::number(_nCompany);
_db.exec(strQuery.toUtf8());
QSqlQuery query(_db);
query.exec(strQuery);
}
void SInitializer::updateWebDBInfoComplete(QSqlDatabase _db, QString _mindate, QString _maxdate, QString _lastupdate, int _bodycount, int _replycount, int _nCompany)
@@ -148,6 +149,32 @@ bool SInitializer::initDays()
return true;
}
bool SInitializer::initUpload()
{
QSettings settings(QString("setup.ini"), QSettings::IniFormat);
settings.setIniCodec("UTF-8");
settings.beginGroup(QString("settings"));
if (settings.childKeys().size() == 0)
{
m_bUpload = true;
return true;
}
QString strOk = settings.value("upload", "o").toString().trimmed();
if (strOk.startsWith('o', Qt::CaseInsensitive))
m_bUpload = true;
else
m_bUpload = false;
settings.endGroup();
return true;
}
bool SInitializer::isUpload()
{
return m_bUpload;
}
bool SInitializer::initSpammer()
{
QSettings settings(QString("setup.ini"), QSettings::IniFormat);
@@ -239,6 +266,7 @@ bool SInitializer::init(const QString& _strFilterProcessGroupID, const QString&
b_ok &= initCategory();
b_ok &= initConsumerMarketer();
b_ok &= initConsumerCheckList();
b_ok &= initUpload();
/*
if (!b_ok)
@@ -259,7 +287,7 @@ bool SInitializer::initInfluencer()
bool SInitializer::initFilterProcess()
{
QString strQuery = QString("select filterprocess_type,datagroup_id,filtergroup_id,company_num,category_num,filterprocess_order,service_num "
QString strQuery = QString("select filterprocess_type,datagroup_id,filtergroup_id,company_num,category_num,filterprocess_order,service_num,filtergroup_name "
"from filterprocess where filterprocessgroup_id = ") + QString::number(m_stFilterProcessGroup.m_nFilterProcessGroupID);
QSqlQuery query(m_sDBManager[SDBManager::E_DATABASE_DATA]);
@@ -281,6 +309,7 @@ bool SInitializer::initFilterProcess()
stfilterprocess.m_nCategoryNum = query.value(4).toInt();
stfilterprocess.m_nFilterProcessOrder = query.value(5).toInt();
stfilterprocess.m_nServiceNum = query.value(6).toInt();
stfilterprocess.m_strFilterGroupName = query.value(7).toString();
m_listFilterProcess.append(stfilterprocess);
}
@@ -585,6 +614,24 @@ void SInitializer::insertLog(const QString& _strMsg) const
file.close();
}
void SInitializer::insertCategoryLog(const QString& _strMsg) const
{
/*
cout << "[";
cout << m_stFilterProcessGroup.m_strFilterProcessGroupName.toStdString();
cout << "] ";
cout << _strMsg.toStdString() << endl;
*/
QFile file(m_stFilterProcessGroup.m_strFilterProcessGroupName + "_category." + QDate::currentDate().toString(Qt::ISODate)+".log");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
return;
QTextStream out(&file);
out << QTime::currentTime().toString("[hh:mm:ss] ") << _strMsg << "\n";
file.close();
}
QSqlDatabase SInitializer::getDatabase(const QString& _dbName) const
{
return m_sDBManager[_dbName];

View File

@@ -31,6 +31,7 @@ private:
bool initBlogPageNum();
bool initConsumerMarketer();
bool initConsumerCheckList();
bool initUpload();
public:
@@ -99,11 +100,13 @@ public:
QString m_strPassword;
QString m_strDBName;
};
struct stFilterProcessGroup
{
int m_nFilterProcessGroupID;
QString m_strFilterProcessGroupName;
};
struct stInfluencerParam
{
double m_dBody;
@@ -122,6 +125,7 @@ public:
}
}
};
struct stColumn
{
QStringList m_slColumn;
@@ -132,6 +136,7 @@ public:
m_anColumn[i] = -1;
}
};
struct stFilterProcess
{
int m_nDatagroupID;
@@ -141,6 +146,7 @@ public:
int m_nFilterProcessType;
int m_nCompanyNum;
int m_nServiceNum;
QString m_strFilterGroupName;
};
struct stFilter
@@ -154,6 +160,7 @@ public:
m_nFilterGroupID = -1;
}
};
struct stPlatform
{
QMap<QString, int> m_mapPlatformName;
@@ -184,10 +191,12 @@ private:
QMap<int, QString> m_mapConsumerMaketers;
QMap<int, QString> m_mapConsumerCheckListUser;
QStringList m_slConsumerCheckList;
bool m_bUpload;
public:
bool init(const QString& _strFilterProcessGroupID, const QString& _strFilterProcessGroupName);
void insertLog(const QString& _strMsg) const;
void insertCategoryLog(const QString& _strMsg) const;
QSqlDatabase getDatabase(const QString& _dbName) const;
QSqlDatabase getDatabase(const SDBManager::E_DATABASE& _eDatabase) const;
int getDataGroupNumber() const;
@@ -216,6 +225,7 @@ public:
QMap<int, QString> getConsumerMaketer();
QStringList getConsumerCheckList();
QMap<int, QString> getConsumerCheckListUser();
bool isUpload();
//bool disableIndex(QSqlDatabase& db, QString _tableName, QStringList _strIndexNames, int _nMode = MODE);
//bool enableIndex(QSqlDatabase& db, QString _tableName, QStringList _strIndexNames, int _nMode = MODE);
//bool disableSettings(QSqlDatabase& db, int _nMode = MODE);

View File

@@ -100,6 +100,7 @@ bool SPowercafe::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLis
for (int i = 0; i < SInitializer::E_ARTICLE_MAX; i++)
bFiltered[i] = false;
_datagroup.copyData(vecData);
m_pSInitializer->insertCategoryLog(QString("PowerCafe Category: ") + m_pSInitializer->getCategoryName(_nCategory));
foreach (const SInitializer::stFilter& filter, _listFilter)
{
switch(filter.m_nType)
@@ -123,9 +124,12 @@ bool SPowercafe::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLis
m_SFilterAlgorithm.FilterCounter(vecData, bFiltered, filter.m_vData.toString());
break;
}
m_pSInitializer->insertCategoryLog("Body: " + QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + ", " +
"Reply: " + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ", " +
SService::convertJsonToStr(filter.m_nType, filter.m_vData.toString()));
}
stReal streal;
m_pSInitializer->insertLog(QString("CategoryNum:") + QString::number(_nCategory) + ",(" +
m_pSInitializer->insertLog(QString("Category:") + m_pSInitializer->getCategoryName(_nCategory) + ",(" +
QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + '/' + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ")" + "(Body/Reply)" );
const int *anColumn = m_pSInitializer->getColumnIntArray();
if (bFiltered[SInitializer::E_ARTICLE_BODY])

View File

@@ -2,7 +2,7 @@
#define SSERVICE
#include "sinitializer.h"
#include "sdatagroup.h"
#include <QString>
class SService
{
protected:
@@ -14,6 +14,7 @@ public:
virtual bool makeCategory(SDatagroup &_datagroup, int _nCategory, const QList<SInitializer::stFilter> &_listFilter) = 0;
virtual bool makeOverallCategory(int _categoryNum) = 0;
virtual bool makeTable(SDatagroup &_datagroup) = 0;
QString convertJsonToStr(int _nSelect, const QString& _strJson);
};
#endif // SSERVICE

View File

@@ -93,6 +93,7 @@ bool SSpammer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QList<
for (int i = 0; i < SInitializer::E_ARTICLE_MAX; i++)
bFiltered[i] = false;
_datagroup.copyData(vecData);
m_pSInitializer->insertCategoryLog(QString("Spammer Category: ") + m_pSInitializer->getCategoryName(_nCategory));
foreach (const SInitializer::stFilter& filter, _listFilter)
{
switch(filter.m_nType)
@@ -116,9 +117,12 @@ bool SSpammer::makeCategory(SDatagroup &_datagroup, int _nCategory, const QList<
m_SFilterAlgorithm.FilterCounter(vecData, bFiltered, filter.m_vData.toString());
break;
}
m_pSInitializer->insertCategoryLog("Body: " + QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + ", " +
"Reply: " + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ", " +
SService::convertJsonToStr(filter.m_nType, filter.m_vData.toString()));
}
stReal streal;
m_pSInitializer->insertLog(QString("CategoryNum:") + QString::number(_nCategory) + ",(" +
m_pSInitializer->insertLog(QString("Category:") + m_pSInitializer->getCategoryName(_nCategory) + ",(" +
QString::number(vecData[SInitializer::E_ARTICLE_BODY].size()) + '/' + QString::number(vecData[SInitializer::E_ARTICLE_REPLY].size()) + ")" + "(Body/Reply)" );
const int *anColumn = m_pSInitializer->getColumnIntArray();
if (bFiltered[SInitializer::E_ARTICLE_BODY])