수정 테스트
git-svn-id: svn://192.168.0.12/source@68 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -16,16 +16,16 @@
|
||||
|
||||
#define D_NONE -1
|
||||
|
||||
#define D_DB_WEB_HOST "db.big-bird.co.kr"
|
||||
#define D_DB_WEB_USER "concepters"
|
||||
#define D_DB_WEB_PASS "con97996655"
|
||||
#define D_DB_WEB_NAME "dbconcepters"
|
||||
|
||||
//#define D_DB_WEB_HOST "192.168.0.82"
|
||||
//#define D_DB_WEB_USER "root"
|
||||
//#define D_DB_WEB_PASS "1234"
|
||||
//#define D_DB_WEB_HOST "db.big-bird.co.kr"
|
||||
//#define D_DB_WEB_USER "concepters"
|
||||
//#define D_DB_WEB_PASS "con97996655"
|
||||
//#define D_DB_WEB_NAME "dbconcepters"
|
||||
|
||||
#define D_DB_WEB_HOST "192.168.0.82"
|
||||
#define D_DB_WEB_USER "root"
|
||||
#define D_DB_WEB_PASS "1234"
|
||||
#define D_DB_WEB_NAME "dbconcepters"
|
||||
|
||||
Widget::Widget(QWidget *parent) : C_MAP_REAL_BODY (0x01) , C_MAP_REAL_REPLY (0x02) , QWidget(parent)
|
||||
{
|
||||
QVBoxLayout *vMainLayout = new QVBoxLayout;
|
||||
@@ -150,7 +150,7 @@ void Widget::InsertLog(QString str)
|
||||
}
|
||||
|
||||
void Widget::Refresh()
|
||||
{
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
@@ -202,6 +202,19 @@ void Widget::Refresh()
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
}
|
||||
|
||||
m_mapPlatformform.clear();
|
||||
m_mapPlatformname.clear();
|
||||
{
|
||||
QSqlQuery query("select num,form FROM platformform");
|
||||
while(query.next())
|
||||
m_mapPlatformform.insert(query.value(1).toString(),query.value(0).toInt());
|
||||
}
|
||||
{
|
||||
QSqlQuery query("select num,name FROM platformname");
|
||||
while(query.next())
|
||||
m_mapPlatformname.insert(query.value(1).toString(),query.value(0).toInt());
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
@@ -539,6 +552,7 @@ void Widget::DataFilter(QString _strFilterGroupID)
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
@@ -679,12 +693,24 @@ bool Widget::ReloadColumn()
|
||||
return true;
|
||||
}
|
||||
|
||||
QString Widget::GetCommunityKey(const QStringList _strList)
|
||||
{
|
||||
QString str;
|
||||
str.append(_strList[m_anData[E_DATA_platform_form]].trimmed());
|
||||
str.append(".");
|
||||
str.append(_strList[m_anData[E_DATA_platform_name]].trimmed());
|
||||
str.append(".com/");
|
||||
str.append(_strList[m_anData[E_DATA_platform_id]].trimmed());
|
||||
return str.trimmed();
|
||||
}
|
||||
|
||||
void Widget::DataItemClicked(QListWidgetItem* item)
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
@@ -704,6 +730,17 @@ void Widget::DataItemClicked(QListWidgetItem* item)
|
||||
m_strlistOrder.clear();
|
||||
m_mapData.clear();
|
||||
m_vecMap.clear();
|
||||
|
||||
m_mapID.clear();
|
||||
m_mapCommunity.clear();
|
||||
m_mapNickname.clear();
|
||||
|
||||
SId stDefault;
|
||||
m_mapID.insert(stDefault.m_strID,stDefault);
|
||||
|
||||
SCommunity stCom;
|
||||
m_mapCommunity.insert(" ",stCom);
|
||||
|
||||
QString astrWhere[E_ARTICLE_MAX] = {" where article_form = 'body' Order by article_date DESC"," where article_form = 'reply'"};
|
||||
for (int i = 0; i < E_ARTICLE_MAX ; i++)
|
||||
{
|
||||
@@ -724,6 +761,7 @@ void Widget::DataItemClicked(QListWidgetItem* item)
|
||||
if (strList[m_anData[E_DATA_article_date]].trimmed().isEmpty()) continue;
|
||||
if (strList[m_anData[E_DATA_article_id]].trimmed().isEmpty()) continue;
|
||||
if (strList[m_anData[E_DATA_article_nickname]].trimmed().isEmpty()) continue;
|
||||
if (strList[m_anData[E_DATA_platform_id]].trimmed().isEmpty()) continue;
|
||||
SBody stBody;
|
||||
stBody.m_nNum = nCount++;
|
||||
stBody.m_dtLast = QDateTime::fromString(strList[m_anData[E_DATA_article_date]].trimmed(),"yyyy-MM-dd HH:mm:ss");
|
||||
@@ -733,6 +771,45 @@ void Widget::DataItemClicked(QListWidgetItem* item)
|
||||
stBody.m_strlist = strList;
|
||||
m_mapData.insert(strURL,stBody);
|
||||
m_strlistOrder.push_back(strURL);
|
||||
int nID = -1;
|
||||
if (m_mapID.contains(strList[m_anData[E_DATA_article_id]].trimmed()) == false)
|
||||
{
|
||||
SId stID;
|
||||
nID = stID.m_nNum = m_mapID.size();
|
||||
stID.m_strID = strList[m_anData[E_DATA_article_id]].trimmed();
|
||||
if(m_mapPlatformname.contains(strList[m_anData[E_DATA_platform_name]].trimmed()))
|
||||
stID.m_nPlatfromName = m_mapPlatformname[strList[m_anData[E_DATA_platform_name]].trimmed()];
|
||||
m_mapID.insert(stID.m_strID,stID);
|
||||
}
|
||||
if (m_mapNickname.contains(strList[m_anData[E_DATA_article_nickname]].trimmed()) == false)
|
||||
{
|
||||
SNickname stNick;
|
||||
stNick.m_nNum = m_mapNickname.size();
|
||||
stNick.m_strNickname = strList[m_anData[E_DATA_article_nickname]].trimmed();
|
||||
stNick.m_nID = nID;
|
||||
m_mapNickname.insert(stNick.m_strNickname,stNick);
|
||||
}
|
||||
QString strKey = GetCommunityKey(strList);
|
||||
if (m_mapCommunity.contains(strKey) == false)
|
||||
{
|
||||
SCommunity stCom;
|
||||
stCom.m_nNum = m_mapCommunity.size();
|
||||
stCom.m_strID = strList[m_anData[E_DATA_platform_id]].trimmed();
|
||||
stCom.m_strTitle = strList[m_anData[E_DATA_platform_title]].trimmed();
|
||||
if(m_mapPlatformname.contains(strList[m_anData[E_DATA_platform_name]].trimmed()))
|
||||
stCom.m_nPlatformname = m_mapPlatformname[strList[m_anData[E_DATA_platform_name]].trimmed()];
|
||||
else
|
||||
continue;
|
||||
if(m_mapPlatformform.contains(strList[m_anData[E_DATA_platform_form]].trimmed()))
|
||||
stCom.m_nPlatformform = m_mapPlatformform[strList[m_anData[E_DATA_platform_form]].trimmed()];
|
||||
else
|
||||
continue;
|
||||
if (strList[m_anData[E_DATA_platform_form]].trimmed().compare(QString("naver")) == false)
|
||||
{
|
||||
stCom.m_strUrl = strKey;
|
||||
}
|
||||
m_mapCommunity.insert(strKey,stCom);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -749,12 +826,27 @@ void Widget::DataItemClicked(QListWidgetItem* item)
|
||||
if (m_mapData[strURL].m_dtLast < dtComp)
|
||||
m_mapData[strURL].m_dtLast = dtComp;
|
||||
m_mapData[strURL].m_vecReply.insert(stReply.m_nOrder,stReply);
|
||||
if (strList[m_anData[E_DATA_article_nickname]].trimmed().isEmpty()) continue;
|
||||
if (m_mapNickname.contains(strList[m_anData[E_DATA_article_nickname]].trimmed()) == false)
|
||||
{
|
||||
SNickname stNick;
|
||||
stNick.m_nNum = m_mapNickname.size();
|
||||
stNick.m_strNickname = strList[m_anData[E_DATA_article_nickname]].trimmed();
|
||||
m_mapNickname.insert(stNick.m_strNickname,stNick);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach(SId stID,m_mapID)
|
||||
{
|
||||
QString strCommunityKey = "blog.naver.com/" + stID.m_strID.trimmed();
|
||||
if (m_mapCommunity.contains(strCommunityKey))
|
||||
stID.m_nCommunity = m_mapCommunity[strCommunityKey].m_nNum;
|
||||
}
|
||||
|
||||
MakeBuzzyAll();
|
||||
InsertLog("End Loading");
|
||||
db.close();
|
||||
@@ -795,7 +887,7 @@ QVariant Widget::GetWebData(QString _strTable,QString _strColumn,int _nNum)
|
||||
return value;
|
||||
}
|
||||
QSqlQuery query("select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum));
|
||||
qDebug() << "select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum);
|
||||
//qDebug() << "select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum);
|
||||
if (query.next() == true)
|
||||
value = query.value(0);
|
||||
db.close();
|
||||
@@ -921,161 +1013,6 @@ QString Widget::GetVectorToString(QVector <int> _vecCategory,QString _strDelimit
|
||||
return str.left(str.length() - _strDelimiter.length());
|
||||
}
|
||||
|
||||
void Widget::DataPut(QString _strCompanyNum)
|
||||
{
|
||||
db.setHostName(D_DB_WEB_HOST);
|
||||
db.setUserName(D_DB_WEB_USER);
|
||||
db.setPassword(D_DB_WEB_PASS);
|
||||
db.setDatabaseName(D_DB_WEB_NAME);
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
QSqlQuery query;
|
||||
QString strQuery;
|
||||
|
||||
strQuery = "delete from body_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from reply_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from body_category_map_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from stats_articlebuzzbyday where company_num = " + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
QString strReplyQuery = QString("insert into reply_" + _strCompanyNum + " (num,id,nickname,parent,data,date,body_num,realbycategorynum) VALUES (:NUM,:ID,:NICKNAME,:PARENT,:DATA,:DATE,:BODY_NUM,:REALBYCATEGORYNUM)").toUtf8();
|
||||
QString strBodyQuery = QString("insert into body_" + _strCompanyNum + " (num,platformname,platformform,platformtitle,id,nickname,title,data,profileurl,url,view,date,reply_startnum,reply_endnum,lastupdate,realbycategorynum,profile) VALUES (:NUM,:PLATFORMNAME,:PLATFORMFORM,:PLATFORMTITLE,:ID,:NICKNAME,:TITLE,:DATA,:PROFILEURL,:URL,:VIEW,:DATE,:REPLY_STARTNUM,:REPLY_ENDNUM,:LASTUPDATE,:REALBYCATEGORYNUM,:PROFILE)").toUtf8();
|
||||
QString strMapQuery = QString("insert into body_category_map_" + _strCompanyNum + " (num,body_num,category_num,realin) VALUES (:NUM,:BODY_NUM,:CATEGORY_NUM,:REALIN)").toUtf8();
|
||||
|
||||
int nReplyCount = 0;
|
||||
foreach(QString strUrl , m_strlistOrder )
|
||||
{
|
||||
int nReplyStart = nReplyCount;
|
||||
foreach(SReply stReply,m_mapData[strUrl].m_vecReply)
|
||||
{
|
||||
query.prepare(strReplyQuery);
|
||||
query.bindValue(":NUM",nReplyCount);
|
||||
query.bindValue(":ID",stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed().toUtf8());
|
||||
query.bindValue(":NICKNAME",stReply.m_strlist[m_anData[E_DATA_article_nickname]].trimmed().toUtf8());
|
||||
query.bindValue(":PARENT",stReply.m_strlist[m_anData[E_DATA_article_parent]].trimmed().toUtf8());
|
||||
query.bindValue(":DATA",SqlString(stReply.m_strlist[m_anData[E_DATA_article_data]].trimmed()).toUtf8());
|
||||
query.bindValue(":DATE",stReply.m_strlist[m_anData[E_DATA_article_date]].trimmed().toUtf8());
|
||||
query.bindValue(":BODY_NUM",m_mapData[strUrl].m_nNum);
|
||||
query.bindValue(":REALBYCATEGORYNUM",GetVectorToString(stReply.m_vecCategory," "));
|
||||
if (query.exec()==false){InsertLog(query.lastError().text());return;}
|
||||
nReplyCount++;
|
||||
}
|
||||
query.prepare(strBodyQuery);
|
||||
query.bindValue(":NUM",m_mapData[strUrl].m_nNum);
|
||||
query.bindValue(":PLATFORMNAME",m_mapData[strUrl].m_strlist[m_anData[E_DATA_platform_name]].trimmed());
|
||||
query.bindValue(":PLATFORMFORM",m_mapData[strUrl].m_strlist[m_anData[E_DATA_platform_form]].trimmed());
|
||||
query.bindValue(":PLATFORMTITLE",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_platform_title]]).trimmed());
|
||||
query.bindValue(":ID",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_id]].trimmed());
|
||||
query.bindValue(":NICKNAME",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_nickname]].trimmed());
|
||||
query.bindValue(":TITLE",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_title]]).trimmed());
|
||||
query.bindValue(":PROFILE",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_profile]]).trimmed());
|
||||
QString strData = m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_data]];
|
||||
strData=strData.replace(QChar(160),"");
|
||||
bool bQuit = true;
|
||||
while(bQuit)
|
||||
{
|
||||
if (strData.contains("\n\n\n"))
|
||||
strData=strData.replace("\n\n\n","");
|
||||
else
|
||||
bQuit = false;
|
||||
}
|
||||
//strData=SeqDelString(strData,QChar('\n'),2);
|
||||
query.bindValue(":DATA",SqlString(strData.replace(QString("\n"),QString("<br>"))).trimmed());
|
||||
query.bindValue(":PROFILEURL",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_profileurl]]).trimmed());
|
||||
QString strArticleUrl = m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_url]].trimmed();
|
||||
query.bindValue(":URL",strArticleUrl.right(strArticleUrl.length() - QString("http://").length()));
|
||||
if (m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_hit]].trimmed().isEmpty())
|
||||
query.bindValue(":VIEW","-1");
|
||||
else
|
||||
query.bindValue(":VIEW",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_hit]]);
|
||||
query.bindValue(":DATE",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_date]].trimmed());
|
||||
if (m_mapData[strUrl].m_vecReply.size() == 0)
|
||||
{
|
||||
query.bindValue(":REPLY_STARTNUM",-1);
|
||||
query.bindValue(":REPLY_ENDNUM",-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
query.bindValue(":REPLY_STARTNUM",nReplyStart);
|
||||
query.bindValue(":REPLY_ENDNUM",nReplyCount-1);
|
||||
}
|
||||
QString strDate = m_mapData[strUrl].m_dtLast.toString("yyyy-MM-dd HH:mm:ss");
|
||||
if (strDate.trimmed().isEmpty())
|
||||
query.bindValue(":LASTUPDATE","1900-01-01 00:00:00");
|
||||
else
|
||||
query.bindValue(":LASTUPDATE",strDate);
|
||||
|
||||
query.bindValue(":REALBYCATEGORYNUM",GetVectorToString(m_mapData[strUrl].m_vecCategory," "));
|
||||
if (query.exec()==false) {InsertLog(query.lastError().text());return; }
|
||||
}
|
||||
query.prepare(strMapQuery);
|
||||
int nCount = 0;
|
||||
foreach(SMap stMap,m_vecMap)
|
||||
{
|
||||
query.bindValue(":NUM",nCount++);
|
||||
query.bindValue(":BODY_NUM",stMap.m_nBody);
|
||||
query.bindValue(":CATEGORY_NUM",stMap.m_nCategory);
|
||||
query.bindValue(":REALIN",stMap.m_nRealIn);
|
||||
if (query.exec()==false)
|
||||
{
|
||||
InsertLog(query.lastError().text());return;
|
||||
}
|
||||
}
|
||||
|
||||
QDate date = QDate::currentDate().addDays(-60);
|
||||
QString astrOrderBy[D_ARTICLE_MAX] = {"body","reply","all"};
|
||||
while(date <= QDate::currentDate())
|
||||
{
|
||||
QVector <SBuzzyCount> vecCount;
|
||||
foreach(SBuzzy stBuzzy,m_vecBuzzy)
|
||||
{
|
||||
SBuzzyCount stCount;
|
||||
memset(&stCount.m_anCount,0,sizeof(int)*D_ARTICLE_MAX);
|
||||
stCount.m_nCategory = stBuzzy.m_nCategory;
|
||||
if (stBuzzy.m_astArticle[E_ARTICLE_BODY].m_mapCount.contains(date))
|
||||
stCount.m_anCount[0] = stBuzzy.m_astArticle[E_ARTICLE_BODY].m_mapCount[date];
|
||||
if (stBuzzy.m_astArticle[E_ARTICLE_REPLY].m_mapCount.contains(date))
|
||||
stCount.m_anCount[1] = stBuzzy.m_astArticle[E_ARTICLE_REPLY].m_mapCount[date];
|
||||
stCount.m_anCount[2] = stCount.m_anCount[0] + stCount.m_anCount[1];
|
||||
vecCount.push_back(stCount);
|
||||
}
|
||||
for (int i = 0; i < D_ARTICLE_MAX ; i++)
|
||||
{
|
||||
strQuery = "insert stats_articlebuzzbyday set ";
|
||||
foreach(SBuzzyCount stCount,vecCount)
|
||||
{
|
||||
strQuery += "category_";
|
||||
//if (stCount.m_nCategory)
|
||||
strQuery += QString::number(stCount.m_nCategory);
|
||||
//else
|
||||
//strQuery += "all";
|
||||
strQuery += " = ";
|
||||
strQuery += QString::number(stCount.m_anCount[i]);
|
||||
strQuery += ",";
|
||||
}
|
||||
strQuery += "date = '";
|
||||
strQuery += date.toString("yyyy-MM-dd");
|
||||
strQuery += "', subject = '";
|
||||
strQuery += astrOrderBy[i];
|
||||
strQuery += "',company_num = ";
|
||||
strQuery += _strCompanyNum;
|
||||
if (query.exec(strQuery.toUtf8())==false) { InsertLog(query.lastError().text()); }
|
||||
}
|
||||
date = date.addDays(1);
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
bool QSortPowerCafe(const SPowerCafeCount &st1, const SPowerCafeCount &st2)
|
||||
{
|
||||
return st1.m_ncAll > st2.m_ncAll;
|
||||
@@ -1111,7 +1048,11 @@ void Widget::on_power_cafe_count()
|
||||
{
|
||||
SPowerCafeCount stPowerCafe;
|
||||
stPowerCafe.m_strCafeID = strKey;
|
||||
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
|
||||
QString strUrl = GetCommunityKey(strlist);
|
||||
if (m_mapCommunity.contains(strUrl) == false ) continue;
|
||||
stPowerCafe.m_strCommunityURL = strUrl;
|
||||
stPowerCafe.m_nCommunityID = m_mapCommunity[strUrl].m_nNum;
|
||||
stPowerCafe.m_strlistData = strlist;
|
||||
mapRealCount.insert(strKey,stPowerCafe);
|
||||
}
|
||||
mapRealCount[strKey].m_ncBodyReal++;
|
||||
@@ -1130,7 +1071,11 @@ void Widget::on_power_cafe_count()
|
||||
{
|
||||
SPowerCafeCount stPowerCafe;
|
||||
stPowerCafe.m_strCafeID = strKey;
|
||||
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
|
||||
QString strUrl = GetCommunityKey(strlist);
|
||||
if (m_mapCommunity.contains(strUrl) == false ) continue;
|
||||
stPowerCafe.m_strCommunityURL = strUrl;
|
||||
stPowerCafe.m_nCommunityID = m_mapCommunity[strUrl].m_nNum;
|
||||
stPowerCafe.m_strlistData = strlist;
|
||||
mapRealCount.insert(strKey,stPowerCafe);
|
||||
}
|
||||
mapRealCount[strKey].m_ncReplyReal++;
|
||||
@@ -1148,7 +1093,11 @@ void Widget::on_power_cafe_count()
|
||||
{
|
||||
SPowerCafeCount stPowerCafe;
|
||||
stPowerCafe.m_strCafeID = strKey;
|
||||
stPowerCafe.m_strTitle = stBody.m_strlist[m_anData[E_DATA_platform_title]];
|
||||
QString strUrl = GetCommunityKey(stBody.m_strlist);
|
||||
if (m_mapCommunity.contains(strUrl) == false ) continue;
|
||||
stPowerCafe.m_strCommunityURL = strUrl;
|
||||
stPowerCafe.m_nCommunityID = m_mapCommunity[strUrl].m_nNum;
|
||||
stPowerCafe.m_strlistData = stBody.m_strlist;
|
||||
mapAllCount.insert(strKey,stPowerCafe);
|
||||
}
|
||||
mapAllCount[strKey].m_ncBodyAll++;
|
||||
@@ -1197,18 +1146,15 @@ void Widget::on_power_cafe_count()
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
QList<SPowerCafeCount> list = mapRealCount.values();
|
||||
qSort(list.begin(),list.end(),QSortPowerCafeReal);
|
||||
strQuery = "insert into powercafe (company_num,rank,community_num,community_id,bodycountall,replycountall,allcountall,usercountall,bodycountreal,replycountreal,allcountreal,usercountreal)"
|
||||
" VALUES (" + strCompanyNum + ",:RANK,:COMMNUNITY_NUM,:COMMNUNITY_ID,:BODY_ALL,:REPLY_ALL,:COUNT_ALL,:USER_ALL,:BODY_REAL,:REPLY_REAL,:ALL_REAL,:USER_REAL)";
|
||||
|
||||
strQuery = "insert into powercafe (company_num,rank,id,title,url,bodycountall,replycountall,allcountall,usercountall,bodycountreal,replycountreal,allcountreal,usercountreal)"
|
||||
" VALUES (" + strCompanyNum + ",0,:ID,:TITLE,:URL,:BODY_ALL,:REPLY_ALL,:COUNT_ALL,:USER_ALL,:BODY_REAL,:REPLY_REAL,:ALL_REAL,:USER_REAL)";
|
||||
|
||||
int nCount = 0;
|
||||
query.prepare(strQuery.toUtf8());
|
||||
foreach(SPowerCafeCount stIn,list)
|
||||
{
|
||||
if (stIn.m_strCafeID.trimmed().isEmpty()) continue;
|
||||
if (stIn.m_strTitle.trimmed().isEmpty()) continue;
|
||||
query.bindValue(":ID",stIn.m_strCafeID.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
|
||||
query.bindValue(":URL",QString("cafe.naver.com/" + stIn.m_strCafeID.trimmed()).toUtf8());
|
||||
query.bindValue(":COMMNUNITY_NUM",stIn.m_nCommunityID);
|
||||
query.bindValue(":COMMNUNITY_ID",stIn.m_strCafeID);
|
||||
query.bindValue(":BODY_ALL",stIn.m_ncBodyAll);
|
||||
query.bindValue(":REPLY_ALL",stIn.m_ncReplyAll);
|
||||
query.bindValue(":COUNT_ALL",stIn.m_ncAll);
|
||||
@@ -1217,40 +1163,49 @@ void Widget::on_power_cafe_count()
|
||||
query.bindValue(":REPLY_REAL",stIn.m_ncReplyReal);
|
||||
query.bindValue(":ALL_REAL",stIn.m_ncAllReal);
|
||||
query.bindValue(":USER_REAL",stIn.m_mapUser.size());
|
||||
if(query.exec() == false) {InsertLog(query.lastError().text());return;}
|
||||
query.bindValue(":RANK",++nCount);
|
||||
if(query.exec() == false) {
|
||||
InsertLog(query.lastError().text());return;
|
||||
}
|
||||
}
|
||||
int nCount = 0;
|
||||
strQuery = "insert into stats_powercaferank (rank,articlecountall,usercountreal,subject,company_num,id,title,articlecountreal)"
|
||||
" VALUES (0,0,0,'articlecountreal'," + strCompanyNum + ",:ID,:TITLE,:COUNT_ALL)";
|
||||
nCount = 0;
|
||||
//articlecountall/articlecountreal/usercountreal
|
||||
strQuery = "insert into stats_powercaferank (rank,articlecountall,usercountreal,subject,company_num,community_id,community_title,articlecountreal)"
|
||||
" VALUES (:RANK,0,0,'articlecountreal'," + strCompanyNum + ",:ID,:TITLE,:COUNT_ALL)";
|
||||
query.prepare(strQuery.toUtf8());
|
||||
foreach(SPowerCafeCount stIn,list)
|
||||
{
|
||||
if (stIn.m_strCafeID.trimmed().isEmpty()) continue;
|
||||
if (stIn.m_strTitle.trimmed().isEmpty()) continue;
|
||||
if (stIn.m_strlistData[m_anData[E_DATA_platform_title]].trimmed().isEmpty()) continue;
|
||||
if (nCount >= 10) break; nCount++;
|
||||
query.bindValue(":ID",stIn.m_strCafeID.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strlistData[m_anData[E_DATA_platform_title]].trimmed().toUtf8());
|
||||
query.bindValue(":COUNT_ALL",stIn.m_ncAllReal);
|
||||
if(query.exec() == false) {InsertLog(query.lastError().text());return;}
|
||||
query.bindValue(":RANK",nCount);
|
||||
if(query.exec() == false) {
|
||||
InsertLog(query.lastError().text());return;
|
||||
}
|
||||
}
|
||||
|
||||
QList<SPowerCafeCount> listAll = mapAllCount.values();
|
||||
qSort(listAll.begin(),listAll.end(),QSortPowerCafe);
|
||||
|
||||
nCount = 0;
|
||||
strQuery = "insert into stats_powercaferank (rank,articlecountreal,usercountreal,subject,company_num,id,title,articlecountall)"
|
||||
" VALUES (0,0,0,'articlecountall'," + strCompanyNum + ",:ID,:TITLE,:COUNT_ALL)";
|
||||
strQuery = "insert into stats_powercaferank (rank,articlecountreal,usercountreal,subject,company_num,community_id,community_title,articlecountall)"
|
||||
" VALUES (:RANK,0,0,'articlecountall'," + strCompanyNum + ",:ID,:TITLE,:COUNT_ALL)";
|
||||
query.prepare(strQuery.toUtf8());
|
||||
foreach(SPowerCafeCount stIn,listAll)
|
||||
{
|
||||
if (stIn.m_strCafeID.trimmed().isEmpty()) continue;
|
||||
if (stIn.m_strTitle.trimmed().isEmpty()) continue;
|
||||
if (stIn.m_strlistData[m_anData[E_DATA_platform_title]].trimmed().isEmpty()) continue;
|
||||
if (nCount >= 10) break; nCount++;
|
||||
query.bindValue(":ID",stIn.m_strCafeID.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strlistData[m_anData[E_DATA_platform_title]].trimmed().toUtf8());
|
||||
query.bindValue(":COUNT_ALL",stIn.m_ncAll);
|
||||
query.bindValue(":RANK",nCount);
|
||||
if(query.exec() == false) {
|
||||
InsertLog(query.lastError().text());return;}
|
||||
InsertLog(query.lastError().text());
|
||||
return;}
|
||||
}
|
||||
db.close();
|
||||
InsertLog("Power Cafe Rank Send End");
|
||||
@@ -1283,17 +1238,23 @@ void Widget::InfluenceCount()
|
||||
foreach(SBody stBody, m_mapData.values())
|
||||
{
|
||||
if (stBody.m_strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("blog")) != 0) continue;
|
||||
QString strKey = stBody.m_strlist[m_anData[E_DATA_article_id]];
|
||||
QString strKey = stBody.m_strlist[m_anData[E_DATA_article_id]].trimmed();
|
||||
if (mapCount.contains(strKey)==false)
|
||||
{
|
||||
SInfluenceCount stInfluence;
|
||||
stInfluence.m_nID = m_mapID[strKey].m_nNum;
|
||||
QString strCommunityKey = GetCommunityKey(stBody.m_strlist);
|
||||
if (m_mapCommunity.contains(strCommunityKey) == false) continue;
|
||||
stInfluence.m_nCommunity = m_mapCommunity[strCommunityKey].m_nNum;
|
||||
QString strNickname = stBody.m_strlist[m_anData[E_DATA_article_nickname]].trimmed();
|
||||
if (m_mapNickname.contains(strNickname) == false)
|
||||
stInfluence.m_nNickname = -1;
|
||||
else
|
||||
stInfluence.m_nNickname = m_mapNickname[strNickname].m_nNum;
|
||||
stInfluence.m_ncBody = 0;
|
||||
stInfluence.m_ncReply = 0;
|
||||
stInfluence.m_strID = strKey;
|
||||
stInfluence.m_strNick = stBody.m_strlist[m_anData[E_DATA_article_nickname]];
|
||||
stInfluence.m_strTitle = stBody.m_strlist[m_anData[E_DATA_platform_title]];
|
||||
stInfluence.m_strProfileUrl = stBody.m_strlist[m_anData[E_DATA_article_profileurl]];
|
||||
stInfluence.m_strProfile = stBody.m_strlist[m_anData[E_DATA_article_profile]];
|
||||
stInfluence.m_strlistData = stBody.m_strlist;
|
||||
mapCount.insert(strKey,stInfluence);
|
||||
}
|
||||
mapCount[strKey].m_ncBody++;
|
||||
@@ -1330,29 +1291,34 @@ void Widget::InfluenceCount()
|
||||
QList<SInfluenceCount> list = mapCount.values();
|
||||
qSort(list.begin(),list.end(),QSortInfulrence);
|
||||
|
||||
strQuery = "insert into influencer (cost,company_num,id,nickname,title,profileurl,bodycount,replycount,influencevalue,profile)"
|
||||
" VALUES (0," + strCompanyNum + ",:ID,:NICKNAME,:TITLE,:PROFILE_URL,:BODY_COUNT,:REPLY_COUNT,:INPL,:PROFILE)";
|
||||
//id_id,rank,
|
||||
strQuery = "insert into influencer (rank,company_num,id_num,nickname_num,community_num,bodycount,replycount,influencervalue,profile,profileurl,id_id)"
|
||||
" VALUES (:RANK," + strCompanyNum + ",:ID_NUM,:NICKNAME_NUM,:COMMUNITY_NUM,:BODY_COUNT,:REPLY_COUNT,:INPL,:PROFILE,:PROFILE_URL,:ID_ID)";
|
||||
|
||||
query.prepare(strQuery.toUtf8());
|
||||
int ncRank = 1;
|
||||
foreach(SInfluenceCount stIn,list)
|
||||
{
|
||||
if (stIn.m_strID.length() > 42) continue;
|
||||
query.bindValue(":ID",stIn.m_strID.trimmed().toUtf8());
|
||||
query.bindValue(":NICKNAME",stIn.m_strNick.trimmed().toUtf8());
|
||||
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
|
||||
query.bindValue(":PROFILE_URL",stIn.m_strProfileUrl.trimmed().toUtf8());
|
||||
if (m_mapID.contains(stIn.m_strID) == false ) continue;
|
||||
query.bindValue(":ID_NUM",stIn.m_nID);
|
||||
query.bindValue(":NICKNAME_NUM",stIn.m_nNickname);
|
||||
query.bindValue(":COMMUNITY_NUM",stIn.m_nCommunity);
|
||||
query.bindValue(":BODY_COUNT",stIn.m_ncBody);
|
||||
query.bindValue(":REPLY_COUNT",stIn.m_ncReply);
|
||||
query.bindValue(":INPL",QString::number(stIn.m_dinfulrence,'g',3));
|
||||
query.bindValue(":PROFILE",stIn.m_strProfile.trimmed());
|
||||
query.bindValue(":PROFILE",stIn.m_strlistData.at(m_anData[E_DATA_article_profile]).trimmed().toUtf8());
|
||||
query.bindValue(":PROFILE_URL",stIn.m_strlistData.at(m_anData[E_DATA_article_profileurl]).trimmed().toUtf8());
|
||||
query.bindValue(":ID_ID",stIn.m_strID.trimmed().toUtf8());
|
||||
query.bindValue(":RANK",ncRank++);
|
||||
if(query.exec() == false) {InsertLog(query.lastError().text());return;}
|
||||
}
|
||||
|
||||
int nCount = 0;
|
||||
int nCount = 0;
|
||||
foreach(SInfluenceCount stIn,list)
|
||||
{
|
||||
if (nCount >= 10) break; nCount++;
|
||||
strQuery = MakeInfluencerrankQuery(stIn,"influencevalue",strCompanyNum);
|
||||
strQuery = MakeInfluencerrankQuery(stIn,nCount,"influencevalue",strCompanyNum);
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
}
|
||||
nCount = 0;
|
||||
@@ -1360,7 +1326,7 @@ void Widget::InfluenceCount()
|
||||
foreach(SInfluenceCount stIn,list)
|
||||
{
|
||||
if (nCount >= 10) break; nCount++;
|
||||
strQuery = MakeInfluencerrankQuery(stIn,"bodycount",strCompanyNum);
|
||||
strQuery = MakeInfluencerrankQuery(stIn,nCount,"bodycount",strCompanyNum);
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
}
|
||||
|
||||
@@ -1369,7 +1335,7 @@ void Widget::InfluenceCount()
|
||||
foreach(SInfluenceCount stIn,list)
|
||||
{
|
||||
if (nCount >= 10) break; nCount++;
|
||||
strQuery = MakeInfluencerrankQuery(stIn,"replycount",strCompanyNum);
|
||||
strQuery = MakeInfluencerrankQuery(stIn,nCount,"replycount",strCompanyNum);
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
}
|
||||
db.close();
|
||||
@@ -1530,16 +1496,17 @@ void Widget::on_influence_count()
|
||||
InfluenceCount();
|
||||
}
|
||||
|
||||
QString Widget::MakeInfluencerrankQuery(SInfluenceCount &_stIn,QString _strOrder,QString _strCompanyNum)
|
||||
QString Widget::MakeInfluencerrankQuery(const SInfluenceCount &_stIn,int _nRank,QString _strSubject,QString _strCompanyNum)
|
||||
{
|
||||
QString strOut;
|
||||
strOut = "insert into stats_influencerrank(rank,id,nickname,bodycount,replycount,influencevalue,subject,company_num) VALUES (0,";
|
||||
strOut += "'" + _stIn.m_strID.trimmed() + "',";
|
||||
strOut += "'" + _stIn.m_strNick.trimmed() + "',";
|
||||
QString strOut;
|
||||
strOut = "insert into stats_influencerrank(rank,id_id,nickname_nickname,bodycount,replycount,influencevalue,subject,company_num) VALUES (";
|
||||
strOut += QString::number(_nRank) + ",";
|
||||
strOut += "'" + _stIn.m_strlistData.at(m_anData[E_DATA_article_id]).trimmed() + "',";
|
||||
strOut += "'" + _stIn.m_strlistData.at(m_anData[E_DATA_article_nickname]).trimmed() + "',";
|
||||
strOut += QString::number(_stIn.m_ncBody) + ",";
|
||||
strOut += QString::number(_stIn.m_ncReply) + ",";
|
||||
strOut += QString::number(_stIn.m_dinfulrence,'g',3)+ ",";
|
||||
strOut += "'" + _strOrder + "',";
|
||||
strOut += "'" + _strSubject + "',";
|
||||
strOut += _strCompanyNum + ")";
|
||||
return strOut;
|
||||
}
|
||||
@@ -1705,34 +1672,265 @@ void Widget::on_spammers_count()
|
||||
strQuery = "delete from spammer where company_num = " + strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
QMap <QString,int> mapPlatformnameCount;
|
||||
|
||||
foreach(QString str,m_mapPlatformname.keys())
|
||||
mapPlatformnameCount.insert(str,0);
|
||||
|
||||
int nCount = 0;
|
||||
foreach(SSpamer stIn,list)
|
||||
{
|
||||
QStringList strList = stIn.m_strKey.split(",");
|
||||
if (strList[2].trimmed().isEmpty()) continue;
|
||||
|
||||
QString strValue = "0,'";
|
||||
strValue += strList[0] + "','";
|
||||
strValue += strList[1] + "','";
|
||||
strValue += strList[2] + "','";
|
||||
strValue += stIn.m_strNickname + "',";
|
||||
QString strID = strList[2].trimmed();
|
||||
QString strPlatformname = strList[0].trimmed();
|
||||
if (strID.isEmpty()) continue;
|
||||
if (strPlatformname.isEmpty()) continue;
|
||||
QString strValue = QString::number(nCount+1) + ",";
|
||||
strValue += QString::number(m_mapID[strID].m_nNum) + ",'";
|
||||
strValue += strID + "',";
|
||||
strValue += QString::number(stIn.m_setNick.size()) + ",";
|
||||
strValue += QString::number((int)stIn.m_dBodycount) + ",";
|
||||
strValue += QString::number((int)stIn.m_dReplycount) + ",";
|
||||
strValue += QString::number(stIn.m_dSpammerValue,'g',3) + ",";
|
||||
strValue += strCompanyNum;
|
||||
strQuery = "insert into spammer (rank,platformname,platformform,id,nickname,nicknamecount,bodycount,replycount,spammervalue,company_num) VALUES (";
|
||||
strValue += strCompanyNum;
|
||||
strQuery = "insert into spammer (rank,id_num,id_id,nicknamecount,bodycount,replycount,spammervalue,company_num) VALUES (";
|
||||
strQuery += strValue + ")";
|
||||
if(query.exec(strQuery.toUtf8()) == false) {qDebug() << strQuery;InsertLog(query.lastError().text());return;}
|
||||
if (nCount < 20)
|
||||
if (mapPlatformnameCount.contains(strPlatformname))
|
||||
{
|
||||
strQuery = "insert into stats_spammerrank (rank,platformname,platformform,id,nickname,nicknamecount,bodycount,replycount,spammervalue,company_num,subject) VALUES (";
|
||||
strQuery += strValue + ",'spammervalue')";
|
||||
if(query.exec(strQuery.toUtf8()) == false) {qDebug() << strQuery;InsertLog(query.lastError().text());return;}
|
||||
if (mapPlatformnameCount[strPlatformname] < 10)
|
||||
{
|
||||
strQuery = "insert into stats_spammerrank (rank,id_num,id_id,nicknamecount,bodycount,replycount,spammervalue,company_num,platformname_name,subject) VALUES (";
|
||||
strQuery += strValue + ",'" + strPlatformname + "','spammervalue')";
|
||||
if(query.exec(strQuery.toUtf8()) == false) {qDebug() << strQuery;InsertLog(query.lastError().text());return;}
|
||||
mapPlatformnameCount[strPlatformname]++;
|
||||
}
|
||||
}
|
||||
nCount++;
|
||||
}
|
||||
db.close();
|
||||
InsertLog("Spamer Rank Count Send End ");
|
||||
}
|
||||
}
|
||||
|
||||
void Widget::DataPut(QString _strCompanyNum)
|
||||
{
|
||||
db.setHostName(D_DB_WEB_HOST);
|
||||
db.setUserName(D_DB_WEB_USER);
|
||||
db.setPassword(D_DB_WEB_PASS);
|
||||
db.setDatabaseName(D_DB_WEB_NAME);
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
QSqlQuery query;
|
||||
QString strQuery;
|
||||
|
||||
//if(query.exec(QString("SET AUTOCOMMIT = FALSE").toUtf8()) == false) {InsertLog(query.lastError().text());db.close();return;}
|
||||
|
||||
strQuery = "delete from body_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from reply_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from body_category_map_" + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from stats_articlebuzzbyday where company_num = " + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from id where company_num = " + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from nickname where company_num = " + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
strQuery = "delete from community where company_num = " + _strCompanyNum;
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
//QString strReplyQuery = QString("insert into reply_" + _strCompanyNum + " (num,id,nickname,parent,data,date,body_num,realbycategorynum) VALUES (:NUM,:ID,:NICKNAME,:PARENT,:DATA,:DATE,:BODY_NUM,:REALBYCATEGORYNUM)").toUtf8();
|
||||
QString strReplyQuery = QString("insert into reply_" + _strCompanyNum + " (num,id_num,nickname_num,community_num,parent,data,date,body_num,realbycategorynum) VALUES (:NUM,:ID_NUM,:NICKNAME_NUM,:COMMUNITY_NUM,:PARENT,:DATA,:DATE,:BODY_NUM,:REALBYCATEGORYNUM)").toUtf8();
|
||||
QString strBodyQuery = QString("insert into body_" + _strCompanyNum + " (num,id_num,nickname_num,community_num,platformname_num,platformform_num, title, data, url, view, date, reply_startnum, reply_endnum, reply_count, lastupdate, realbycategorynum)"
|
||||
" VALUES (:NUM,:ID_NUM,:NICKNAME_NUM,:COMMUNITY_NUM,:PLATFORMNAME_NUM,:PLATFORMFORM_NUM,:TITLE,:DATA,:URL,:VIEW,:DATE,:REPLY_STARTNUM,:REPLY_ENDNUM,:REPLY_COUNT,:LASTUPDATE,:REALBYCATEGORYNUM)").toUtf8();
|
||||
QString strMapQuery = QString("insert into body_category_map_" + _strCompanyNum + " (num,body_num,category_num,realin) VALUES (:NUM,:BODY_NUM,:CATEGORY_NUM,:REALIN)").toUtf8();
|
||||
|
||||
QString strCommunityQuery = QString("insert into community(num,id,title,url,platformname_num,platformform_num,company_num) values (");
|
||||
|
||||
foreach (SCommunity stCommunity,m_mapCommunity.values())
|
||||
{
|
||||
strQuery = strCommunityQuery;
|
||||
strQuery += QString::number(stCommunity.m_nNum);
|
||||
strQuery += ",'" + stCommunity.m_strID + "'";
|
||||
strQuery += ",'" + SqlString(stCommunity.m_strTitle) + "'";
|
||||
strQuery += ",'" + SqlString(stCommunity.m_strUrl) + "'";
|
||||
strQuery += "," + QString::number(stCommunity.m_nPlatformname);
|
||||
strQuery += "," + QString::number(stCommunity.m_nPlatformform);
|
||||
strQuery += "," + _strCompanyNum + ")";
|
||||
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());db.close();qDebug() << strQuery;return;}
|
||||
}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
QString strIDQuery = QString("insert into id(num,id,platformname_num,community_num,company_num) values (");
|
||||
foreach (SId stID,m_mapID.values())
|
||||
{
|
||||
strQuery = strIDQuery;
|
||||
strQuery += QString::number(stID.m_nNum);
|
||||
strQuery += ",'" + stID.m_strID + "'";
|
||||
strQuery += "," + QString::number(stID.m_nPlatfromName);
|
||||
strQuery += "," + QString::number(stID.m_nCommunity);
|
||||
strQuery += "," + _strCompanyNum + ")";
|
||||
if(query.exec(strQuery.toUtf8()) == false) {qDebug() << strQuery;InsertLog(query.lastError().text());db.close();return;}
|
||||
}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
QString strNickQuery = QString("insert into nickname(num,nickname,id_num,company_num) values (");
|
||||
foreach (SNickname stNick,m_mapNickname.values())
|
||||
{
|
||||
strQuery = strNickQuery;
|
||||
strQuery += QString::number(stNick.m_nNum);
|
||||
strQuery += ",'" + SqlString(stNick.m_strNickname) + "'";
|
||||
strQuery += "," + QString::number(stNick.m_nID);
|
||||
strQuery += "," + _strCompanyNum + ")";
|
||||
if(query.exec(strQuery.toUtf8()) == false)
|
||||
{
|
||||
InsertLog(query.lastError().text());db.close();qDebug() << strQuery;return;
|
||||
}
|
||||
}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
int nReplyCount = 0;
|
||||
foreach(QString strUrl , m_strlistOrder )
|
||||
{
|
||||
int nReplyStart = nReplyCount;
|
||||
foreach(SReply stReply,m_mapData[strUrl].m_vecReply)
|
||||
{
|
||||
query.prepare(strReplyQuery);
|
||||
query.bindValue(":NUM",nReplyCount);
|
||||
query.bindValue(":ID_NUM",m_mapID[stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed()].m_nNum);
|
||||
query.bindValue(":NICKNAME_NUM",m_mapNickname[stReply.m_strlist[m_anData[E_DATA_article_nickname]].trimmed()].m_nNum);
|
||||
query.bindValue(":COMMUNITY_NUM",m_mapCommunity[GetCommunityKey(m_mapData[strUrl].m_strlist)].m_nNum);
|
||||
query.bindValue(":PARENT",stReply.m_strlist[m_anData[E_DATA_article_parent]].trimmed().toUtf8());
|
||||
query.bindValue(":DATA",SqlString(stReply.m_strlist[m_anData[E_DATA_article_data]].trimmed()).toUtf8());
|
||||
query.bindValue(":DATE",stReply.m_strlist[m_anData[E_DATA_article_date]].trimmed().toUtf8());
|
||||
query.bindValue(":BODY_NUM",m_mapData[strUrl].m_nNum);
|
||||
query.bindValue(":REALBYCATEGORYNUM",GetVectorToString(stReply.m_vecCategory," "));
|
||||
if (query.exec()==false){InsertLog(query.lastError().text());db.close();return;}
|
||||
nReplyCount++;
|
||||
}
|
||||
query.prepare(strBodyQuery);
|
||||
query.bindValue(":NUM",m_mapData[strUrl].m_nNum);
|
||||
query.bindValue(":PLATFORMNAME_NUM",m_mapPlatformname[m_mapData[strUrl].m_strlist[m_anData[E_DATA_platform_name]].trimmed()]);
|
||||
query.bindValue(":PLATFORMFORM_NUM",m_mapPlatformform[m_mapData[strUrl].m_strlist[m_anData[E_DATA_platform_form]].trimmed()]);
|
||||
query.bindValue(":ID_NUM",m_mapID[m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_id]].trimmed()].m_nNum);
|
||||
query.bindValue(":NICKNAME_NUM",m_mapNickname[m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_nickname]].trimmed()].m_nID);
|
||||
query.bindValue(":COMMUNITY_NUM",m_mapCommunity[GetCommunityKey(m_mapData[strUrl].m_strlist)].m_nNum);
|
||||
query.bindValue(":TITLE",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_title]]).trimmed());
|
||||
query.bindValue(":PROFILE",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_profile]]).trimmed());
|
||||
QString strData = m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_data]];
|
||||
strData=strData.replace(QChar(160),"");
|
||||
bool bQuit = true;
|
||||
while(bQuit)
|
||||
{
|
||||
if (strData.contains("\n\n\n"))
|
||||
strData=strData.replace("\n\n\n","");
|
||||
else
|
||||
bQuit = false;
|
||||
}
|
||||
//strData=SeqDelString(strData,QChar('\n'),2);
|
||||
query.bindValue(":DATA",SqlString(strData.replace(QString("\n"),QString("<br>"))).trimmed());
|
||||
//query.bindValue(":PROFILEURL",SqlString(m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_profileurl]]).trimmed());
|
||||
QString strArticleUrl = m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_url]].trimmed();
|
||||
query.bindValue(":URL",strArticleUrl.right(strArticleUrl.length() - QString("http://").length()));
|
||||
if (m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_hit]].trimmed().isEmpty())
|
||||
query.bindValue(":VIEW","-1");
|
||||
else
|
||||
query.bindValue(":VIEW",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_hit]]);
|
||||
query.bindValue(":DATE",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_date]].trimmed());
|
||||
if (m_mapData[strUrl].m_vecReply.size() == 0)
|
||||
{
|
||||
query.bindValue(":REPLY_STARTNUM",-1);
|
||||
query.bindValue(":REPLY_ENDNUM",-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
query.bindValue(":REPLY_STARTNUM",nReplyStart);
|
||||
query.bindValue(":REPLY_ENDNUM",nReplyCount-1);
|
||||
}
|
||||
query.bindValue(":REPLY_COUNT",m_mapData[strUrl].m_vecReply.size());
|
||||
QString strDate = m_mapData[strUrl].m_dtLast.toString("yyyy-MM-dd HH:mm:ss");
|
||||
if (strDate.trimmed().isEmpty())
|
||||
query.bindValue(":LASTUPDATE","1900-01-01 00:00:00");
|
||||
else
|
||||
query.bindValue(":LASTUPDATE",strDate);
|
||||
|
||||
query.bindValue(":REALBYCATEGORYNUM",GetVectorToString(m_mapData[strUrl].m_vecCategory," "));
|
||||
if (query.exec()==false) {InsertLog(query.lastError().text());db.close();return;}
|
||||
}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
query.prepare(strMapQuery);
|
||||
int nCount = 0;
|
||||
foreach(SMap stMap,m_vecMap)
|
||||
{
|
||||
query.bindValue(":NUM",nCount++);
|
||||
query.bindValue(":BODY_NUM",stMap.m_nBody);
|
||||
query.bindValue(":CATEGORY_NUM",stMap.m_nCategory);
|
||||
query.bindValue(":REALIN",stMap.m_nRealIn);
|
||||
if (query.exec()==false){InsertLog(query.lastError().text());db.close();qDebug() << strQuery;return;}
|
||||
}
|
||||
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
|
||||
QDate date = QDate::currentDate().addDays(-60);
|
||||
//QString astrOrderBy[D_ARTICLE_MAX] = {"body","reply","all"};
|
||||
while(date <= QDate::currentDate())
|
||||
{
|
||||
QVector <SBuzzyCount> vecCount;
|
||||
foreach(SBuzzy stBuzzy,m_vecBuzzy)
|
||||
{
|
||||
SBuzzyCount stCount;
|
||||
memset(&stCount.m_anCount,0,sizeof(int)*D_ARTICLE_MAX);
|
||||
stCount.m_nCategory = stBuzzy.m_nCategory;
|
||||
if (stBuzzy.m_astArticle[E_ARTICLE_BODY].m_mapCount.contains(date))
|
||||
stCount.m_anCount[0] = stBuzzy.m_astArticle[E_ARTICLE_BODY].m_mapCount[date];
|
||||
if (stBuzzy.m_astArticle[E_ARTICLE_REPLY].m_mapCount.contains(date))
|
||||
stCount.m_anCount[1] = stBuzzy.m_astArticle[E_ARTICLE_REPLY].m_mapCount[date];
|
||||
stCount.m_anCount[2] = stCount.m_anCount[0] + stCount.m_anCount[1];
|
||||
vecCount.push_back(stCount);
|
||||
}
|
||||
for (int i = 0; i < D_ARTICLE_MAX ; i++)
|
||||
{
|
||||
strQuery = "insert stats_articlebuzzbyday set ";
|
||||
foreach(SBuzzyCount stCount,vecCount)
|
||||
{
|
||||
strQuery += "category_";
|
||||
//if (stCount.m_nCategory)
|
||||
strQuery += QString::number(stCount.m_nCategory);
|
||||
//else
|
||||
//strQuery += "all";
|
||||
strQuery += " = ";
|
||||
strQuery += QString::number(stCount.m_anCount[i]);
|
||||
strQuery += ",";
|
||||
}
|
||||
strQuery += "date = '";
|
||||
strQuery += date.toString("yyyy-MM-dd");
|
||||
strQuery += "', subject = ";
|
||||
strQuery += QString::number(i); // body = 0 , reply = 1 , all = 2
|
||||
strQuery += ",company_num = ";
|
||||
strQuery += _strCompanyNum;
|
||||
if (query.exec(strQuery.toUtf8())==false) { InsertLog(query.lastError().text());db.close();qDebug() << strQuery;return;}
|
||||
}
|
||||
date = date.addDays(1);
|
||||
}
|
||||
//if(query.exec(QString("COMMIT").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
//if(query.exec(QString("SET AUTOCOMMIT = TRUE").toUtf8()) == false) {InsertLog(query.lastError().text());return;}
|
||||
//SET AUTOCOMMIT = TRUE;
|
||||
db.close();
|
||||
}
|
||||
|
||||
@@ -46,18 +46,24 @@ struct SInfluenceCount
|
||||
int m_ncBody;
|
||||
int m_ncReply;
|
||||
double m_dinfulrence;
|
||||
QString m_strID;
|
||||
QString m_strNick;
|
||||
int m_nID;
|
||||
int m_nNickname;
|
||||
int m_nCommunity;
|
||||
QString m_strID;
|
||||
QString m_strOrder;
|
||||
QString m_strProfileUrl;
|
||||
QString m_strTitle;
|
||||
QString m_strProfile;
|
||||
QStringList m_strlistData;
|
||||
SInfluenceCount()
|
||||
{
|
||||
m_nNickname = -1;
|
||||
}
|
||||
};
|
||||
|
||||
struct SPowerCafeCount
|
||||
{
|
||||
{
|
||||
QString m_strCafeID;
|
||||
QString m_strTitle;
|
||||
QString m_strCommunityURL;
|
||||
QStringList m_strlistData;
|
||||
int m_nCommunityID;
|
||||
int m_ncBodyAll;
|
||||
int m_ncReplyAll;
|
||||
int m_ncAll;
|
||||
@@ -93,6 +99,52 @@ struct SBuzzyCount
|
||||
int m_anCount[D_ARTICLE_MAX];
|
||||
};
|
||||
|
||||
struct SId
|
||||
{
|
||||
int m_nNum;
|
||||
int m_nPlatfromName;
|
||||
int m_nCommunity;
|
||||
QString m_strID;
|
||||
SId()
|
||||
{
|
||||
m_nNum = -1;
|
||||
m_nPlatfromName = 1;
|
||||
m_nCommunity = -1;
|
||||
m_strID = "(none)";
|
||||
}
|
||||
};
|
||||
|
||||
struct SCommunity
|
||||
{
|
||||
int m_nNum;
|
||||
int m_nPlatformname;
|
||||
int m_nPlatformform;
|
||||
QString m_strTitle;
|
||||
QString m_strUrl;
|
||||
QString m_strID;
|
||||
|
||||
SCommunity()
|
||||
{
|
||||
m_nNum = -1;
|
||||
m_nPlatformname = 1;
|
||||
m_nPlatformform = 1;
|
||||
m_strTitle = "(none)";
|
||||
m_strUrl = " ";
|
||||
m_strID = " ";
|
||||
}
|
||||
};
|
||||
|
||||
struct SNickname
|
||||
{
|
||||
int m_nNum;
|
||||
int m_nID;
|
||||
QString m_strNickname;
|
||||
SNickname()
|
||||
{
|
||||
m_nID = -1;
|
||||
}
|
||||
};
|
||||
|
||||
class Widget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -186,6 +238,12 @@ private:
|
||||
QSqlDatabase db;
|
||||
QVector <SInfluenceCount> m_vecInfluence;
|
||||
QVector <SBuzzy> m_vecBuzzy;
|
||||
/////////////////////////////////////////////////////
|
||||
QMap <QString,SId> m_mapID;
|
||||
QMap <QString,SCommunity> m_mapCommunity;
|
||||
QMap <QString,SNickname> m_mapNickname;
|
||||
QMap <QString,int> m_mapPlatformform;
|
||||
QMap <QString,int> m_mapPlatformname;
|
||||
//SGetThread *m_pThread;
|
||||
//SPutThread *m_pPutThread;
|
||||
//QVector <QStringList> m_mainData;
|
||||
@@ -205,12 +263,15 @@ private:
|
||||
bool ReloadColumn();
|
||||
void ReloadData();
|
||||
QString SeqDelString(QString _strData,QChar _chChar,int _nMax);
|
||||
QString MakeInfluencerrankQuery(SInfluenceCount &_stIn,QString _strOrder,QString _strCompanyNum);
|
||||
QString MakeInfluencerrankQuery(const SInfluenceCount &_stIn,int _nRank,QString _strSubject,QString _strCompanyNum);
|
||||
void MakeBuzzyAll();
|
||||
void MakeBuzzy(int _nCategory);
|
||||
QVariant GetWebData(QString _strTable,QString _strColumn,int _nNum);
|
||||
void InfluenceCount();
|
||||
void ConsumerSupervisionCount();
|
||||
//inline QString GetComKey(const QStringList _strList);
|
||||
inline QString GetCommunityKey(const QStringList _strList);
|
||||
|
||||
private slots:
|
||||
void CompanyItemChanged(QListWidgetItem*,QListWidgetItem* _prev = 0);
|
||||
void DataItemClicked(QListWidgetItem*);
|
||||
|
||||
Reference in New Issue
Block a user