전체 카테고리 전부 삭제

컨슈머 마케터/즐겨찾기 업데이트

git-svn-id: svn://192.168.0.12/source@282 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2016-07-19 09:25:57 +00:00
parent b59813c4cd
commit 8212a845d0
14 changed files with 600 additions and 49 deletions

View File

@@ -582,7 +582,7 @@ void SSpammer::SBodySpammerMap::makeTable(SDatagroup &_datagroup, const QMap<int
stbody.category_num = iterPos.key();
stbody.realin |= REAL_BODY;
stbody.platformname_num = _datagroup.getstBody(strUrl)->platformname_num;
stbody.body_date = _datagroup.getstBody(strUrl)->date;
stbody.date = _datagroup.getstBody(strUrl)->date;
if (streal.m_mapRealReplyUniqueUrl.contains(strUrl))
{
stbody.realin |= REAL_REPLY;
@@ -606,7 +606,7 @@ void SSpammer::SBodySpammerMap::makeTable(SDatagroup &_datagroup, const QMap<int
stbody.id_num = _datagroup.getstBody(strUrl)->id_num;
stbody.realin |= REAL_REPLY;
stbody.platformname_num = _datagroup.getstBody(strUrl)->platformname_num;
stbody.body_date = _datagroup.getstBody(strUrl)->date;
stbody.date = _datagroup.getstBody(strUrl)->date;
foreach (int order, streal.m_mapRealReplyUniqueUrl.values(strUrl))
{
@@ -665,7 +665,7 @@ bool SSpammer::SBodySpammerMap::uploadData(QSqlDatabase &_db, const int &_nCompa
m_pSInitializer->insertLog(query.lastError().text());
return false;
}
strQuery = "insert into body_spammer_map_" + QString::number(_nCompany) + "_update (num,category_num,id_num,body_num,realin,body_date,platformname_num)"
strQuery = "insert into body_spammer_map_" + QString::number(_nCompany) + "_update (num,category_num,id_num,body_num,realin,date,platformname_num)"
" values (";
query.clear();
@@ -677,7 +677,7 @@ bool SSpammer::SBodySpammerMap::uploadData(QSqlDatabase &_db, const int &_nCompa
str += QString::number(stmap.id_num) + ",";
str += QString::number(stmap.body_num) + ",";
str += QString::number(stmap.realin) + ",";
str += "'" + stmap.body_date + "',";
str += "'" + stmap.date + "',";
str += QString::number(stmap.platformname_num) + ")";
if (query.exec(str.toUtf8()) == false)
{
@@ -855,6 +855,7 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
QDate dateStartReply(2100,1,1),dateEndReply(2000,1,1);
QList<stBuzzy> listBuzzy;
stReal allCategory;
// filtered
{
for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++)
@@ -864,6 +865,8 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
const stReal &streal = iterPos.value();
foreach (const QString& strUrl, streal.m_setRealBodyUrl)
{
allCategory.m_setRealBodyUrl.insert(strUrl);
allCategory.m_setRealAllUrl.insert(strUrl);
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();
@@ -884,6 +887,10 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
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()];
if (!allCategory.m_mapRealReplyUniqueUrl.contains(iterPos1.key()) || !allCategory.m_mapRealReplyUniqueUrl.values(iterPos1.key()).contains(iterPos1.value()))
allCategory.m_mapRealReplyUniqueUrl.insertMulti(iterPos1.key(), iterPos1.value());
allCategory.m_setRealAllUrl.insert(iterPos1.key());
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;
@@ -901,6 +908,38 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
listBuzzy.append(stbuzzy);
}
}
//all filtered category
{
stBuzzy stbuzzy;
stbuzzy.m_nCategory = -1;
foreach (const QString& strUrl, allCategory.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.year() == 1990)
continue;
if (stbuzzy.m_mapBodyBuzz.contains(date))
stbuzzy.m_mapBodyBuzz[date]++;
else
stbuzzy.m_mapBodyBuzz.insert(date, 1);
}
for (QMap<QString, int>::const_iterator iterPos1 = allCategory.m_mapRealReplyUniqueUrl.constBegin(); iterPos1 != allCategory.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;
if (stbuzzy.m_mapReplyBuzz.contains(date))
stbuzzy.m_mapReplyBuzz[date]++;
else
stbuzzy.m_mapReplyBuzz.insert(date, 1);
}
listBuzzy.append(stbuzzy);
}
//all buzzy
{
stBuzzy stbuzzy;
@@ -936,9 +975,8 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
int nTotalCount = 0, nTotalBodyCount = 0, nTotalReplyCount = 0;
if (_mapCategory.contains(m_pSInitializer->getAllCategoryNum(3)))
{
foreach (const QString& strUrl, _mapCategory[m_pSInitializer->getAllCategoryNum(3)].m_setRealAllUrl)
foreach (const QString& strUrl, allCategory.m_setRealAllUrl)
{
nTotalBodyCount++;
nTotalReplyCount += (*mapReply)[strUrl].size();
@@ -978,10 +1016,12 @@ void SSpammer::SStatsJson::makeTableBuzz(SDatagroup &_datagroup, const QMap<int,
QJsonObject jsNameAll;
QJsonObject jsNameBody;
if (stbuzzy.m_nCategory != 0)
if (stbuzzy.m_nCategory > 0)
jsNameReply["name"] = jsNameBody["name"] = jsNameAll["name"] = m_pSInitializer->getCategoryName(stbuzzy.m_nCategory);
else
else if (stbuzzy.m_nCategory == 0)
jsNameReply["name"] = jsNameBody["name"] = jsNameAll["name"] = "ALL";
else
jsNameReply["name"] = jsNameBody["name"] = jsNameAll["name"] = "ALLCATEGORY";
jsNameAll["value"] = jsValueAll;
jsNameBody["value"] = jsValueBody;
@@ -1076,6 +1116,8 @@ void SSpammer::SStatsJson::makeTableRank(SDatagroup &_datagroup, const QMap<int,
const QMap<QString, QMap<int, QStringList> >* mapReply = _datagroup.getmapReply();
const int* anColumn = m_pSInitializer->getColumnIntArray();
stReal allCategory;
for (QMap<int, stReal>::const_iterator iterPos = _mapCategory.constBegin(); iterPos != _mapCategory.constEnd(); iterPos++)
{
QMap<QString, stSpammerScore> mapScore;
@@ -1083,6 +1125,125 @@ void SSpammer::SStatsJson::makeTableRank(SDatagroup &_datagroup, const QMap<int,
QDate dateStart(2030, 1, 1);
QDate dateEnd(2000, 1, 1);
foreach (const QString& _url, streal.m_setRealBodyUrl)
{
allCategory.m_setRealBodyUrl.insert(_url);
allCategory.m_setRealAllUrl.insert(_url);
QString strKey = (*mapBody)[_url][anColumn[SInitializer::E_DATA_article_id]].trimmed() + ",";
strKey += ((*mapBody)[_url][anColumn[SInitializer::E_DATA_platform_name]].trimmed() + ",");
strKey += (*mapBody)[_url][anColumn[SInitializer::E_DATA_platform_form]].trimmed();
if (!mapScore.contains(strKey))
{
mapScore.insert(strKey, stSpammerScore());
mapScore[strKey].id_num = _datagroup.getstBody(_url)->id_num;
}
mapScore[strKey].body++;
mapScore[strKey].nickname.insert((*mapBody)[_url][anColumn[SInitializer::E_DATA_article_nickname]].trimmed());
QDate dateThis = QDateTime::fromString((*mapBody)[_url][anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd hh:mm:ss").date();
if (dateThis.isValid() && dateThis.year() > 1990)
{
dateStart = (dateStart < dateThis) ? dateStart : dateThis;
dateEnd = (dateEnd > dateThis) ? dateEnd : dateThis;
}
}
for (QMap<QString, int>::const_iterator iterPos1 = streal.m_mapRealReplyUniqueUrl.constBegin(); iterPos1 != streal.m_mapRealReplyUniqueUrl.constEnd(); iterPos1++)
{
allCategory.m_setRealAllUrl.insert(iterPos1.key());
if (!allCategory.m_mapRealReplyUniqueUrl.contains(iterPos1.key()) || !allCategory.m_mapRealReplyUniqueUrl.values(iterPos1.key()).contains(iterPos1.value()))
allCategory.m_mapRealReplyUniqueUrl.insertMulti(iterPos1.key(), iterPos1.value());
QString strKey = (*mapReply)[iterPos1.key()][iterPos1.value()][anColumn[SInitializer::E_DATA_article_id]].trimmed() + ",";
strKey += ((*mapReply)[iterPos1.key()][iterPos1.value()][anColumn[SInitializer::E_DATA_platform_name]].trimmed() + ",");
strKey += (*mapReply)[iterPos1.key()][iterPos1.value()][anColumn[SInitializer::E_DATA_platform_form]].trimmed();
if (!mapScore.contains(strKey))
{
mapScore.insert(strKey, stSpammerScore());
mapScore[strKey].id_num = _datagroup.getstBody(iterPos1.key())->id_num;
}
mapScore[strKey].reply++;
mapScore[strKey].nickname.insert((*mapReply)[iterPos1.key()][iterPos1.value()][anColumn[SInitializer::E_DATA_article_nickname]].trimmed());
QDate dateThis = QDateTime::fromString((*mapReply)[iterPos1.key()][iterPos1.value()][anColumn[SInitializer::E_DATA_article_date]].trimmed().replace("T", " "), "yyyy-MM-dd hh:mm:ss").date();
if (dateThis.isValid() && dateThis.year() > 1990)
{
dateStart = (dateStart < dateThis) ? dateStart : dateThis;
dateEnd = (dateEnd > dateThis) ? dateEnd : dateThis;
}
}
//QList<stSpammerRank> listSpammer;
QMap<int, stSpammerRank> mapSpammer;
for (QMap<QString, stSpammerScore>::iterator iterPos1 = mapScore.begin(); iterPos1 != mapScore.end(); iterPos1++)
{
if (iterPos1->body >= m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_BODY_COUNT_CUT] ||
iterPos1->reply >= m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_NICK_COUNT_CUT] ||
iterPos1->nickname.size() >= m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_NICK_COUNT_CUT])
{
double value = iterPos1->body * m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_BODY_COUNT_RATIO]
+ iterPos1->reply * m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_REPLY_COUNT_RATIO]
+ iterPos1->nickname.size() * m_pSInitializer->getSpammerParam()[SInitializer::E_SPAMER_NICK_COUNT_RATIO];
stSpammerRank rank;
rank.value = value;
rank.id = iterPos1.key().split(",").at(0);
rank.platformform_num = m_pSInitializer->getPlatformName(iterPos1.key().split(",").at(1));
rank.id_num = iterPos1.value().id_num;
mapSpammer.insertMulti(rank.platformform_num, rank);
}
}
QList<int> keys = mapSpammer.keys().toSet().toList();
QJsonArray jsonArray;
stStatsJson stjsonRank;
{
stjsonRank.category_num = iterPos.key();
stjsonRank.servicenum = 3;
stjsonRank.title = "rank";
stjsonRank.subtitle = "";
stjsonRank.platformname_num = 1;
}
int nTotalCount = 0;
for (QList<int>::iterator iterPos1 = keys.begin(); iterPos1 != keys.end(); iterPos1++)
{
QList<stSpammerRank> values = mapSpammer.values(*iterPos1);
qSort(values.begin(), values.end(), isGreaterSpammerValue());
int nRankLimit = (values.size() <= 10) ? values.size() : 10;
QJsonObject jsonObj;
jsonObj["platformname_num"] = *iterPos1;
QJsonArray jsonSubArray;
for (int i = 0; i < nRankLimit; i++)
{
QJsonObject jsonSubObj;
jsonSubObj["rank"] = i + 1;
jsonSubObj["value"] = values.at(i).value;
jsonSubObj["id"] = values.at(i).id;
jsonSubObj["id_num"] = values.at(i).id_num;
jsonSubArray.append(jsonSubObj);
}
jsonObj["data"] = jsonSubArray;
jsonArray.append(jsonObj);
nTotalCount += values.size();
}
QJsonObject jObj;
jObj["data"] = jsonArray;
jObj["mindate"] = dateStart.toString("yyyy.MM.dd");
jObj["maxdate"] = dateEnd.toString("yyyy.MM.dd");
jObj["totalcount"] = nTotalCount;
QJsonDocument jsonDoc(jObj);
stjsonRank.jdata = jsonDoc.toJson();
m_listMap.append(stjsonRank);
}
//all filtered Category
{
QMap<QString, stSpammerScore> mapScore;
const stReal& streal = allCategory;
QDate dateStart(2030, 1, 1);
QDate dateEnd(2000, 1, 1);
foreach (const QString& _url, streal.m_setRealBodyUrl)
{
QString strKey = (*mapBody)[_url][anColumn[SInitializer::E_DATA_article_id]].trimmed() + ",";
@@ -1148,13 +1309,14 @@ void SSpammer::SStatsJson::makeTableRank(SDatagroup &_datagroup, const QMap<int,
QJsonArray jsonArray;
stStatsJson stjsonRank;
{
stjsonRank.category_num = iterPos.key();
stjsonRank.category_num = -1;
stjsonRank.servicenum = 3;
stjsonRank.title = "rank";
stjsonRank.subtitle = "";
stjsonRank.platformname_num = 1;
}
int nTotalCount = 0;
for (QList<int>::iterator iterPos1 = keys.begin(); iterPos1 != keys.end(); iterPos1++)
{
QList<stSpammerRank> values = mapSpammer.values(*iterPos1);