diff --git a/FilterProcess/sinfluencer.cpp b/FilterProcess/sinfluencer.cpp index 9307cfa..e96b7d0 100644 --- a/FilterProcess/sinfluencer.cpp +++ b/FilterProcess/sinfluencer.cpp @@ -377,7 +377,7 @@ bool SInfluencer::STInfluencer::uploadData(QSqlDatabase &_db, const int &_nCompa } strQuery = "insert into influencer_" + QString::number(_nCompany) + "_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,idrankbyinteraction,platformname_name) VALUES ("; + "community_title,community_url,community_id,nickname_nickname,nickname_exnickname,platformname_num,idrankbyinteraction,isselected,platformname_name) VALUES ("; query.clear(); @@ -404,6 +404,7 @@ bool SInfluencer::STInfluencer::uploadData(QSqlDatabase &_db, const int &_nCompa str += "'" + sqlString(stinfluencer.nickname_exnickname) + "',"; str += QString::number(stinfluencer.platformname_num) + ","; str += "'" + sqlString(stinfluencer.interactionrank) + "',"; + str += sqlString(stinfluencer.isSelected)+","; str += "'" + sqlString(stinfluencer.platformname_name) + "')"; if (query.exec(str.toUtf8()) == false) @@ -488,9 +489,14 @@ void SInfluencer::STInfluencer::setInfluencerValueWieght() { influencerWeight.insert(*iter3); } + } - influencerWeight.calculateWeight(); + influencerWeight.calculateWeight(); + iter2.toFront(); + while (iter2.hasNext()) + { + QList &listInfluencer = iter2.next().value(); for (QList::iterator iter3 = listInfluencer.begin(); iter3 != listInfluencer.end(); iter3++) { iter3->influencervalue = influencerWeight.getInfluenceValue(*iter3); @@ -499,6 +505,56 @@ void SInfluencer::STInfluencer::setInfluencerValueWieght() } } +QMap SInfluencer::STInfluencer::makeCountOfGroupDuplicatedId() +{ + QMap mapCountOfGroupDuplicatedId; + + QMutableMapIterator>> iter(m_mapInfluencerOfGroup); + while (iter.hasNext()) + { + iter.next(); + + QMutableMapIterator> iter2(iter.value()); + while (iter2.hasNext()) + { + QList &listInfluencer = iter2.next().value(); + + for (QList::iterator iter3 = listInfluencer.begin(); iter3 != listInfluencer.end(); iter3++) + { + if (iter3->isSelected != "NULL") + continue; + + mapCountOfGroupDuplicatedId[iter3->id_id]++; + } + } + } + + return mapCountOfGroupDuplicatedId; +} + +void SInfluencer::STInfluencer::setGroupDuplicatedInfluencerFlag(QMap &_mapCountOfGroupDuplicatedId) +{ + QMutableMapIterator>> iter(m_mapInfluencerOfGroup); + while (iter.hasNext()) + { + iter.next(); + + QMutableMapIterator> iter2(iter.value()); + while (iter2.hasNext()) + { + QList &listInfluencer = iter2.next().value(); + + for (QList::iterator iter3 = listInfluencer.begin(); iter3 != listInfluencer.end(); iter3++) + { + if (!_mapCountOfGroupDuplicatedId.contains(iter3->id_id) || _mapCountOfGroupDuplicatedId[iter3->id_id] <= 1) + continue; + + iter3->isSelected = "1"; + } + } + } +} + void SInfluencer::STInfluencer::processDuplicatedInfluencer() { QMutableMapIterator>> iter(m_mapInfluencerOfGroup); @@ -512,6 +568,9 @@ void SInfluencer::STInfluencer::processDuplicatedInfluencer() setDuplicatedInfluencerFlag(iter.value(), mapFilteredInfluencerValuesOfId); } + + QMap mapCountOfGroupDuplicatedId = makeCountOfGroupDuplicatedId(); + setGroupDuplicatedInfluencerFlag(mapCountOfGroupDuplicatedId); } QMap> SInfluencer::STInfluencer::makeInfluencerValuesOfId(QMap> &_mapInfluencersOfCategory) @@ -644,12 +703,12 @@ void SInfluencer::STInfluencer::setDuplicatedInfluencerFlag(QMap= 0) { - iter2->isSelected = "true"; + iter2->isSelected = "1"; _mapInfluencerValuesOfId[id][0] = -1; } else { - iter2->isSelected = "false"; + iter2->isSelected = "0"; } } } diff --git a/FilterProcess/sinfluencer.h b/FilterProcess/sinfluencer.h index d432f08..dccf180 100644 --- a/FilterProcess/sinfluencer.h +++ b/FilterProcess/sinfluencer.h @@ -47,7 +47,7 @@ QString isSelected; int interactionsTotalCount; 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), interactionsTotalReplyCount(0), interactionsTotalCount(0) {} + sharecount(0), likecount(0), interactionsTotalReplyCount(0), interactionsTotalCount(0), isSelected("NULL") {} }; struct stStatsInfBloggerRank @@ -141,6 +141,8 @@ void copyInfluencerFromGroupToList(); void sortInfluencerByValue(); void setInfluecnerRank(); void setDuplicatedInfluencerFlag(QMap> &_mapInfluencersOfCategory, QMap> &_mapInfluencerValuesOfId); +void setGroupDuplicatedInfluencerFlag(QMap &_mapCountOfGroupDuplicatedId); +QMap makeCountOfGroupDuplicatedId(); }; class SStatsInfBloggerRank