새로운 데이타 베이스 변경

git-svn-id: svn://192.168.0.12/source@69 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-04-13 02:49:04 +00:00
parent dce0657194
commit 789182adc7
2 changed files with 97 additions and 40 deletions

View File

@@ -14,8 +14,6 @@
#include "../json/sjson.h"
#include "../common.h"
#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"
@@ -26,7 +24,8 @@
#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)
Widget::Widget(QWidget *parent) : C_MAP_REAL_BODY (0x01) , C_MAP_REAL_REPLY (0x02) ,
QWidget(parent) ,m_nIDMax (0) , m_nNickMax (0) , m_nCommunityMax (0)
{
QVBoxLayout *vMainLayout = new QVBoxLayout;
{
@@ -177,7 +176,7 @@ void Widget::Refresh()
QSqlQuery query("select id,name FROM datagroup");
while(query.next())
{
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_DATA]);
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString() + QString("(") + query.value(0).toString() + QString(")") ,&m_plw[E_LIST_DATA]);
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
}
}
@@ -215,6 +214,19 @@ void Widget::Refresh()
while(query.next())
m_mapPlatformname.insert(query.value(1).toString(),query.value(0).toInt());
}
{
QSqlQuery query;
if(query.exec("select max(num) from id") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nIDMax = query.value(0).toInt() + 1;
if(query.exec("select max(num) from nickname") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nNickMax = query.value(0).toInt() + 1;
if(query.exec("select max(num) from community") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nCommunityMax = query.value(0).toInt() + 1;
}
db.close();
}
@@ -735,10 +747,13 @@ void Widget::DataItemClicked(QListWidgetItem* item)
m_mapCommunity.clear();
m_mapNickname.clear();
SId stDefault;
m_mapID.insert(stDefault.m_strID,stDefault);
SId stID;
stID.m_nNum = m_nIDMax;
stID.m_nCommunity = m_nCommunityMax;
m_mapID.insert(" ",stID);
SCommunity stCom;
stCom.m_nNum = m_nCommunityMax;
m_mapCommunity.insert(" ",stCom);
QString astrWhere[E_ARTICLE_MAX] = {" where article_form = 'body' Order by article_date DESC"," where article_form = 'reply'"};
@@ -770,12 +785,12 @@ void Widget::DataItemClicked(QListWidgetItem* item)
stBody.m_bReplySelect = false;
stBody.m_strlist = strList;
m_mapData.insert(strURL,stBody);
m_strlistOrder.push_back(strURL);
int nID = -1;
m_strlistOrder.push_back(strURL);
if (m_mapID.contains(strList[m_anData[E_DATA_article_id]].trimmed()) == false)
{
SId stID;
nID = stID.m_nNum = m_mapID.size();
stID.m_nNum = m_mapID.size() + m_nIDMax;
stID.m_nCommunity = m_nCommunityMax;
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()];
@@ -784,18 +799,18 @@ void Widget::DataItemClicked(QListWidgetItem* item)
if (m_mapNickname.contains(strList[m_anData[E_DATA_article_nickname]].trimmed()) == false)
{
SNickname stNick;
stNick.m_nNum = m_mapNickname.size();
stNick.m_nNum = m_mapNickname.size() + m_nNickMax;
stNick.m_strNickname = strList[m_anData[E_DATA_article_nickname]].trimmed();
stNick.m_nID = nID;
stNick.m_nID = m_nIDMax;
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_nNum = m_mapCommunity.size() + m_nCommunityMax;
stCom.m_strID = strList[m_anData[E_DATA_platform_id]].trimmed();
stCom.m_strTitle = strList[m_anData[E_DATA_platform_title]].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
@@ -803,8 +818,8 @@ void Widget::DataItemClicked(QListWidgetItem* item)
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)
continue;
if (strList[m_anData[E_DATA_platform_name]].trimmed().compare(QString("naver")) == false)
{
stCom.m_strUrl = strKey;
}
@@ -817,6 +832,8 @@ void Widget::DataItemClicked(QListWidgetItem* item)
{
if (m_mapData.contains(strURL))
{
if (strList[m_anData[E_DATA_article_id]].trimmed().isEmpty()) continue;
if (strList[m_anData[E_DATA_article_nickname]].trimmed().isEmpty()) continue;
SReply stReply;
stReply.m_bSelect = false;
stReply.m_nOrder = strList[m_nOrderColumn].toInt();
@@ -826,12 +843,22 @@ 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_mapID.contains(strList[m_anData[E_DATA_article_id]].trimmed()) == false)
{
SId stID;
stID.m_nNum = m_mapID.size() + m_nIDMax;
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()];
stID.m_nCommunity = m_nCommunityMax;
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_nNum = m_mapNickname.size() + m_nNickMax;
stNick.m_strNickname = strList[m_anData[E_DATA_article_nickname]].trimmed();
stNick.m_nID = m_nIDMax;
m_mapNickname.insert(stNick.m_strNickname,stNick);
}
}
@@ -847,6 +874,20 @@ void Widget::DataItemClicked(QListWidgetItem* item)
stID.m_nCommunity = m_mapCommunity[strCommunityKey].m_nNum;
}
foreach(SBody stBody, m_mapData.values())
{
QString strNick = stBody.m_strlist[m_anData[E_DATA_article_nickname]].trimmed();
QString strID = stBody.m_strlist[m_anData[E_DATA_article_id]].trimmed();
if (m_mapNickname.contains(strNick) && m_mapID.contains(strID))
m_mapNickname[strNick].m_nID = m_mapID[strID].m_nNum;
foreach(SReply stReply , stBody.m_vecReply.values())
{
QString strNick = stReply.m_strlist[m_anData[E_DATA_article_nickname]].trimmed();
QString strID = stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed();
if (m_mapNickname.contains(strNick) && m_mapID.contains(strID))
m_mapNickname[strNick].m_nID = m_mapID[strID].m_nNum;
}
}
MakeBuzzyAll();
InsertLog("End Loading");
db.close();
@@ -886,9 +927,8 @@ QVariant Widget::GetWebData(QString _strTable,QString _strColumn,int _nNum)
InsertLog(db.lastError().text());
return value;
}
QSqlQuery query("select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum));
//qDebug() << "select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum);
if (query.next() == true)
QSqlQuery query("select " + _strColumn + " FROM " + _strTable + " where num = " + QString::number(_nNum));
if (query.next())
value = query.value(0);
db.close();
return value;
@@ -1248,7 +1288,7 @@ void Widget::InfluenceCount()
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;
stInfluence.m_nNickname = 0;
else
stInfluence.m_nNickname = m_mapNickname[strNickname].m_nNum;
stInfluence.m_ncBody = 0;
@@ -1750,12 +1790,9 @@ void Widget::DataPut(QString _strCompanyNum)
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 strReplyQuery = QString("insert into reply_" + _strCompanyNum + " (num,id_num,nickname_num,community_num,id_id,parent,data,date,body_num,realbycategorynum) VALUES (:NUM,:ID_NUM,:NICKNAME_NUM,:COMMUNITY_NUM,:ID_ID,:PARENT,:DATA,:DATE,:BODY_NUM,:REALBYCATEGORYNUM)").toUtf8();
QString strBodyQuery = QString("insert into body_" + _strCompanyNum + " (num,id_num,nickname_num,community_num,id_id,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,:ID_ID,: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 (");
@@ -1813,9 +1850,10 @@ void Widget::DataPut(QString _strCompanyNum)
{
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(":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(":ID_ID",stReply.m_strlist[m_anData[E_DATA_article_id]].trimmed());
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());
@@ -1824,13 +1862,14 @@ void Widget::DataPut(QString _strCompanyNum)
if (query.exec()==false){InsertLog(query.lastError().text());db.close();return;}
nReplyCount++;
}
query.prepare(strBodyQuery);
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(":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_nNum);
query.bindValue(":COMMUNITY_NUM",m_mapCommunity[GetCommunityKey(m_mapData[strUrl].m_strlist)].m_nNum);
query.bindValue(":ID_ID",m_mapData[strUrl].m_strlist[m_anData[E_DATA_article_id]].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]];
@@ -1889,7 +1928,7 @@ void Widget::DataPut(QString _strCompanyNum)
//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"};
QString astrOrderBy[D_ARTICLE_MAX] = {"body","reply","all"};
while(date <= QDate::currentDate())
{
QVector <SBuzzyCount> vecCount;
@@ -1921,9 +1960,9 @@ void Widget::DataPut(QString _strCompanyNum)
}
strQuery += "date = '";
strQuery += date.toString("yyyy-MM-dd");
strQuery += "', subject = ";
strQuery += QString::number(i); // body = 0 , reply = 1 , all = 2
strQuery += ",company_num = ";
strQuery += "', subject = '" ;
strQuery += astrOrderBy[i];
strQuery += "',company_num = ";
strQuery += _strCompanyNum;
if (query.exec(strQuery.toUtf8())==false) { InsertLog(query.lastError().text());db.close();qDebug() << strQuery;return;}
}
@@ -1932,5 +1971,17 @@ void Widget::DataPut(QString _strCompanyNum)
//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;
//QSqlQuery query;
if(query.exec("select max(num) from id") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nIDMax = query.value(0).toInt() + 1;
if(query.exec("select max(num) from nickname") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nNickMax = query.value(0).toInt() + 1;
if(query.exec("select max(num) from community") == false) {InsertLog(query.lastError().text());}
if(query.next())
m_nCommunityMax = query.value(0).toInt() + 1;
db.close();
}

View File

@@ -54,7 +54,9 @@ struct SInfluenceCount
QStringList m_strlistData;
SInfluenceCount()
{
m_nNickname = -1;
m_nNickname = 0;
m_nCommunity = 0;
m_nID = 0;
}
};
@@ -107,9 +109,9 @@ struct SId
QString m_strID;
SId()
{
m_nNum = -1;
m_nNum = 0;
m_nPlatfromName = 1;
m_nCommunity = -1;
m_nCommunity = 0;
m_strID = "(none)";
}
};
@@ -125,7 +127,7 @@ struct SCommunity
SCommunity()
{
m_nNum = -1;
m_nNum = 0;
m_nPlatformname = 1;
m_nPlatformform = 1;
m_strTitle = "(none)";
@@ -141,7 +143,7 @@ struct SNickname
QString m_strNickname;
SNickname()
{
m_nID = -1;
m_nID = 0;
}
};
@@ -244,6 +246,10 @@ private:
QMap <QString,SNickname> m_mapNickname;
QMap <QString,int> m_mapPlatformform;
QMap <QString,int> m_mapPlatformname;
int m_nIDMax;
int m_nNickMax;
int m_nCommunityMax;
//SGetThread *m_pThread;
//SPutThread *m_pPutThread;
//QVector <QStringList> m_mainData;