git-svn-id: svn://192.168.0.12/source@337 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -391,6 +391,17 @@ bool SDatagroup::makeTable()
|
|||||||
stbody.nickname_nickname = m_SNickname.get(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed())->nickname;
|
stbody.nickname_nickname = m_SNickname.get(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed())->nickname;
|
||||||
stbody.nickname_exnickname = UniCodeToEucKr(m_SNickname.get(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed())->nickname);
|
stbody.nickname_exnickname = UniCodeToEucKr(m_SNickname.get(strListBody[anColumn[SInitializer::E_DATA_article_nickname]].trimmed())->nickname);
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
|
||||||
|
stbody.like = strListBody[anColumn[SInitializer::E_DATA_article_like]].trimmed().toInt(&ok);
|
||||||
|
if (!ok)
|
||||||
|
stbody.like = 0;
|
||||||
|
|
||||||
|
stbody.share = strListBody[anColumn[SInitializer::E_DATA_article_share]].trimmed().toInt(&ok);
|
||||||
|
if (!ok)
|
||||||
|
stbody.share = 0;
|
||||||
|
|
||||||
|
|
||||||
m_SBody.put(strUrl, stbody);
|
m_SBody.put(strUrl, stbody);
|
||||||
|
|
||||||
m_stDate.m_strMaxdate = (( m_stDate.m_strMaxdate > stbody.date ) ? m_stDate.m_strMaxdate : stbody.date );
|
m_stDate.m_strMaxdate = (( m_stDate.m_strMaxdate > stbody.date ) ? m_stDate.m_strMaxdate : stbody.date );
|
||||||
@@ -666,7 +677,7 @@ bool SDatagroup::SBody::uploadData(QSqlDatabase &_db, const int& _nCompany, cons
|
|||||||
}
|
}
|
||||||
|
|
||||||
strQuery = "insert into body_" + QString::number(_nCompany) +
|
strQuery = "insert into body_" + QString::number(_nCompany) +
|
||||||
"_update(num,id_num,nickname_num,community_num,id_id,platformname_num,platformform_num, title, data, url, view, date, replystartnum, replyendnum, replycount, lastupdate, realbycategorynum,"
|
"_update(num,id_num,nickname_num,community_num,id_id,platformname_num,platformform_num, title, data, url, view, date, replystartnum, replyendnum, replycount, `like`, share, lastupdate, realbycategorynum,"
|
||||||
"community_title, community_url, community_id, community_exid, platformname_name, platformform_form, nickname_nickname, nickname_exnickname) VALUES(";
|
"community_title, community_url, community_id, community_exid, platformname_name, platformform_form, nickname_nickname, nickname_exnickname) VALUES(";
|
||||||
|
|
||||||
foreach (const QString& url, _order)
|
foreach (const QString& url, _order)
|
||||||
@@ -690,6 +701,8 @@ bool SDatagroup::SBody::uploadData(QSqlDatabase &_db, const int& _nCompany, cons
|
|||||||
str += QString::number(body.replystartnum) + ",";
|
str += QString::number(body.replystartnum) + ",";
|
||||||
str += QString::number(body.replyendnum) + ",";
|
str += QString::number(body.replyendnum) + ",";
|
||||||
str += QString::number(body.replycount) + ",";
|
str += QString::number(body.replycount) + ",";
|
||||||
|
str += QString::number(body.like) + ",";
|
||||||
|
str += QString::number(body.share) + ",";
|
||||||
str += "'" + sqlString(body.lastupdate) + "',";
|
str += "'" + sqlString(body.lastupdate) + "',";
|
||||||
str += "'" + sqlString(vecToString(body.realbycategorynum)) + "',";
|
str += "'" + sqlString(vecToString(body.realbycategorynum)) + "',";
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public:
|
|||||||
int replystartnum;
|
int replystartnum;
|
||||||
int replyendnum;
|
int replyendnum;
|
||||||
int replycount;
|
int replycount;
|
||||||
|
int like;
|
||||||
|
int share;
|
||||||
QVector<int> realbycategorynum;
|
QVector<int> realbycategorynum;
|
||||||
|
|
||||||
|
|
||||||
@@ -53,7 +55,7 @@ public:
|
|||||||
QString nickname_exnickname;
|
QString nickname_exnickname;
|
||||||
|
|
||||||
//QSet<int> realbycategorynum;
|
//QSet<int> realbycategorynum;
|
||||||
stBody():replyendnum(-1), replystartnum(-1), replycount(0) {}
|
stBody():replyendnum(-1), replystartnum(-1), replycount(0), share(0), like(0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct stReply
|
struct stReply
|
||||||
|
|||||||
@@ -256,6 +256,8 @@ void SInfluencer::STInfluencer::makeTable(SDatagroup &_datagroup, const QMap<int
|
|||||||
//m_pSInitializer->insertLog(mapRank[stprofileurlkey].community_url);
|
//m_pSInitializer->insertLog(mapRank[stprofileurlkey].community_url);
|
||||||
}
|
}
|
||||||
mapRank[stprofileurlkey].bodycount++;
|
mapRank[stprofileurlkey].bodycount++;
|
||||||
|
mapRank[stprofileurlkey].sharecount += _datagroup.getstBody(_url)->share;
|
||||||
|
mapRank[stprofileurlkey].likecount += _datagroup.getstBody(_url)->like;
|
||||||
|
|
||||||
if ((*mapReply).contains(_url))
|
if ((*mapReply).contains(_url))
|
||||||
{
|
{
|
||||||
@@ -274,7 +276,8 @@ void SInfluencer::STInfluencer::makeTable(SDatagroup &_datagroup, const QMap<int
|
|||||||
if (val.bodycount == 0)
|
if (val.bodycount == 0)
|
||||||
val.influencervalue = 0;
|
val.influencervalue = 0;
|
||||||
else
|
else
|
||||||
val.influencervalue = static_cast<double>(val.replycount) / val.bodycount;
|
val.influencervalue = static_cast<double>(val.replycount + val.sharecount + val.likecount) * m_pSInitializer->getInfluencerParam().A /
|
||||||
|
(val.bodycount * m_pSInitializer->getInfluencerParam().B);
|
||||||
}
|
}
|
||||||
QList<stInfluencer> listmap = mapRank.values();
|
QList<stInfluencer> listmap = mapRank.values();
|
||||||
qSort(listmap.begin(), listmap.end(), isGreaterInfluencerValue());
|
qSort(listmap.begin(), listmap.end(), isGreaterInfluencerValue());
|
||||||
@@ -346,7 +349,7 @@ bool SInfluencer::STInfluencer::uploadData(QSqlDatabase &_db, const int &_nCompa
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
strQuery = "insert into influencer_" + QString::number(_nCompany) +
|
strQuery = "insert into influencer_" + QString::number(_nCompany) +
|
||||||
"_update (rank,category_num,id_num,nickname_num,community_num,bodycount,replycount,influencervalue,profile,profileurl,id_id,"
|
"_update (rank,category_num,id_num,nickname_num,community_num,bodycount,replycount,likecount,sharecount,influencervalue,profile,profileurl,id_id,"
|
||||||
"community_title,community_url,community_id,nickname_nickname,nickname_exnickname,platformname_num,platformname_name) VALUES (";
|
"community_title,community_url,community_id,nickname_nickname,nickname_exnickname,platformname_num,platformname_name) VALUES (";
|
||||||
|
|
||||||
query.clear();
|
query.clear();
|
||||||
@@ -361,6 +364,8 @@ bool SInfluencer::STInfluencer::uploadData(QSqlDatabase &_db, const int &_nCompa
|
|||||||
str += QString::number(stinfluencer.community_num) + ",";
|
str += QString::number(stinfluencer.community_num) + ",";
|
||||||
str += QString::number(stinfluencer.bodycount) + ",";
|
str += QString::number(stinfluencer.bodycount) + ",";
|
||||||
str += QString::number(stinfluencer.replycount) + ",";
|
str += QString::number(stinfluencer.replycount) + ",";
|
||||||
|
str += QString::number(stinfluencer.likecount) + ",";
|
||||||
|
str += QString::number(stinfluencer.sharecount) + ",";
|
||||||
str += QString::number(stinfluencer.influencervalue, 'g', 3) + ",";
|
str += QString::number(stinfluencer.influencervalue, 'g', 3) + ",";
|
||||||
str += "'" + sqlString(stinfluencer.profile).trimmed().replace(QChar(160), "") + "',";
|
str += "'" + sqlString(stinfluencer.profile).trimmed().replace(QChar(160), "") + "',";
|
||||||
str += "'" + sqlString(stinfluencer.profileurl.trimmed()) + "',";
|
str += "'" + sqlString(stinfluencer.profileurl.trimmed()) + "',";
|
||||||
|
|||||||
@@ -35,8 +35,11 @@ public:
|
|||||||
QString nickname_exnickname;
|
QString nickname_exnickname;
|
||||||
QString platformname_name;
|
QString platformname_name;
|
||||||
int platformname_num;
|
int platformname_num;
|
||||||
|
int sharecount;
|
||||||
|
int likecount;
|
||||||
|
|
||||||
stInfluencer():id_num(0),nickname_num(0),community_num(0),category_num(0),bodycount(0),replycount(0),rank(0),influencervalue(0.0),platformname_num(0){}
|
stInfluencer():id_num(0),nickname_num(0),community_num(0),category_num(0),bodycount(0),replycount(0),rank(0),influencervalue(0.0),platformname_num(0),
|
||||||
|
sharecount(0), likecount(0){}
|
||||||
|
|
||||||
};
|
};
|
||||||
struct stStatsInfBloggerRank
|
struct stStatsInfBloggerRank
|
||||||
|
|||||||
@@ -304,6 +304,36 @@ bool SInitializer::initInfluencer()
|
|||||||
{
|
{
|
||||||
m_stInfluencerParam.m_dBody = 0.4;
|
m_stInfluencerParam.m_dBody = 0.4;
|
||||||
m_stInfluencerParam.m_dReply = 0.6;
|
m_stInfluencerParam.m_dReply = 0.6;
|
||||||
|
|
||||||
|
m_stInfluencerParam.A;
|
||||||
|
m_stInfluencerParam.B;
|
||||||
|
|
||||||
|
QSettings settings(QString("setup.ini"), QSettings::IniFormat);
|
||||||
|
settings.setIniCodec("UTF-8");
|
||||||
|
settings.beginGroup(QString("influencers"));
|
||||||
|
|
||||||
|
if (settings.childKeys().size() == 0)
|
||||||
|
{
|
||||||
|
m_stInfluencerParam.A = 1.0;
|
||||||
|
m_stInfluencerParam.B = 1.0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
double A = settings.value("A", 1.0).toDouble(&ok);
|
||||||
|
if (ok)
|
||||||
|
m_stInfluencerParam.A = A;
|
||||||
|
else
|
||||||
|
m_stInfluencerParam.A = 1.0;
|
||||||
|
|
||||||
|
double B = settings.value("B", 1.0).toDouble(&ok);
|
||||||
|
if (ok)
|
||||||
|
m_stInfluencerParam.B = B;
|
||||||
|
else
|
||||||
|
m_stInfluencerParam.B = 1.0;
|
||||||
|
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -768,6 +798,11 @@ double SInitializer::getInfluencerParam(int _BodyorReply)
|
|||||||
return m_stInfluencerParam[_BodyorReply];
|
return m_stInfluencerParam[_BodyorReply];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SInitializer::stInfluencerParam SInitializer::getInfluencerParam()
|
||||||
|
{
|
||||||
|
return m_stInfluencerParam;
|
||||||
|
}
|
||||||
|
|
||||||
void SInitializer::closeConnection(const SDBManager::E_DATABASE _eDatabase)
|
void SInitializer::closeConnection(const SDBManager::E_DATABASE _eDatabase)
|
||||||
{
|
{
|
||||||
m_sDBManager.close(_eDatabase);
|
m_sDBManager.close(_eDatabase);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ private:
|
|||||||
bool initDebug();
|
bool initDebug();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum E_SPAMER
|
enum E_SPAMER
|
||||||
{
|
{
|
||||||
@@ -84,6 +85,10 @@ public:
|
|||||||
E_DATA_article_profile,
|
E_DATA_article_profile,
|
||||||
E_DATA_etc,
|
E_DATA_etc,
|
||||||
E_DATA_MAX,
|
E_DATA_MAX,
|
||||||
|
// for body, not reply
|
||||||
|
E_DATA_article_like = E_DATA_reply_url,
|
||||||
|
E_DATA_article_share = E_DATA_article_parent,
|
||||||
|
E_DATA_article_replycount = E_DATA_article_order
|
||||||
};
|
};
|
||||||
enum E_SERVICE
|
enum E_SERVICE
|
||||||
{
|
{
|
||||||
@@ -112,7 +117,9 @@ public:
|
|||||||
{
|
{
|
||||||
double m_dBody;
|
double m_dBody;
|
||||||
double m_dReply;
|
double m_dReply;
|
||||||
stInfluencerParam() : m_dBody(0.4), m_dReply(0.6) {}
|
double A;
|
||||||
|
double B;
|
||||||
|
stInfluencerParam() : m_dBody(0.4), m_dReply(0.6), A(1.0), B(1.0) {}
|
||||||
double operator[](const int nSelect) const
|
double operator[](const int nSelect) const
|
||||||
{
|
{
|
||||||
switch(nSelect)
|
switch(nSelect)
|
||||||
@@ -222,6 +229,7 @@ public:
|
|||||||
bool openConnection(const SDBManager::E_DATABASE _eDatabase);
|
bool openConnection(const SDBManager::E_DATABASE _eDatabase);
|
||||||
bool openConnection(const QString& _str);
|
bool openConnection(const QString& _str);
|
||||||
double getInfluencerParam(int _BodyorReply);
|
double getInfluencerParam(int _BodyorReply);
|
||||||
|
stInfluencerParam getInfluencerParam();
|
||||||
void updateWebDBInfoState(QSqlDatabase &_db, int _nCompany, QString _strStatus);
|
void updateWebDBInfoState(QSqlDatabase &_db, int _nCompany, QString _strStatus);
|
||||||
void updateWebDBInfoComplete(QSqlDatabase _db, QString _mindate, QString _maxdate, QString _lastupdate, int _bodycount, int _replycount, int _nCompany);
|
void updateWebDBInfoComplete(QSqlDatabase _db, QString _mindate, QString _maxdate, QString _lastupdate, int _bodycount, int _replycount, int _nCompany);
|
||||||
int getAllCategoryNum(int _nService);
|
int getAllCategoryNum(int _nService);
|
||||||
|
|||||||
Reference in New Issue
Block a user