git-svn-id: svn://192.168.0.12/source@337 8346c931-da38-4b9b-9d4c-e48b93cbd075

This commit is contained in:
admin
2017-01-16 04:05:55 +00:00
parent 80224e09b1
commit 67dffda91c
6 changed files with 72 additions and 6 deletions

View File

@@ -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)) + "',";

View File

@@ -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

View File

@@ -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()) + "',";

View File

@@ -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

View File

@@ -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);

View File

@@ -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);