Files
clients/FilterProcess/sconsumer.h
2017-08-08 12:20:01 +09:00

141 lines
3.7 KiB
C++

#ifndef SCONSUMER
#define SCONSUMER
#include "sservice.h"
#include "sfilteralgorithm.h"
#include <QDate>
class SConsumer:public SService
{
public:
struct stReal
{
QSet<QString> m_setRealAllUrl;
QSet<QString> m_setRealBodyUrl;
QMap<QString, int> m_mapRealReplyUniqueUrl; //multiple
};
struct stBodyConsumerMap
{
stBodyConsumerMap():num(0), body_num(0), category_num(0), realin(0), platformname_num(0), platformform_num(0),
replycount(0), view(0), likecount(0), sharecount(0), id_num(0), community_num(0), nickname_num(0){}
int num;
int body_num;
int category_num;
int realin;
int platformname_num;
int platformform_num;
QString date;
int replycount;
int view;
int likecount;
int sharecount;
int id_num;
int community_num;
int nickname_num;
};
struct stReplyConsumerMap
{
stReplyConsumerMap():num(0), reply_num(0), body_num(0), id_num(0), category_num(0), realin(0) {}
int num;
int reply_num;
int body_num;
int id_num;
int category_num;
int realin;
};
struct stStatsJson
{
stStatsJson():company_num(0), servicenum(2), platformname_num(1), category_num(0){}
int company_num;
int servicenum;
QString title;
QString subtitle;
int platformname_num;
QString jdata;
int category_num;
};
struct stBuzzy
{
int m_nCategory;
QMap<QDate, int> m_mapBodyBuzz;
QMap<QDate, int> m_mapReplyBuzz;
};
class SBodyConsumerMap
{
public:
void setInitiaizer(SInitializer &_SInitializer) { m_pSInitializer = &_SInitializer; }
void makeTable(SDatagroup &_datagroup, const QMap<int, stReal>& _mapCategory);
bool changeTable(QSqlDatabase& _db, const int &_nCompany);
bool uploadData(QSqlDatabase& _db, const int &_nCompany);
void clear() { m_listMap.clear(); }
private:
SInitializer *m_pSInitializer;
QList<stBodyConsumerMap> m_listMap;
};
class SStatsJson
{
public:
void setInitiaizer(SInitializer &_SInitializer) { m_pSInitializer = &_SInitializer; }
void makeTable(SDatagroup &_datagroup, const QMap<int, stReal>& _mapCategory);
bool uploadData(QSqlDatabase& _db, const int &_nCompany);
bool SaveDataFile(const int &_nCompany);
void clear(){ m_listMap.clear(); }
private:
SInitializer *m_pSInitializer;
QList<stStatsJson> m_listMap;
QString getStatsJsonBySubtitle(QString _subtitle);
};
public:
virtual void setInitiaizer(SInitializer &_initializer);
virtual bool uploadData(int _companyNum);
virtual bool SaveDataFile(int _companyNum);
virtual bool changeTable(int _companyNum);
virtual bool makeCategory(SDatagroup &_datagroup, int _nCategory, const QList<SInitializer::stFilter> &_listFilter);
virtual bool makeOverallCategory(int _nCategory);
virtual bool makeTable(SDatagroup &_datagroup);
private:
SFilterAlgorithm m_SFilterAlgorithm;
QMap<int, stReal> m_mapCategory;
SBodyConsumerMap m_SBodyConsumerMap;
SStatsJson m_SStatsJson;
};
class SConsumerAssist:public SService
{
public:
virtual void setInitiaizer(SInitializer& _initializer) { m_pSInitializer = &_initializer; }
virtual bool uploadData(int /*_companyNum*/){ return true; }
virtual bool changeTable(int /*_companyNum*/){ return true; }
virtual bool makeCategory(SDatagroup& /*_datagroup*/, int /*_nCategory*/, const QList<SInitializer::stFilter> &/*_listFilter*/){ return true; }
virtual bool makeOverallCategory(int /*_nCategory*/){ return true; }
virtual bool makeTable(SDatagroup &/*_datagroup*/){return true;}
};
class SConsumerMarketer:public SConsumerAssist
{
public:
virtual bool makeTable(SDatagroup &_datagroup);
};
class SConsumerCheckList:public SConsumerAssist
{
public:
virtual bool makeTable(SDatagroup &_datagroup);
};
#endif // SCONSUMER