85 lines
2.3 KiB
C++
85 lines
2.3 KiB
C++
#include "seffectstatistics.h"
|
|
#include <QSet>
|
|
#include <QDate>
|
|
#include <QDateTime>
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
#include <QJsonValue>
|
|
#include <QJsonArray>
|
|
#include <QDebug>
|
|
|
|
int getInteractionCount(const EffectData& _data)
|
|
{
|
|
QSet<QString> set_id;
|
|
foreach (const DataForm& row, _data.reply)
|
|
{
|
|
if (_data.body.data[ARTICLE_ID].trimmed() != row.data[ARTICLE_ID].trimmed())
|
|
set_id.insert(row.data[ARTICLE_ID].trimmed());
|
|
}
|
|
return set_id.size();
|
|
}
|
|
|
|
int getReplyCount(const EffectData &_data)
|
|
{
|
|
return _data.reply.size();
|
|
}
|
|
|
|
int getlikeCount(const EffectData& _data)
|
|
{
|
|
//qDebug() << "getlikeCount:" << _data.body.data[REPLY_URL];
|
|
return _data.body.data[REPLY_URL].toInt();
|
|
}
|
|
|
|
int getViewCount(const EffectData& _data)
|
|
{
|
|
return _data.body.data[ARTICLE_HIT].trimmed().replace(",","").toInt();
|
|
}
|
|
|
|
QString getViewBuzz(const EffectData& _data)
|
|
{
|
|
QString str;
|
|
return str;
|
|
}
|
|
|
|
|
|
QString getReplyBuzz(const EffectData& _data)
|
|
{
|
|
QMap<QDate, int> mapDate;
|
|
|
|
QDate firstDate = QDateTime::fromString(_data.body.data[ARTICLE_DATE].trimmed().replace("T", " ").replace(".","-").replace("- "," "), "yyyy-MM-dd hh:mm:ss").date();
|
|
QDate lastDate = QDate::currentDate();
|
|
|
|
|
|
qDebug() << _data.body.data[ARTICLE_DATE];
|
|
qDebug() << "firstDate:" << firstDate.toString("yyyy-MM-dd");
|
|
qDebug() << "lastDate:" << lastDate.toString("yyyy-MM-dd");
|
|
|
|
|
|
for (QDate date = firstDate; date <= lastDate; date = date.addDays(1))
|
|
{
|
|
mapDate.insert(date, 0);
|
|
}
|
|
|
|
foreach (auto &row, _data.reply)
|
|
{
|
|
// qDebug() << row.data[ARTICLE_DATE].trimmed();
|
|
QDate date = QDateTime::fromString(row.data[ARTICLE_DATE].trimmed().replace("T", " ").replace(".","-").replace("- "," "), "yyyy-MM-dd hh:mm:ss").date();
|
|
if (!mapDate.contains(date))
|
|
//mapDate.insert(date, 0);
|
|
continue;
|
|
mapDate[date]++;
|
|
}
|
|
QJsonArray jArray;
|
|
|
|
for (auto iter = mapDate.cbegin(); iter != mapDate.cend(); ++iter)
|
|
{
|
|
QJsonObject jObj;
|
|
jObj["date"] = iter.key().toString("MM-dd-yyyy");
|
|
jObj["value"] = iter.value();
|
|
jArray.append(jObj);
|
|
}
|
|
QJsonDocument jDoc(jArray);
|
|
QString result = jDoc.toJson(QJsonDocument::Compact);
|
|
return result;
|
|
}
|