Power Cafe Real 추가

git-svn-id: svn://192.168.0.12/source@66 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-03-31 06:46:22 +00:00
parent efdeb4fd90
commit bb3946edc8
2 changed files with 140 additions and 142 deletions

View File

@@ -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;
@@ -82,12 +82,6 @@ Widget::Widget(QWidget *parent) : C_MAP_REAL_BODY (0x01) , C_MAP_REAL_REPLY (0x0
hLayoutEdit->addWidget(ppbCount);
}
{
QPushButton *ppbCount = new QPushButton("Power Cafe Real Count");
connect(ppbCount, SIGNAL(released()),this, SLOT(on_power_cafe_real_count()));
hLayoutEdit->addWidget(ppbCount);
}
QPushButton *ppbInsert = new QPushButton("Insert");
connect(ppbInsert, SIGNAL(released()),this, SLOT(on_insert()));
hLayoutEdit->addWidget(ppbInsert);
@@ -1071,14 +1065,11 @@ void Widget::DataPut(QString _strCompanyNum)
}
strQuery += "date = '";
strQuery += date.toString("yyyy-MM-dd");
strQuery += "', orderby = '";
strQuery += "', subject = '";
strQuery += astrOrderBy[i];
strQuery += "',company_num = ";
strQuery += _strCompanyNum;
if (query.exec(strQuery.toUtf8())==false)
{
InsertLog(query.lastError().text());
}
if (query.exec(strQuery.toUtf8())==false) { InsertLog(query.lastError().text()); }
}
date = date.addDays(1);
}
@@ -1090,41 +1081,103 @@ bool QSortPowerCafe(const SPowerCafeCount &st1, const SPowerCafeCount &st2)
return st1.m_ncAll > st2.m_ncAll;
}
bool QSortPowerCafeReal(const SPowerCafeCount &st1, const SPowerCafeCount &st2)
{
return st1.m_ncAllReal > st2.m_ncAllReal;
}
void Widget::on_power_cafe_count()
{
QMap <QString,SPowerCafeCount> mapCount;
ReloadData();
foreach (QListWidgetItem *item,m_plw[E_LIST_FILTER].selectedItems())
{
InsertLog("Power Cafe Data Filter Run Start : " + item->text());
DataFilter(item->data(Qt::UserRole).toString());
InsertLog("Power Cafe Data Filter Run End ");
}
QMap <QString,SPowerCafeCount> mapRealCount;
QMap <QString,SPowerCafeCount> mapAllCount;
foreach (QListWidgetItem *item,m_plw[E_LIST_COMPANY].selectedItems())
{
InsertLog("Power Cafe Rank Count Make Start " + item->text());
QString strCompanyNum = item->data(Qt::UserRole).toString();
// real make
if (m_bDataFlag[E_ARTICLE_BODY] == true)
{
foreach(QStringList strlist,m_data[E_ARTICLE_BODY])
{
if (strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("cafe")) != 0) continue;
QString strKey = strlist[m_anData[E_DATA_platform_id]].trimmed();
if (mapRealCount.contains(strKey)==false)
{
SPowerCafeCount stPowerCafe;
stPowerCafe.m_strCafeID = strKey;
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
mapRealCount.insert(strKey,stPowerCafe);
}
mapRealCount[strKey].m_ncBodyReal++;
mapRealCount[strKey].m_ncAllReal++;
if (mapRealCount[strKey].m_mapUser.contains(strlist[m_anData[E_DATA_article_id]].trimmed())==false)
mapRealCount[strKey].m_mapUser.insert(strlist[m_anData[E_DATA_article_id]].trimmed(),true);
}
}
if (m_bDataFlag[E_ARTICLE_REPLY] == true)
{
foreach(QStringList strlist,m_data[E_ARTICLE_REPLY])
{
if (strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("cafe")) != 0) continue;
QString strKey = strlist[m_anData[E_DATA_platform_id]].trimmed();
if (mapRealCount.contains(strKey)==false)
{
SPowerCafeCount stPowerCafe;
stPowerCafe.m_strCafeID = strKey;
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
mapRealCount.insert(strKey,stPowerCafe);
}
mapRealCount[strKey].m_ncReplyReal++;
mapRealCount[strKey].m_ncAllReal++;
if (mapRealCount[strKey].m_mapUser.contains(strlist[m_anData[E_DATA_article_id]].trimmed())==false)
mapRealCount[strKey].m_mapUser.insert(strlist[m_anData[E_DATA_article_id]].trimmed(),true);
}
}
// all make
foreach(SBody stBody, m_mapData.values())
{
if (stBody.m_strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("cafe")) != 0) continue;
QString strKey = stBody.m_strlist[m_anData[E_DATA_platform_id]];
if (mapCount.contains(strKey)==false)
QString strKey = stBody.m_strlist[m_anData[E_DATA_platform_id]].trimmed();
if (mapAllCount.contains(strKey)==false)
{
SPowerCafeCount stPowerCafe;
stPowerCafe.m_strCafeID = strKey;
stPowerCafe.m_strTitle = stBody.m_strlist[m_anData[E_DATA_platform_title]];
mapCount.insert(strKey,stPowerCafe);
mapAllCount.insert(strKey,stPowerCafe);
}
mapCount[strKey].m_ncBodyAll++;
if (mapCount[strKey].m_mapUser.contains(stBody.m_strlist[m_anData[E_DATA_article_id]])==false)
mapCount[strKey].m_mapUser.insert(stBody.m_strlist[m_anData[E_DATA_article_id]],true);
mapAllCount[strKey].m_ncBodyAll++;
if (mapAllCount[strKey].m_mapUser.contains(stBody.m_strlist[m_anData[E_DATA_article_id]].trimmed())==false)
mapAllCount[strKey].m_mapUser.insert(stBody.m_strlist[m_anData[E_DATA_article_id]].trimmed(),true);
foreach(SReply stReply , stBody.m_vecReply.values())
{
if (stReply.m_strlist[m_anData[E_DATA_article_id]].compare(strKey) != 0)
mapCount[strKey].m_ncReplyAll++;
if (mapCount[strKey].m_mapUser.contains(stReply.m_strlist[m_anData[E_DATA_article_id]])==false)
mapCount[strKey].m_mapUser.insert(stReply.m_strlist[m_anData[E_DATA_article_id]],true);
mapAllCount[strKey].m_ncReplyAll++;
if (mapAllCount[strKey].m_mapUser.contains(stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed())==false)
mapAllCount[strKey].m_mapUser.insert(stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed(),true);
}
}
foreach (SPowerCafeCount stPowerCafe,mapCount.values())
foreach (SPowerCafeCount stPowerCafe,mapAllCount.values())
mapAllCount[stPowerCafe.m_strCafeID].m_ncAll = stPowerCafe.m_ncBodyAll + stPowerCafe.m_ncReplyAll;
foreach(SPowerCafeCount st,mapRealCount)
{
mapCount[stPowerCafe.m_strCafeID].m_ncAll = stPowerCafe.m_ncBodyAll + stPowerCafe.m_ncReplyAll;
if (mapAllCount.contains(st.m_strCafeID))
{
mapRealCount[st.m_strCafeID].m_ncBodyAll = mapAllCount[st.m_strCafeID].m_ncBodyAll;
mapRealCount[st.m_strCafeID].m_ncReplyAll = mapAllCount[st.m_strCafeID].m_ncReplyAll;
mapRealCount[st.m_strCafeID].m_ncAll = mapAllCount[st.m_strCafeID].m_ncAll;
mapRealCount[st.m_strCafeID].m_ncUserAll = mapAllCount[st.m_strCafeID].m_mapUser.size();
}
}
InsertLog("Power Cafe Rank Count Make End");
InsertLog("Power Cafe Rank Send Start " + item->text());
{
db.setHostName(D_DB_WEB_HOST);
db.setUserName(D_DB_WEB_USER);
@@ -1135,137 +1188,76 @@ void Widget::on_power_cafe_count()
InsertLog(db.lastError().text());
return;
}
InsertLog("Power Cafe Rank Count Send Start");
QSqlQuery query;
QString strQuery;
QString strCompanyNum = item->data(Qt::UserRole).toString();
strQuery = "delete from powercafe where company_num = " + strCompanyNum;
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
strQuery = "delete from stats_powercaferank where company_num = " + strCompanyNum + " and orderby = 'articlecountall'";
strQuery = "delete from stats_powercaferank where company_num = " + strCompanyNum;
if(query.exec(strQuery.toUtf8()) == false) {InsertLog(query.lastError().text());return;}
QList<SPowerCafeCount> list = mapCount.values();
qSort(list.begin(),list.end(),QSortPowerCafe);
QList<SPowerCafeCount> list = mapRealCount.values();
qSort(list.begin(),list.end(),QSortPowerCafeReal);
strQuery = "insert into powercafe (company_num,usercountreal,bodycountreal,replycountreal,allcountreal,id,title,url,bodycountall,replycountall,allcountall,usercountall)"
" VALUES (" + strCompanyNum + ",0,0,0,0,:ID,:TITLE,:URL,:BODY_COUNT_ALL,:REPLY_COUNT_ALL,:COUNT_ALL,:USER_COUNT_ALL)";
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)";
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(":BODY_COUNT_ALL",stIn.m_ncBodyAll);
query.bindValue(":REPLY_COUNT_ALL",stIn.m_ncReplyAll);
query.bindValue(":BODY_ALL",stIn.m_ncBodyAll);
query.bindValue(":REPLY_ALL",stIn.m_ncReplyAll);
query.bindValue(":COUNT_ALL",stIn.m_ncAll);
query.bindValue(":USER_COUNT_ALL",stIn.m_mapUser.size());
query.bindValue(":USER_ALL",stIn.m_ncUserAll);
query.bindValue(":BODY_REAL",stIn.m_ncBodyReal);
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;}
}
int nCount = 0;
strQuery = "insert into stats_powercaferank (articlecountreal,usercountreal,orderby,company_num,id,title,articlecountall)"
" VALUES (0,0,'articlecountall'," + strCompanyNum + ",:ID,:TITLE,:COUNT_ALL)";
strQuery = "insert into stats_powercaferank (rank,articlecountall,usercountreal,subject,company_num,id,title,articlecountreal)"
" VALUES (0,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 (nCount >= 10) break; nCount++;
query.bindValue(":ID",stIn.m_strCafeID.trimmed().toUtf8());
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
query.bindValue(":COUNT_ALL",stIn.m_ncAllReal);
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)";
query.prepare(strQuery.toUtf8());
foreach(SPowerCafeCount stIn,listAll)
{
if (stIn.m_strCafeID.trimmed().isEmpty()) continue;
if (stIn.m_strTitle.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(":COUNT_ALL",stIn.m_ncAll);
if(query.exec() == false) {InsertLog(query.lastError().text());return;}
if(query.exec() == false) {
InsertLog(query.lastError().text());return;}
}
db.close();
InsertLog("PowerCafe Rank Count Send End");
InsertLog("Power Cafe Rank Send End");
}
}
}
bool QSortPowerCafeReal(const SPowerCafeCount &st1, const SPowerCafeCount &st2)
{
return st1.m_ncAllReal > st2.m_ncAllReal;
}
void Widget::on_power_cafe_real_count()
{
ReloadData();
foreach (QListWidgetItem *item,m_plw[E_LIST_FILTER].selectedItems())
{
InsertLog("Power Cafe Data Filter Run Start : " + item->text());
DataFilter(item->data(Qt::UserRole).toString());
InsertLog("Power Cafe Data Filter Run End ");
}
QMap <QString,SPowerCafeCount> mapCount;
foreach (QListWidgetItem *item,m_plw[E_LIST_COMPANY].selectedItems())
{
InsertLog("Power Cafe Real Rank Count Make Start " + item->text());
if (m_bDataFlag[E_ARTICLE_BODY] == true)
{
foreach(QStringList strlist,m_data[E_ARTICLE_BODY])
{
if (strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("cafe")) != 0) continue;
QString strKey = strlist[m_anData[E_DATA_platform_id]];
if (mapCount.contains(strKey)==false)
{
SPowerCafeCount stPowerCafe;
stPowerCafe.m_strCafeID = strKey;
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
mapCount.insert(strKey,stPowerCafe);
}
mapCount[strKey].m_ncBodyReal++;
mapCount[strKey].m_ncAllReal++;
}
}
if (m_bDataFlag[E_ARTICLE_REPLY] == true)
{
foreach(QStringList strlist,m_data[E_ARTICLE_REPLY])
{
if (strlist[m_anData[E_DATA_platform_form]].trimmed().compare(QString("cafe")) != 0) continue;
QString strKey = strlist[m_anData[E_DATA_platform_id]];
if (mapCount.contains(strKey)==false)
{
SPowerCafeCount stPowerCafe;
stPowerCafe.m_strCafeID = strKey;
stPowerCafe.m_strTitle = strlist[m_anData[E_DATA_platform_title]];
mapCount.insert(strKey,stPowerCafe);
}
mapCount[strKey].m_ncReplyReal++;
mapCount[strKey].m_ncAllReal++;
}
}
InsertLog("Power Cafe Real Rank Count Make End ");
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;
}
QList<SPowerCafeCount> list = mapCount.values();
qSort(list.begin(),list.end(),QSortPowerCafeReal);
InsertLog("Power Cafe Real Rank Count Send Start " + item->text());
int nCount = 0;
QString strQuery = "insert into stats_powercaferank (articlecountall,usercountreal,orderby,company_num,id,title,articlecountreal)"
" VALUES (0,0,'articlecountreal'," + item->data(Qt::UserRole).toString() + ",:ID,:TITLE,:COUNT_ALL)";
QSqlQuery query;
query.prepare(strQuery.toUtf8());
foreach(SPowerCafeCount stIn,list)
{
if (nCount >= 10) break; nCount++;
query.bindValue(":ID",stIn.m_strCafeID.trimmed().toUtf8());
query.bindValue(":TITLE",stIn.m_strTitle.trimmed().toUtf8());
query.bindValue(":COUNT_ALL",stIn.m_ncAllReal);
if(query.exec() == false) {InsertLog(query.lastError().text());return;}
}
db.close();
InsertLog("Power Cafe Real Rank Count Send End");
}
}
bool QSortBody(const SInfluenceCount &stInflunce1, const SInfluenceCount &stInflunce2)
{
return stInflunce1.m_ncBody > stInflunce2.m_ncBody;
@@ -1282,7 +1274,7 @@ bool QSortInfulrence(const SInfluenceCount &stInflunce1, const SInfluenceCount &
}
void Widget::InfluenceCount()
{
{
QMap <QString,SInfluenceCount> mapCount;
foreach (QListWidgetItem *item,m_plw[E_LIST_COMPANY].selectedItems())
{
@@ -1311,6 +1303,7 @@ void Widget::InfluenceCount()
mapCount[strKey].m_ncReply++;
}
}
foreach (SInfluenceCount stInfluence,mapCount.values())
{
mapCount[stInfluence.m_strID].m_dinfulrence = ((double)stInfluence.m_ncBody * 0.4) + ((double)stInfluence.m_ncReply * 0.6);
@@ -1498,7 +1491,7 @@ void Widget::ConsumerSupervisionCount()
InsertLog("Markter Rank Count Send Start");
foreach(SMaketer stMaket,list)
{
strQuery = "insert into stats_response (platformid,orderby,marketerid,marketernickname,bodycount,replycount,company_num) values (' ' , 'marketerid' , ";
strQuery = "insert into stats_response (rank,platformid,subject,marketerid,marketernickname,bodycount,replycount,company_num) values (0,' ' , 'marketerid' , ";
strQuery += "'" + stMaket.m_strID + "',";
strQuery += "' ',";
strQuery += QString::number(stMaket.m_nBodyCount) + ",";
@@ -1517,7 +1510,7 @@ void Widget::ConsumerSupervisionCount()
foreach(SMaketer stMaket,list)
{
if (stMaket.m_nAllCount == 0) break;
strQuery = "insert into stats_response (marketerid,orderby,platformid,marketernickname,bodycount,replycount,company_num) values (' ' , 'platformid' , ";
strQuery = "insert into stats_response (rank,marketerid,subject,platformid,marketernickname,bodycount,replycount,company_num) values (0,' ' , 'platformid' , ";
strQuery += "'" + stMaket.m_strID + "',";
strQuery += "' ',";
strQuery += QString::number(stMaket.m_nBodyCount) + ",";
@@ -1540,7 +1533,7 @@ void Widget::on_influence_count()
QString Widget::MakeInfluencerrankQuery(SInfluenceCount &_stIn,QString _strOrder,QString _strCompanyNum)
{
QString strOut;
strOut = "insert into stats_influencerrank(id,nickname,bodycount,replycount,influencevalue,orderby,company_num) VALUES (";
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() + "',";
strOut += QString::number(_stIn.m_ncBody) + ",";
@@ -1595,10 +1588,12 @@ struct SSpamer
QString m_strTitle;
QString m_strNickname;
double m_dBodycount;
double m_dReplycount;
double m_dSpammerValue;
SSpamer()
{
m_dBodycount = 0.0;
m_dReplycount = 0.0;
}
QSet <QString> m_setNick;
};
@@ -1667,6 +1662,7 @@ void Widget::on_spammers_count()
stSpamer.m_strNickname = stReply.m_strlist[m_anData[E_DATA_article_nickname]].trimmed();
mapSpamer.insert(strKey,stSpamer);
}
mapSpamer[strKey].m_dReplycount+=1.0;
QString strReKey = stReply.m_strlist[m_anData[E_DATA_article_nickname]].trimmed();
if (mapSpamer[strKey].m_setNick.contains(strReKey) == false)
mapSpamer[strKey].m_setNick.insert(strReKey);
@@ -1722,14 +1718,15 @@ void Widget::on_spammers_count()
strValue += stIn.m_strNickname + "',";
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,spammervalue,company_num) VALUES (";
strQuery = "insert into spammer (rank,platformname,platformform,id,nickname,nicknamecount,bodycount,replycount,spammervalue,company_num) VALUES (";
strQuery += strValue + ")";
if(query.exec(strQuery.toUtf8()) == false) {qDebug() << strQuery;InsertLog(query.lastError().text());return;}
if (nCount < 10)
if (nCount < 20)
{
strQuery = "insert into stats_spammerrank (rank,platformname,platformform,id,nickname,nicknamecount,bodycount,spammervalue,company_num,orderby) VALUES (";
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;}
}