2025-12-12 17:46:37 +08:00
|
|
|
// DataProcessor.cpp
|
|
|
|
|
#include "dataProcessor.h"
|
|
|
|
|
#include <QDebug>
|
|
|
|
|
#include <QJsonDocument>
|
|
|
|
|
#include <QJsonObject>
|
|
|
|
|
#include <QJsonArray>
|
|
|
|
|
|
|
|
|
|
DataProcessor* DataProcessor::instance()
|
|
|
|
|
{
|
|
|
|
|
static DataProcessor* instance = nullptr;
|
|
|
|
|
static QMutex mutex;
|
|
|
|
|
|
|
|
|
|
if (!instance) {
|
|
|
|
|
QMutexLocker locker(&mutex);
|
|
|
|
|
if (!instance) {
|
|
|
|
|
instance = new DataProcessor;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DataProcessor::DataProcessor(QObject* parent)
|
|
|
|
|
: QObject(parent)
|
|
|
|
|
{
|
|
|
|
|
qDebug() << "DataProcessor initialized";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataProcessor::processData(const QVariant& data,int conType)
|
|
|
|
|
{
|
2025-12-19 18:28:13 +08:00
|
|
|
qDebug() << "data_size:" << data.toJsonObject().size();
|
2025-12-12 17:46:37 +08:00
|
|
|
|
|
|
|
|
// 根据数据类型处理
|
2025-12-19 18:28:13 +08:00
|
|
|
if (data.canConvert<QJsonObject>()) {
|
|
|
|
|
processJson(data.toJsonObject(),conType);
|
|
|
|
|
}
|
|
|
|
|
else if(data.canConvert<QJsonArray>()){
|
|
|
|
|
processJsonArray(data);
|
|
|
|
|
}
|
2025-12-12 17:46:37 +08:00
|
|
|
}
|
|
|
|
|
|
2025-12-25 09:03:35 +08:00
|
|
|
void DataProcessor::processNullData(const QVariant& data)
|
|
|
|
|
{
|
|
|
|
|
emit httpProcessed("subscriptionTest",data);
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-12 17:46:37 +08:00
|
|
|
void DataProcessor::processJson( const QVariant& data,int conType)
|
|
|
|
|
{
|
|
|
|
|
QJsonObject dataObj = data.toJsonObject();
|
|
|
|
|
if(conType == 0){
|
|
|
|
|
if(dataObj.contains("client_id")){ //实时数据相关
|
|
|
|
|
emit httpProcessed("subscriptions",data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(conType == 1){
|
|
|
|
|
if(dataObj.contains("targets")){ //实时数据相关
|
|
|
|
|
emit websocketProcessed(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-12-19 18:28:13 +08:00
|
|
|
}
|
2025-12-12 17:46:37 +08:00
|
|
|
|
2025-12-19 18:28:13 +08:00
|
|
|
void DataProcessor::processJsonArray(const QVariant& data)
|
|
|
|
|
{
|
|
|
|
|
emit httpProcessed("recommend",data);
|
2025-12-12 17:46:37 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QVariant DataProcessor::getProcessedData(const QString& key) const
|
|
|
|
|
{
|
|
|
|
|
QMutexLocker locker(&m_mutex);
|
|
|
|
|
return m_dataCache.value(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataProcessor::clearAllData()
|
|
|
|
|
{
|
|
|
|
|
QMutexLocker locker(&m_mutex);
|
|
|
|
|
m_dataCache.clear();
|
|
|
|
|
qDebug() << "已清除所有处理数据";
|
|
|
|
|
}
|