카테고리 전체 필터 데이타 추가

git-svn-id: svn://192.168.0.12/source@175 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-08-17 09:58:37 +00:00
parent af5294d607
commit 2df1ec09bd
2 changed files with 159 additions and 68 deletions

View File

@@ -227,17 +227,18 @@ void SFilterProcess::run(QString _strFindID,QString _strFilterGroupName)
DataCategoryMake(data.at(2).toString(),data.at(4).toInt());
break;
case E_PROCSS_TYPE_SEND:
DataPut(data.at(3).toString());
strCompany = data.at(3).toString();
DataCategoryAllMake(strCompany);
DataPut(strCompany);
break;
case E_PROCSS_TYPE_INFLUENCE_COUNT:
DataInfluenceCount(data.at(2).toString(),data.at(3).toString());
DataInfluenceCount(data.at(2).toString(),strCompany);
break;
case E_PROCSS_TYPE_SPAMMERS_COUNT:
DataSpammersCount(data.at(2).toString(),data.at(3).toString());
DataSpammersCount(data.at(2).toString(),strCompany);
break;
case E_PROCSS_TYPE_POWER_CAFE_COUNT:
DataPowerCafeCount(data.at(2).toString(),data.at(3).toString());
DataPowerCafeCount(data.at(2).toString(),strCompany);
break;
}
}
@@ -263,12 +264,61 @@ void SFilterProcess::DataCategoryMake(QString _strFilter,int _nCategory)
ReloadData();
InsertLog("Data Filter");
DataFilter(_strFilter);
InsertLog("Data Add");
DataAdd();
InsertLog("Make Buzzy");
MakeBuzzy(_nCategory,&m_data[0],&m_bDataFlag[0]);
InsertLog("Data Make");
DataMake(_nCategory,&m_data[0],&m_bDataFlag[0]);
InsertLog("Category Make End");
}
void SFilterProcess::DataAdd()
{
for (int nArticle = 0; nArticle < E_ARTICLE_MAX; nArticle++ )
{
if (m_bDataFlag[nArticle] == true)
{
foreach(QStringList strList , m_data[nArticle])
{
QString strURL = strList[m_nUrlColumn].trimmed();
strURL += "\\";
strURL += strList[m_nOrderColumn].trimmed();
if (m_setDataAll[nArticle].contains(strURL) == false)
{
m_dataAll[nArticle].push_back(strList);
m_bDataFlagAll[nArticle] = true;
m_setDataAll[nArticle].insert(strURL);
}
}
}
}
}
void SFilterProcess::DataCategoryAllMake(QString _strCompany)
{
int nCategory = GetWebData("category","num", "company_num = '" + _strCompany + "' and statsColumnNum = '1'").toInt();
InsertLog("Make Buzzy Category All");
MakeBuzzy(nCategory,&m_dataAll[0],&m_bDataFlagAll[0]);
InsertLog("Data Make Category All");
DataMake(nCategory,&m_dataAll[0],&m_bDataFlagAll[0]);
for (int nArticle = 0; nArticle < E_ARTICLE_MAX; nArticle++ )
{
m_dataAll[nArticle].clear();
m_setDataAll[nArticle].clear();
}
}
/*
void SFilterProcess::DataCategoryMakeAllMerge(int _nCategory)
{
InsertLog("Category Make Start");
MakeBuzzy(_nCategory);
InsertLog("Data Make");
DataMake(_nCategory);
InsertLog("Category Make End");
}
*/
QString SFilterProcess::SqlString(QString _str)
{
@@ -445,62 +495,73 @@ void SFilterProcess::FilterSerach(QString _strJson)
int nSelect = json.Get(_strJson,"Article").toInt() - 1;
if (nSelect < 0) return;
m_bDataFlag[nSelect] = true;
int nCategory = json.GetNumber(_strJson,"Category");
int nMethod = json.GetNumber(_strJson,"Method");
int nKeyword = json.GetNumber(_strJson,"Keyword");
QStringList strListKeyword = json.Get(_strJson,"String").split(" ");
if (nMethod == 1)
{
for (int i = 0 ; i < strListKeyword.size(); i++ )
strListKeyword[i] = " " + strListKeyword[i] + " ";
}
QVector <QStringList> copyData;
foreach(QStringList strList , m_data[nSelect])
{
bool bFlag = false;
QString strData = strList.at(nCategory);
switch(nKeyword)
SKeyword stKeyword;
stKeyword.m_nCatalog = json.GetNumber(_strJson,"Category");
stKeyword.m_nKeyword = json.GetNumber(_strJson,"Keyword");
stKeyword.m_strListKeyword = json.Get(_strJson,"String").split(" ");
if (json.GetNumber(_strJson,"Method") == 1)
{
case 0:
{
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)){bFlag = true;break;}
break;
}
case 1:
{
int nKeyCount = 0;
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)) nKeyCount++;
if (nKeyCount == strListKeyword.size())
bFlag = true;
break;
}
case 2:
{
bFlag = true;
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)){bFlag = false;break;}
break;
}
case 3:
{
foreach(QString strKey , strListKeyword)
strList[nCategory].replace(strKey,"");
bFlag = true;
break;
}
for (int i = 0 ; i < stKeyword.m_strListKeyword.size(); i++ )
stKeyword.m_strListKeyword[i] = " " + stKeyword.m_strListKeyword[i] + " ";
}
if (bFlag) copyData.push_back(strList);
m_vecKeyword.push_back(stKeyword);
}
if (json.GetBool(_strJson,"Last")) //
{
QVector <QStringList> copyData;
foreach(QStringList strList , m_data[nSelect])
{
bool bFlag = false;
foreach(SKeyword stKeyword,m_vecKeyword)
{
QString strData = strList.at(stKeyword.m_nCatalog);
switch(stKeyword.m_nKeyword)
{
case E_SEARCH_KEYWORD_OR:
{
foreach(QString strKey , stKeyword.m_strListKeyword)
if (strData.contains(strKey)){bFlag = true;break;}
break;
}
case E_SEARCH_KEYWORD_AND:
{
int nKeyCount = 0;
foreach(QString strKey , stKeyword.m_strListKeyword)
if (strData.contains(strKey)) nKeyCount++;
if (nKeyCount == stKeyword.m_strListKeyword.size())
bFlag = true;
break;
}
case E_SEARCH_KEYWORD_CELL_DELETE_OR:
{
bFlag = true;
foreach(QString strKey , stKeyword.m_strListKeyword)
if (strData.contains(strKey)){bFlag = false;break;}
break;
}
case E_SEARCH_KEYWORD_CELL_DELETE_AND:
{
bFlag = true;
int nCount = 0;
foreach(QString strKey , stKeyword.m_strListKeyword)
if (strData.contains(strKey)){nCount++;}
if (nCount == stKeyword.m_strListKeyword.size())
bFlag = false;
break;
}
}
}
if (bFlag) copyData.push_back(strList);
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
m_vecKeyword.clear();
}
m_data[nSelect].clear();
m_data[nSelect] = copyData;
}
void SFilterProcess::ReloadData()
{
{
for (int i = 0; i < E_ARTICLE_MAX ; i++)
{
m_data[i].clear();
@@ -608,7 +669,27 @@ QVariant SFilterProcess::GetWebData(QString _strTable,QString _strColumn,int _nN
return value;
}
void SFilterProcess::MakeBuzzy(int _nCategory)
QVariant SFilterProcess::GetWebData(QString _strTable,QString _strColumn,QString _strWhere)
{
QVariant value;
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
return value;
}
QSqlQuery query("select " + _strColumn + " FROM " + _strTable + " where " + _strWhere);
if (query.next())
value = query.value(0);
m_db.close();
return value;
}
void SFilterProcess::MakeBuzzy(int _nCategory,QVector <QStringList> *_data, bool *_bDataFlag)
{
SBuzzy stBuzzy;
QVariant value = GetWebData("category","statsColumnNum",_nCategory);
@@ -620,9 +701,9 @@ void SFilterProcess::MakeBuzzy(int _nCategory)
stBuzzy.m_nCategory = value.toInt();
if (stBuzzy.m_nCategory == -1) return;
QMap <QString,bool> map;
if (m_bDataFlag[E_ARTICLE_BODY] == true)
if (_bDataFlag[E_ARTICLE_BODY] == true)
{
foreach(QStringList strList,m_data[E_ARTICLE_BODY])
foreach(QStringList strList,_data[E_ARTICLE_BODY])
{
QString strURL = strList[m_nUrlColumn].trimmed();
if(map.contains(strURL) == false)
@@ -637,9 +718,9 @@ void SFilterProcess::MakeBuzzy(int _nCategory)
}
}
map.clear();
if (m_bDataFlag[E_ARTICLE_REPLY] == true)
if (_bDataFlag[E_ARTICLE_REPLY] == true)
{
foreach(QStringList strList,m_data[E_ARTICLE_REPLY])
foreach(QStringList strList,_data[E_ARTICLE_REPLY])
{
QString strURL = strList[m_nUrlColumn].trimmed();
strURL += "\\";
@@ -658,13 +739,13 @@ void SFilterProcess::MakeBuzzy(int _nCategory)
m_vecBuzzy.push_back(stBuzzy);
}
void SFilterProcess::DataMake(int _nCategory)
void SFilterProcess::DataMake(int _nCategory,QVector <QStringList> *_data, bool *_bDataFlag)
{
QMap <QString,int> mapData;
if (m_bDataFlag[E_ARTICLE_BODY] == true)
if (_bDataFlag[E_ARTICLE_BODY] == true)
{
foreach(QStringList strList,m_data[E_ARTICLE_BODY])
foreach(QStringList strList,_data[E_ARTICLE_BODY])
{
QString strURL = strList[m_nUrlColumn].trimmed();
if (m_mapData.contains(strURL))
@@ -679,9 +760,9 @@ void SFilterProcess::DataMake(int _nCategory)
}
}
if (m_bDataFlag[E_ARTICLE_REPLY] == true)
if (_bDataFlag[E_ARTICLE_REPLY] == true)
{
foreach(QStringList strList,m_data[E_ARTICLE_REPLY])
foreach(QStringList strList,_data[E_ARTICLE_REPLY])
{
QString strURL = strList[m_nUrlColumn].trimmed();
if (m_mapData.contains(strURL))