카테고리 업데이트 된 필터 프로세스 (아직 미완성)

git-svn-id: svn://192.168.0.12/source@274 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2016-06-03 09:51:17 +00:00
parent 994b1bec76
commit 9026343ba2
9 changed files with 345 additions and 42 deletions

View File

@@ -5,6 +5,10 @@
#include <QDebug> #include <QDebug>
#include <QDateTime> #include <QDateTime>
#include <QDate> #include <QDate>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonValue>
bool SConsumer::uploadData(int _companyNum) bool SConsumer::uploadData(int _companyNum)
{ {
@@ -17,11 +21,20 @@ bool SConsumer::uploadData(int _companyNum)
m_pSInitializer->insertLog("Fail to upload body_consumer_map"); m_pSInitializer->insertLog("Fail to upload body_consumer_map");
return false; return false;
} }
/*
if (!m_SStatsConUserBuzzybyday.uploadData(dbWeb, _companyNum)) if (!m_SStatsConUserBuzzybyday.uploadData(dbWeb, _companyNum))
{ {
m_pSInitializer->insertLog("Fail to upload stats_con_user_buzzbyday"); m_pSInitializer->insertLog("Fail to upload stats_con_user_buzzbyday");
return false; return false;
} }
*/
if (!m_SStatsJson.uploadData(dbWeb, _companyNum))
{
m_pSInitializer->insertLog("Fail to upload stats_json");
return false;
}
m_pSInitializer->insertLog("End Consumer upload"); m_pSInitializer->insertLog("End Consumer upload");
m_pSInitializer->updateWebDBInfoState(dbWeb, _companyNum, "Consumer (Finish)"); m_pSInitializer->updateWebDBInfoState(dbWeb, _companyNum, "Consumer (Finish)");
return true; return true;
@@ -105,7 +118,8 @@ void SConsumer::setInitiaizer(SInitializer &_initializer)
{ {
m_pSInitializer = &_initializer; m_pSInitializer = &_initializer;
m_SBodyConsumerMap.setInitiaizer(_initializer); m_SBodyConsumerMap.setInitiaizer(_initializer);
m_SStatsConUserBuzzybyday.setInitiaizer(_initializer); //m_SStatsConUserBuzzybyday.setInitiaizer(_initializer);
m_SStatsJson.setInitiaizer(_initializer);
} }
bool SConsumer::makeOverallCategory(int _nCategory) bool SConsumer::makeOverallCategory(int _nCategory)
@@ -140,8 +154,9 @@ bool SConsumer::makeTable(SDatagroup &_datagroup)
m_pSInitializer->insertLog("Make Consumer Tables"); m_pSInitializer->insertLog("Make Consumer Tables");
m_SBodyConsumerMap.makeTable(_datagroup, m_mapCategory); m_SBodyConsumerMap.makeTable(_datagroup, m_mapCategory);
m_pSInitializer->insertLog("Make Body Tables"); m_pSInitializer->insertLog("Make Body Tables");
m_SStatsConUserBuzzybyday.makeTable(_datagroup, m_mapCategory); //m_SStatsConUserBuzzybyday.makeTable(_datagroup, m_mapCategory);
m_pSInitializer->insertLog("Make Reply Tables"); m_SStatsJson.makeTable(_datagroup, m_mapCategory);
m_pSInitializer->insertLog("Make stats_json Tables");
} }
return true; return true;
} }
@@ -325,9 +340,229 @@ void SConsumer::SReplyConsumerMap::makeTable(SDatagroup &_datagroup, const QMap<
} }
} }
void SConsumer::SStatsJson::makeTable(SDatagroup &_datagroup, const QMap<int, stReal> &_mapCategory)
{
const QMap<QString, QStringList>* mapBody = _datagroup.getmapBody();
const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply();
const int* anColumn = m_pSInitializer->getColumnIntArray();
QDate dateStart(2100,1,1),dateEnd(2000,1,1);
QList<stBuzzy> listBuzzy;
// filtered
{
for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++)
{
stBuzzy stbuzzy;
stbuzzy.m_nCategory = iterPos.key();
const stReal &streal = iterPos.value();
foreach (const QString& strUrl, streal.m_setRealBodyUrl)
{
QDate date = QDateTime::fromString((*mapBody)[strUrl.trimmed()][anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd HH:mm:ss").date();
//if (date.isNull())
// date = QDateTime::fromString((*mapBody)[strUrl.trimmed()][anColumn[SInitializer::E_DATA_article_date]].trimmed(), "yyyy-MM-dd HH:mm:ss").date();
if (date.year() == 1990)
continue;
dateStart = (date < dateStart ) ? date : dateStart;
dateEnd = (date > dateEnd ) ? date : dateEnd;
if (stbuzzy.m_mapBodyBuzz.contains(date))
stbuzzy.m_mapBodyBuzz[date]++;
else
stbuzzy.m_mapBodyBuzz.insert(date, 1);
}
for (QMap<QString, int>::const_iterator iterPos1 = streal.m_mapRealReplyUniqueUrl.constBegin(); iterPos1 != streal.m_mapRealReplyUniqueUrl.constEnd(); iterPos1++)
{
const QStringList &slReply = (*mapReply)[iterPos1.key()][iterPos1.value()];
QDate date = QDateTime::fromString(slReply[anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd HH:mm:ss").date();
if (date.year() == 1990)
continue;
dateStart = (date < dateStart ) ? date : dateStart;
dateEnd = (date > dateEnd ) ? date : dateEnd;
if (stbuzzy.m_mapReplyBuzz.contains(date))
stbuzzy.m_mapReplyBuzz[date]++;
else
stbuzzy.m_mapReplyBuzz.insert(date, 1);
}
listBuzzy.append(stbuzzy);
}
}
//all buzzy
{
stBuzzy stbuzzy;
stbuzzy.m_nCategory = 0;
for (QMap<QString, QStringList>::const_iterator iterPos = mapBody->constBegin(); iterPos != mapBody->constEnd(); iterPos++)
{
QDate date = QDateTime::fromString(iterPos.value()[anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd HH:mm:ss").date();
if (date.year() == 1990)
continue;
if (stbuzzy.m_mapBodyBuzz.contains(date))
stbuzzy.m_mapBodyBuzz[date]++;
else
stbuzzy.m_mapBodyBuzz.insert(date, 1);
}
for (QMap<QString, QMap<int, QStringList> >::const_iterator iterPos = mapReply->constBegin(); iterPos != mapReply->constEnd(); iterPos++)
{
for (QMap<int, QStringList>::const_iterator iterPos1 = iterPos.value().constBegin(); iterPos1 != iterPos.value().constEnd(); iterPos1++)
{
QDate date = QDateTime::fromString(iterPos1.value()[anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd HH:mm:ss").date();
if (date.year() == 1990)
continue;
if (stbuzzy.m_mapReplyBuzz.contains(date))
stbuzzy.m_mapReplyBuzz[date]++;
else
stbuzzy.m_mapReplyBuzz.insert(date, 1);
}
}
listBuzzy.append(stbuzzy);
}
{
QJsonArray jsArrayAll;
QJsonArray jsArrayReply;
QJsonArray jsArrayBody;
foreach (const stBuzzy &stbuzzy, listBuzzy)
{
QJsonArray jsValueAll;
QJsonArray jsValueBody;
QJsonArray jsValueReply;
for (QDate i = dateStart; i <= dateEnd; i = i.addDays(1))
{
QJsonObject jsoBody;
QJsonObject jsoAll;
QJsonObject jsoReply;
jsoAll["date"] = jsoReply["date"] = jsoBody["date"] = i.toString("yyyyMMdd");
jsoBody["count"] = stbuzzy.m_mapBodyBuzz[i];
jsoReply["count"] = stbuzzy.m_mapReplyBuzz[i];
jsoAll["count"] = stbuzzy.m_mapBodyBuzz[i] + stbuzzy.m_mapReplyBuzz[i];
jsValueAll.append(jsoAll);
jsValueBody.append(jsoBody);
jsValueReply.append(jsoReply);
}
QJsonObject jsNameReply;
QJsonObject jsNameAll;
QJsonObject jsNameBody;
if (stbuzzy.m_nCategory != 0)
jsNameReply["name"] = jsNameBody["name"] = jsNameAll["name"] = m_pSInitializer->getCategoryName(stbuzzy.m_nCategory);
else
jsNameReply["name"] = jsNameBody["name"] = jsNameAll["name"] = "ALL";
jsNameAll["value"] = jsValueAll;
jsNameBody["value"] = jsValueBody;
jsNameReply["value"] = jsValueReply;
jsArrayAll.append(jsNameAll);
jsArrayBody.append(jsNameBody);
jsArrayReply.append(jsNameReply);
}
stStatsJson stbodybuzz;
stStatsJson streplybuzz;
stStatsJson stallbuzz;
stallbuzz.title = streplybuzz.title = stbodybuzz.title = "buzz";
stbodybuzz.subtitle = "body";
streplybuzz.subtitle = "reply";
stallbuzz.subtitle = "all";
QJsonDocument jdAll(jsArrayAll);
QJsonDocument jdReply(jsArrayReply);
QJsonDocument jdBody(jsArrayBody);
stbodybuzz.jdata = jdBody.toJson();
streplybuzz.jdata = jdReply.toJson();
stallbuzz.jdata = jdAll.toJson();
streplybuzz.subpagenum = stallbuzz.subpagenum = stbodybuzz.subpagenum = 1;
stallbuzz.platformname_num = stbodybuzz.platformname_num = streplybuzz.platformname_num = 1;
m_listMap.append(stbodybuzz);
m_listMap.append(streplybuzz);
m_listMap.append(stallbuzz);
}
/*
{
for (QDate i = dateStart; i <= dateEnd; i = i.addDays(1))
{
//body
stStatsJson stbodybuzz;
stStatsJson streplybuzz;
stStatsJson stallbuzz;
foreach (const stBuzzy& stbuzzy, listBuzzy)
{
if (stbuzzy.m_mapBodyBuzz.contains(i))
{
stbodybuzz.category[stbuzzy.m_nCategory] = stbuzzy.m_mapBodyBuzz[i];
stallbuzz.category[stbuzzy.m_nCategory] += stbuzzy.m_mapBodyBuzz[i];
}
if (stbuzzy.m_mapReplyBuzz.contains(i))
{
streplybuzz.category[stbuzzy.m_nCategory] = stbuzzy.m_mapReplyBuzz[i];
stallbuzz.category[stbuzzy.m_nCategory] += stbuzzy.m_mapReplyBuzz[i];
}
}
stallbuzz.date = streplybuzz.date = stbodybuzz.date = i;
stbodybuzz.subtitle = "body";
streplybuzz.subtitle = "reply";
stallbuzz.subtitle = "all";
m_listMap.append(stallbuzz);
m_listMap.append(stbodybuzz);
m_listMap.append(streplybuzz);
}
}
*/
}
bool SConsumer::SStatsJson::uploadData(QSqlDatabase &_db, const int &_nCompany)
{
QSqlQuery query(_db);
{
QString strQuery = "delete from stats_json where company_num = " + QString::number(_nCompany) + " and servicenum = 2 and title = 'buzz'";
if (!query.exec(strQuery.toUtf8()))
{
m_pSInitializer->insertLog(query.lastQuery());
m_pSInitializer->insertLog(query.lastError().text());
return false;
}
}
foreach (const stStatsJson& ststats, m_listMap)
{
QString strQuery = "insert into stats_json (company_num, servicenum, subpagenum, title, subtitle, category_num, platformname_num, jdata) values (";
strQuery += QString::number(_nCompany) + ",";
strQuery += QString::number(ststats.servicenum) + ",";
strQuery += QString::number(ststats.subpagenum) + ",";
strQuery += "'" + ststats.title + "',";
strQuery += "'" + ststats.subtitle + "',";
strQuery += QString::number(ststats.category_num) + ",";
strQuery += QString::number(ststats.platformname_num) + ",";
strQuery += "'" + ststats.jdata +"')";
if (!query.exec(strQuery.toUtf8()))
{
m_pSInitializer->insertLog(query.lastQuery());
m_pSInitializer->insertLog(query.lastError().text());
return false;
}
}
return true;
}
/*
void SConsumer::SStatsConUserBuzzybyday::makeTable(SDatagroup &_datagroup, const QMap<int, stReal> &_mapCategory) void SConsumer::SStatsConUserBuzzybyday::makeTable(SDatagroup &_datagroup, const QMap<int, stReal> &_mapCategory)
{ {
/*
const QMap<QString, QStringList>* mapBody = _datagroup.getmapBody(); const QMap<QString, QStringList>* mapBody = _datagroup.getmapBody();
const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply(); const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply();
const int* anColumn = m_pSInitializer->getColumnIntArray(); const int* anColumn = m_pSInitializer->getColumnIntArray();
@@ -440,9 +675,9 @@ void SConsumer::SStatsConUserBuzzybyday::makeTable(SDatagroup &_datagroup, const
m_listMap.append(streplybuzz); m_listMap.append(streplybuzz);
} }
} }
*/
}
}
*/
/* /*
bool SConsumer::SStatsConUserBuzzybyday::changeTable(QSqlDatabase &_db, const int &_nCompany) bool SConsumer::SStatsConUserBuzzybyday::changeTable(QSqlDatabase &_db, const int &_nCompany)
{ {
@@ -503,7 +738,7 @@ bool SConsumer::SStatsConUserBuzzybyday::uploadData(QSqlDatabase &_db, const int
} }
*/ */
/*
bool SConsumer::SStatsConUserBuzzybyday::uploadData(QSqlDatabase &_db, const int &_nCompany) bool SConsumer::SStatsConUserBuzzybyday::uploadData(QSqlDatabase &_db, const int &_nCompany)
{ {
//_db.transaction(); //_db.transaction();
@@ -547,3 +782,4 @@ bool SConsumer::SStatsConUserBuzzybyday::uploadData(QSqlDatabase &_db, const int
//_db.commit(); //_db.commit();
return true; return true;
} }
*/

View File

@@ -3,6 +3,7 @@
#include "sservice.h" #include "sservice.h"
#include "sfilteralgorithm.h" #include "sfilteralgorithm.h"
#include <QDate> #include <QDate>
class SConsumer:public SService class SConsumer:public SService
{ {
public: public:
@@ -36,6 +37,7 @@ public:
int realin; int realin;
stReplyConsumerMap():num(0), reply_num(0), body_num(0), id_num(0), category_num(0), realin(0) {} stReplyConsumerMap():num(0), reply_num(0), body_num(0), id_num(0), category_num(0), realin(0) {}
}; };
/*
struct stStatsConUserBuzzybyday struct stStatsConUserBuzzybyday
{ {
int category[11]; int category[11];
@@ -48,6 +50,20 @@ public:
category[i] = 0; category[i] = 0;
} }
}; };
*/
struct stStatsJson
{
int company_num;
int servicenum;
int subpagenum;
QString title;
QString subtitle;
int platformname_num;
QString jdata;
int category_num;
stStatsJson():company_num(0), servicenum(2), subpagenum(0), platformname_num(1), category_num(0){}
};
struct stBuzzy struct stBuzzy
{ {
int m_nCategory; int m_nCategory;
@@ -80,6 +96,7 @@ public:
void clear(){ m_listMap.clear(); } void clear(){ m_listMap.clear(); }
}; };
/*
class SStatsConUserBuzzybyday class SStatsConUserBuzzybyday
{ {
private: private:
@@ -92,12 +109,26 @@ public:
bool uploadData(QSqlDatabase& _db, const int &_nCompany); bool uploadData(QSqlDatabase& _db, const int &_nCompany);
void clear(){ m_listMap.clear(); } void clear(){ m_listMap.clear(); }
}; };
*/
class SStatsJson
{
private:
SInitializer *m_pSInitializer;
QList<stStatsJson> m_listMap;
public:
void setInitiaizer(SInitializer &_SInitializer) { m_pSInitializer = &_SInitializer; }
void makeTable(SDatagroup &_datagroup, const QMap<int, stReal>& _mapCategory);
bool uploadData(QSqlDatabase& _db, const int &_nCompany);
void clear(){ m_listMap.clear(); }
};
private: private:
SFilterAlgorithm m_SFilterAlgorithm; SFilterAlgorithm m_SFilterAlgorithm;
QMap<int, stReal> m_mapCategory; QMap<int, stReal> m_mapCategory;
SBodyConsumerMap m_SBodyConsumerMap; SBodyConsumerMap m_SBodyConsumerMap;
SStatsConUserBuzzybyday m_SStatsConUserBuzzybyday; //SStatsConUserBuzzybyday m_SStatsConUserBuzzybyday;
SStatsJson m_SStatsJson;
public: public:
virtual void setInitiaizer(SInitializer &_initializer); virtual void setInitiaizer(SInitializer &_initializer);

View File

@@ -305,7 +305,6 @@ bool SDatagroup::makeTable()
{ {
stId stid; stId stid;
stid.num = nId++; stid.num = nId++;
stid.community_num = 0;//m_SCommunity.get(m_SCommunity.getCommunityKey(strListBody).trimmed())->num;
stid.platformname_num = m_pSInitializer->getPlatformName(strListBody[anColumn[SInitializer::E_DATA_platform_name]].trimmed()); stid.platformname_num = m_pSInitializer->getPlatformName(strListBody[anColumn[SInitializer::E_DATA_platform_name]].trimmed());
stid.id = strListBody[anColumn[SInitializer::E_DATA_article_id]].trimmed(); stid.id = strListBody[anColumn[SInitializer::E_DATA_article_id]].trimmed();
m_SId.put(strListBody[anColumn[SInitializer::E_DATA_article_id]].trimmed(), stid); m_SId.put(strListBody[anColumn[SInitializer::E_DATA_article_id]].trimmed(), stid);
@@ -316,6 +315,7 @@ bool SDatagroup::makeTable()
stNickname stnickname; stNickname stnickname;
stnickname.nickname = strListBody[anColumn[SInitializer::E_DATA_article_nickname]]; stnickname.nickname = strListBody[anColumn[SInitializer::E_DATA_article_nickname]];
stnickname.num = nNickname++; stnickname.num = nNickname++;
stnickname.platformname_num = m_pSInitializer->getPlatformName(strListBody[anColumn[SInitializer::E_DATA_platform_name]].trimmed());
m_SNickname.put(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed(), stnickname); m_SNickname.put(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed(), stnickname);
} }
@@ -335,7 +335,7 @@ bool SDatagroup::makeTable()
{ {
stId stid; stId stid;
stid.num = nId++; stid.num = nId++;
stid.community_num = 0;//m_SCommunity.get(m_SCommunity.getCommunityKey(strListBody).trimmed())->num; //stid.community_num = 0;//m_SCommunity.get(m_SCommunity.getCommunityKey(strListBody).trimmed())->num;
stid.platformname_num = m_pSInitializer->getPlatformName(strListReply[anColumn[SInitializer::E_DATA_platform_name]].trimmed()); stid.platformname_num = m_pSInitializer->getPlatformName(strListReply[anColumn[SInitializer::E_DATA_platform_name]].trimmed());
stid.id = strListReply[anColumn[SInitializer::E_DATA_article_id]].trimmed(); stid.id = strListReply[anColumn[SInitializer::E_DATA_article_id]].trimmed();
m_SId.put(strListReply[anColumn[SInitializer::E_DATA_article_id]].trimmed(), stid); m_SId.put(strListReply[anColumn[SInitializer::E_DATA_article_id]].trimmed(), stid);
@@ -1027,15 +1027,14 @@ bool SDatagroup::SId::uploadData(QSqlDatabase &_db, const int &_nCompany)
m_pSInitializer->insertLog(query.lastError().text()); m_pSInitializer->insertLog(query.lastError().text());
return false; return false;
} }
strQuery = QString("insert into id_" + QString::number(_nCompany) + "_update (num,id,platformname_num,community_num) values ("); strQuery = QString("insert into id_" + QString::number(_nCompany) + "_update (num,id,platformname_num) values (");
foreach (const stId& _ids, m_mapId.values()) foreach (const stId& _ids, m_mapId.values())
{ {
QString str = strQuery; QString str = strQuery;
str += QString::number(_ids.num) + ","; str += QString::number(_ids.num) + ",";
str += "'" + _ids.id + "',"; str += "'" + _ids.id + "',";
str += QString::number(_ids.platformname_num) + ","; str += QString::number(_ids.platformname_num) + ")";
str += QString::number(_ids.community_num) + ")";
if (!query.exec(str.toUtf8())) if (!query.exec(str.toUtf8()))
{ {
@@ -1142,7 +1141,7 @@ bool SDatagroup::SNickname::uploadData(QSqlDatabase &_db, const int &_nCompany)
return false; return false;
} }
strQuery = QString("insert into nickname_" + QString::number(_nCompany) + "_update (num,nickname,id_num,exnickname) values ("); strQuery = QString("insert into nickname_" + QString::number(_nCompany) + "_update (num,nickname,id_num,platformname_num,exnickname) values (");
foreach (const stNickname& stnickname, m_mapNickname.values()) foreach (const stNickname& stnickname, m_mapNickname.values())
{ {
@@ -1150,6 +1149,7 @@ bool SDatagroup::SNickname::uploadData(QSqlDatabase &_db, const int &_nCompany)
str += QString::number(stnickname.num) + ","; str += QString::number(stnickname.num) + ",";
str += "'" + sqlString(stnickname.nickname).replace(QChar(160),"") + "',"; str += "'" + sqlString(stnickname.nickname).replace(QChar(160),"") + "',";
str += QString::number(stnickname.id_num) + ","; str += QString::number(stnickname.id_num) + ",";
str += QString::number(stnickname.platformname_num) + ",";
str += "'" + sqlString(UniCodeToEucKr(stnickname.nickname)) + "')"; str += "'" + sqlString(UniCodeToEucKr(stnickname.nickname)) + "')";
if (!query.exec(str.toUtf8())) if (!query.exec(str.toUtf8()))
{ {
@@ -1198,28 +1198,28 @@ QString UniCodeToEucKr(const QString& _strData)
QString SDatagroup::SCommunity::getCommunityKey(const QStringList &_strList) QString SDatagroup::SCommunity::getCommunityKey(const QStringList &_strList)
{ {
QString str; QString str;
if (_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed() == "naver" || _strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed() == "daum") if ((_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed() == "naver") || (_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed() == "daum"))
{ {
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_form]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_form])].trimmed());
str.append("."); str.append(".");
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed());
str.append(".com/"); str.append(".com/");
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_id]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_id])].trimmed());
} }
else if (_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed() == "instagram") else if (_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed() == "instagram")
{ {
str.append("instagram.com/"); str.append("instagram.com/");
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_id]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_id])].trimmed());
} }
else if (_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed() == "kakaostory") else if (_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed() == "kakaostory")
{ {
str.append("story.kakao.com/"); str.append("story.kakao.com/");
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_id]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_id])].trimmed());
} }
else if (_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_name]].trimmed() == "facebook") else if (_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_name])].trimmed() == "facebook")
{ {
str.append("facebook.com/"); str.append("facebook.com/");
str.append(_strList[m_pSInitializer->getColumnIntArray()[SInitializer::E_DATA_platform_id]].trimmed()); str.append(_strList[((m_pSInitializer->getColumnIntArray())[SInitializer::E_DATA_platform_id])].trimmed());
} }
return str.trimmed(); return str.trimmed();
} }

