#ifndef SSPAMMER #define SSPAMMER #include "sservice.h" #include "sfilteralgorithm.h" #include "sinitializer.h" class QString; class QStringList; class SSpammer:public SService { public: struct stReal { QSet m_setRealAllUrl; QSet m_setRealBodyUrl; QMap m_mapRealReplyUniqueUrl; //multiple }; struct stSpammer { int id_num; int category_num; QString id_id; int nicknamecount; int bodycount; int replycount; double spammervalue; int rank; QString platformname_name; int platformname_num; stSpammer():id_num(0), category_num(0), nicknamecount(0), bodycount(0), replycount(0), rank(0), spammervalue(0.0), platformname_num(0){} }; struct stStatsSpaSpammerRank { int id_num; QString id_id; QString platformname_name; int nicknamecount; int bodycount; int replycount; double spammervalue; int rank; QString subject; int company_num; stStatsSpaSpammerRank():id_num(0),nicknamecount(0),bodycount(0),replycount(0),rank(0), spammervalue(0.0){} }; struct stBodySpammerMap { int num; int body_num; int id_num; int category_num; int realin; QString date; int platformname_num; stBodySpammerMap():num(0), body_num(0), id_num(0), category_num(0), realin(0), platformname_num(0){} }; struct stReplySpammerMap { int num; int reply_num; int body_num; int id_num; int category_num; QString body_date; stReplySpammerMap():num(0), body_num(0), reply_num(0), id_num(0), category_num(0){} }; struct stSpammerScore { int body; int reply; int id_num; QSet nickname; stSpammerScore():body(0),reply(0), id_num(0){} }; struct stSpammerRank { double value; int platformform_num; QString id; int id_num; stSpammerRank():value(0.0), platformform_num(1), id_num(0){} }; struct stBuzzy { int m_nCategory; QMap m_mapBodyBuzz; QMap m_mapReplyBuzz; }; struct stStatsJson { int company_num; int servicenum; QString title; QString subtitle; int platformname_num; QString jdata; int category_num; stStatsJson():company_num(0), servicenum(3), platformname_num(1), category_num(0){} }; class STSpammer { private: SInitializer *m_pSInitializer; QList m_listMap; public: void setInitiaizer(SInitializer &_initializer){ m_pSInitializer = &_initializer; } void clear(){ m_listMap.clear(); } void makeTable(SDatagroup &_datagroup, const QMap& _mapCategory, QSet& setSpammer); bool uploadData(QSqlDatabase &_db, const int &_nCompany); bool changeTable(QSqlDatabase &_db, const int &_nCompany); }; class SStatsSpaSpammerRank { private: SInitializer *m_pSInitializer; QList m_listMap; public: void setInitiaizer(SInitializer &_initializer){ m_pSInitializer = &_initializer; } void clear(){ m_listMap.clear(); } void makeTable(SDatagroup &_datagroup, const QMap& _mapCategory); bool uploadData(QSqlDatabase &_db, const int &_nCompany); }; class SBodySpammerMap { private: SInitializer *m_pSInitializer; QList m_listMap; public: void setInitiaizer(SInitializer &_initializer){ m_pSInitializer = &_initializer; } void clear(){ m_listMap.clear(); } void makeTable(SDatagroup &_datagroup, const QMap& _mapCategory ,QSet& setSpammer); bool uploadData(QSqlDatabase &_db, const int &_nCompany); bool changeTable(QSqlDatabase &_db, const int &_nCompany); }; class SReplySpammerMap { private: SInitializer *m_pSInitializer; QList m_listMap; public: void setInitiaizer(SInitializer &_initializer){ m_pSInitializer = &_initializer; } void clear(){ m_listMap.clear(); } void makeTable(SDatagroup &_datagroup, const QMap& _mapCategory, QSet& setSpammer); bool uploadData(QSqlDatabase &_db, const int &_nCompany); bool changeTable(QSqlDatabase &_db, const int &_nCompany); }; struct isGreaterSpammerValue { bool operator()(const stSpammer& first, const stSpammer& second) const { return first.spammervalue > second.spammervalue; } bool operator()(const stStatsSpaSpammerRank& first, const stStatsSpaSpammerRank& second) const { return first.spammervalue > second.spammervalue; } bool operator()(const stSpammerRank& first, const stSpammerRank& second) const { return first.value > second.value; } }; class SStatsJson { private: SInitializer *m_pSInitializer; QList m_listMap; public: void setInitiaizer(SInitializer &_SInitializer) { m_pSInitializer = &_SInitializer; } void makeTable(SDatagroup &_datagroup, const QMap& _mapCategory); void makeTableBuzz(SDatagroup &_datagroup, const QMap& _mapCategory); void makeTableRank(SDatagroup &_datagroup, const QMap& _mapCategory); bool uploadData(QSqlDatabase& _db, const int &_nCompany); void clear(){ m_listMap.clear(); } }; private: SFilterAlgorithm m_SFilterAlgorithm; QMap m_mapCategory; STSpammer m_STSpammer; //SStatsSpaSpammerRank m_SStatsSpaSpammerRank; SBodySpammerMap m_SBodySpammerMap; SReplySpammerMap m_SReplySpammerMap; QSet m_setSpammer; SStatsJson m_SStatsJson; public: virtual void setInitiaizer(SInitializer &_initializer); virtual bool uploadData(int _companyNum); virtual bool changeTable(int _companyNum); virtual bool makeCategory(SDatagroup &_datagroup, int _nCategory, const QList &_listFilter); virtual bool makeOverallCategory(int _categoryNum); virtual bool makeTable(SDatagroup &_datagroup); }; #endif // SSPAMMER