카테고리 전체 필터 데이타 추가
git-svn-id: svn://192.168.0.12/source@175 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user