View File

@@ -95,16 +95,16 @@ public:
{ {
int num; int num;
QString id; QString id;
int community_num;
int platformname_num; int platformname_num;
stId():num(0), id("(none)"), community_num(0), platformname_num(1) {} stId():num(0), id("(none)"), platformname_num(1) {}
}; };
struct stNickname struct stNickname
{ {
int num; int num;
QString nickname; QString nickname;
int id_num; int id_num;
stNickname():num(0) {} int platformname_num;
stNickname():num(0), platformname_num(0) {}
}; };
struct stProfileurlKey struct stProfileurlKey
{ {

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.3.0, 2016-05-03T18:01:56. --> <!-- Written by QtCreator 3.3.0, 2016-06-03T16:06:41. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@@ -787,7 +787,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">sfilterprocess</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">sfilterprocess</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/source/sfilterprocess/sfilterprocess.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/source/sfilterprocess/sfilterprocess.pro</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">&quot;427&quot; &quot;test&quot;</value> <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">&quot;465&quot; &quot;test2y&quot;</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">sfilterprocess.pro</value> <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">sfilterprocess.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value> <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>

View File

@@ -775,13 +775,32 @@ bool SInfluencer::SBodyInfluencerMap::uploadData(QSqlDatabase &_db, const int &_
} }
void SInfluencer::SReplyInfluencerMap::makeTable(SDatagroup &_datagroup, const QMap<int, stReal> &_mapCategory) void SInfluencer::SReplyInfluencerMap::makeTable(SDatagroup &_datagroup, const QMap<int, stReal> &_mapCategory)
{ {
enum E_SERVICE
{
E_SERVICE_INFLUENCER = 1,
E_SERVICE_CONSUMER,
E_SERVICE_SPAMMER,
E_SERVICE_POWERCAFE
};
int num = 0; int num = 0;
const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply(); const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply();
/*
int nAll = 0;
for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++)
{
if (iterPos.value().m_mapRealReplyUniqueUrl.size() > 0)
++nAll;
}
bool bAll = true;
if (_mapCategory.size() == nAll)
bAll = false;
*/
for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++) for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++)
{ {
const stReal& streal = iterPos.value(); const stReal& streal = iterPos.value();
@@ -819,7 +838,7 @@ void SInfluencer::SReplyInfluencerMap::makeTable(SDatagroup &_datagroup, const Q
streply.reply_num = _datagroup.getstReply(_url, iterPos1.key())->num; streply.reply_num = _datagroup.getstReply(_url, iterPos1.key())->num;
streply.community_num = _datagroup.getstReply(_url, iterPos1.key())->community_num; streply.community_num = _datagroup.getstReply(_url, iterPos1.key())->community_num;
streply.body_date = _datagroup.getstBody(_url)->date; streply.body_date = _datagroup.getstBody(_url)->date;
_datagroup.addRealReplyCategory(iterPos1.value()[SInitializer::E_DATA_article_url].trimmed(), iterPos1.key(), iterPos.key()); _datagroup.addRealReplyCategory((iterPos1.value()[SInitializer::E_DATA_article_url]).trimmed(), iterPos1.key(), iterPos.key());
m_listMap.append(streply); m_listMap.append(streply);
} }
} }

View File

@@ -309,7 +309,7 @@ bool SInitializer::initCategory()
QSqlQuery query(m_sDBManager[SDBManager::E_DATABASE_WEB]); QSqlQuery query(m_sDBManager[SDBManager::E_DATABASE_WEB]);
QString strQuery = "select num, servicenum from category where company_num = "; QString strQuery = "select num, servicenum, name from category where company_num = ";
strQuery += QString::number(company_num) + " order by servicenum asc, num asc"; strQuery += QString::number(company_num) + " order by servicenum asc, num asc";
if (query.exec(strQuery.toUtf8()) == false) if (query.exec(strQuery.toUtf8()) == false)
@@ -323,6 +323,8 @@ bool SInitializer::initCategory()
while(query.next()) while(query.next())
{ {
m_mapCategory.insert(query.value(0).toInt(), query.value(2).toString());
switch(query.value(1).toInt()) switch(query.value(1).toInt())
{ {
case E_SERVICE_INFLUENCER: case E_SERVICE_INFLUENCER:
@@ -361,6 +363,10 @@ bool SInitializer::initCategory()
} }
return true; return true;
} }
QString SInitializer::getCategoryName(int _nCategory) const
{
return m_mapCategory.value(_nCategory);
}
/* /*
bool SInitializer::initConsumerCategory() bool SInitializer::initConsumerCategory()
@@ -405,12 +411,12 @@ bool SInitializer::initConsumerCategory()
return true; return true;
} }
*/ */
/*
int SInitializer::getConsumerAllCategory() int SInitializer::getConsumerAllCategory()
{ {
return m_nConsumerAllCategory; return m_nConsumerAllCategory;
} }
*/
const double* SInitializer::getSpammerParam() const const double* SInitializer::getSpammerParam() const
{ {
@@ -571,11 +577,12 @@ int SInitializer::getPlatformName(const QString &_name)
{ {
return m_stPlatform.m_mapPlatformName.value(_name.trimmed(), 1); return m_stPlatform.m_mapPlatformName.value(_name.trimmed(), 1);
} }
/*
QMap<int, int>* SInitializer::getConsumerCategory() QMap<int, int>* SInitializer::getConsumerCategory()
{ {
return &m_mapConsumerCategory; return &m_mapConsumerCategory;
} }
*/
double SInitializer::getInfluencerParam(int _BodyorReply) double SInitializer::getInfluencerParam(int _BodyorReply)
{ {
return m_stInfluencerParam[_BodyorReply]; return m_stInfluencerParam[_BodyorReply];

View File

@@ -173,9 +173,10 @@ private:
QMap<int, QList<stFilter> > m_mapFilterGroup; // key : filtergroupid QMap<int, QList<stFilter> > m_mapFilterGroup; // key : filtergroupid
int m_nDataGroupNumber; int m_nDataGroupNumber;
stPlatform m_stPlatform; stPlatform m_stPlatform;
QMap<int, int> m_mapConsumerCategory; //QMap<int, int> m_mapConsumerCategory;
int m_nConsumerAllCategory; int m_nConsumerAllCategory;
int m_anAllCategory[E_SERVICE_MAX]; int m_anAllCategory[E_SERVICE_MAX];
QMap<int, QString> m_mapCategory;
public: public:
bool init(const QString& _strFilterProcessGroupID, const QString& _strFilterProcessGroupName); bool init(const QString& _strFilterProcessGroupID, const QString& _strFilterProcessGroupName);
@@ -194,7 +195,7 @@ public:
int getPlatformForm(const QString &_form); int getPlatformForm(const QString &_form);
int getPlatformName(const QString &_name); int getPlatformName(const QString &_name);
QMap<int, int>* getConsumerCategory(); QMap<int, int>* getConsumerCategory();
int getConsumerAllCategory(); //int getConsumerAllCategory();
void closeConnection(const SDBManager::E_DATABASE _eDatabase); void closeConnection(const SDBManager::E_DATABASE _eDatabase);
void closeConnection(const QString& _str); void closeConnection(const QString& _str);
bool openConnection(const SDBManager::E_DATABASE _eDatabase); bool openConnection(const SDBManager::E_DATABASE _eDatabase);
@@ -203,6 +204,7 @@ public:
void updateWebDBInfoState(QSqlDatabase &_db, int _nCompany, QString _strStatus); void updateWebDBInfoState(QSqlDatabase &_db, int _nCompany, QString _strStatus);
void updateWebDBInfoComplete(QSqlDatabase _db, QString _mindate, QString _maxdate, QString _lastupdate, int _bodycount, int _replycount, int _nCompany); void updateWebDBInfoComplete(QSqlDatabase _db, QString _mindate, QString _maxdate, QString _lastupdate, int _bodycount, int _replycount, int _nCompany);
int getAllCategoryNum(int _nService); int getAllCategoryNum(int _nService);
QString getCategoryName(int _nCategory) const;
//bool disableIndex(QSqlDatabase& db, QString _tableName, QStringList _strIndexNames, int _nMode = MODE); //bool disableIndex(QSqlDatabase& db, QString _tableName, QStringList _strIndexNames, int _nMode = MODE);
//bool enableIndex(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); //bool disableSettings(QSqlDatabase& db, int _nMode = MODE);

View File

@@ -110,8 +110,10 @@ bool SPowercafe::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLis
{ {
foreach (const QStringList& strlist, vecData[SInitializer::E_ARTICLE_BODY]) foreach (const QStringList& strlist, vecData[SInitializer::E_ARTICLE_BODY])
{ {
/*
if (strlist[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (strlist[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
streal.m_setRealAllUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed()); streal.m_setRealAllUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed());
streal.m_setRealBodyUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed()); streal.m_setRealBodyUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed());
_datagroup.addRealUrl(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed()); _datagroup.addRealUrl(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed());
@@ -122,8 +124,10 @@ bool SPowercafe::makeCategory(SDatagroup &_datagroup, int _nCategory, const QLis
{ {
foreach (const QStringList& strlist, vecData[SInitializer::E_ARTICLE_REPLY]) foreach (const QStringList& strlist, vecData[SInitializer::E_ARTICLE_REPLY])
{ {
/*
if (strlist[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (strlist[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
streal.m_setRealAllUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed()); streal.m_setRealAllUrl.insert(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed());
streal.m_mapRealReplyUniqueUrl.insertMulti(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed(), streal.m_mapRealReplyUniqueUrl.insertMulti(strlist[anColumn[SInitializer::E_DATA_article_url]].trimmed(),
strlist[anColumn[SInitializer::E_DATA_article_order]].trimmed().toInt()); strlist[anColumn[SInitializer::E_DATA_article_order]].trimmed().toInt());
@@ -191,9 +195,10 @@ void SPowercafe::STPowercafe::makeTable(SDatagroup &_datagroup, const QMap<int,
for (QMap<QString, QStringList>::const_iterator iterPos = mapBody->constBegin(); iterPos != mapBody->constEnd(); iterPos++) for (QMap<QString, QStringList>::const_iterator iterPos = mapBody->constBegin(); iterPos != mapBody->constEnd(); iterPos++)
{ {
/*
if (iterPos.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (iterPos.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
QString strKey = iterPos.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed(); QString strKey = iterPos.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed();
if (!mapPowercafeAll.contains(strKey)) if (!mapPowercafeAll.contains(strKey))
{ {
@@ -208,9 +213,10 @@ void SPowercafe::STPowercafe::makeTable(SDatagroup &_datagroup, const QMap<int,
{ {
for (QMap<int, QStringList>::const_iterator iterPos1 = iterPos.value().constBegin(); iterPos1 != iterPos.value().constEnd(); iterPos1++) for (QMap<int, QStringList>::const_iterator iterPos1 = iterPos.value().constBegin(); iterPos1 != iterPos.value().constEnd(); iterPos1++)
{ {
/*
if (iterPos1.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (iterPos1.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
QString strKey = iterPos1.value().at(anColumn[SInitializer::E_DATA_platform_id]).trimmed(); QString strKey = iterPos1.value().at(anColumn[SInitializer::E_DATA_platform_id]).trimmed();
if (!mapPowercafeAll.contains(strKey)) if (!mapPowercafeAll.contains(strKey))
{ {
@@ -395,9 +401,10 @@ void SPowercafe::SStatsPowCafeRank::makeTable(SDatagroup &_datagroup, const QMap
QMap<QString, stStatsPowCafeRank> mapPowercafeAll; QMap<QString, stStatsPowCafeRank> mapPowercafeAll;
for (QMap<QString, QStringList>::const_iterator iterPos = mapBody->constBegin(); iterPos != mapBody->constEnd(); iterPos++) for (QMap<QString, QStringList>::const_iterator iterPos = mapBody->constBegin(); iterPos != mapBody->constEnd(); iterPos++)
{ {
/*
if (iterPos.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (iterPos.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
QString strKey = iterPos.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed(); QString strKey = iterPos.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed();
if (!mapPowercafeAll.contains(strKey)) if (!mapPowercafeAll.contains(strKey))
{ {
@@ -413,9 +420,10 @@ void SPowercafe::SStatsPowCafeRank::makeTable(SDatagroup &_datagroup, const QMap
{ {
for (QMap<int, QStringList>::const_iterator iterPos1 = iterPos.value().constBegin(); iterPos1 != iterPos.value().constEnd(); iterPos1++) for (QMap<int, QStringList>::const_iterator iterPos1 = iterPos.value().constBegin(); iterPos1 != iterPos.value().constEnd(); iterPos1++)
{ {
/*
if (iterPos1.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe") if (iterPos1.value()[anColumn[SInitializer::E_DATA_platform_form]].trimmed() != "cafe")
continue; continue;
*/
QString strKey = iterPos1.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed(); QString strKey = iterPos1.value()[anColumn[SInitializer::E_DATA_platform_id]].trimmed();
if (!mapPowercafeAll.contains(strKey)) if (!mapPowercafeAll.contains(strKey))
{ {