DPS/DataPlatform/DPData.h

100 lines
2.4 KiB
C
Raw Normal View History

2025-06-23 10:41:33 +08:00
#ifndef _DATABASE_H
#define _DATABASE_H
#include "easylogging++.h"
//#include "logger.h"
#include <QObject>
#include <QString>
#include <QMap>
#include <QVariantMap>
#include "common.h"
#include "json.hpp"
using json = nlohmann::json;
#include "DAO.h"
#include "FileGenerate.h"
class DPData :public QObject
{
Q_OBJECT
Q_PROPERTY(unsigned int id READ getID WRITE setID)
2025-06-23 18:01:09 +08:00
Q_PROPERTY(QString name READ getName WRITE setName) //名称标识
2025-06-23 10:41:33 +08:00
public:
DPData();
virtual ~DPData();
int getID() const{ return _id; }
void setID(unsigned int newId) { _id = newId; }
QString getName() const{ return _name; }
void setName(QString strName) { _name = strName; }
QVariantMap getProperties() const;
void setProperties(const QVariantMap& properties);
2025-06-23 18:01:09 +08:00
/*保存数据到DAO*/
2025-06-23 10:41:33 +08:00
virtual void saveToDao();
2025-06-23 18:01:09 +08:00
/*保存本身数据*/
2025-06-23 10:41:33 +08:00
virtual bool saveSelf();
2025-06-23 18:01:09 +08:00
/*增加child数据*/
2025-06-23 10:41:33 +08:00
virtual bool addChild(DPData* newData);
2025-06-23 18:01:09 +08:00
/*删除一条child数据*/
2025-06-23 10:41:33 +08:00
virtual bool deleteChild(unsigned int id);
2025-06-23 18:01:09 +08:00
/*删除本对象*/
2025-06-23 10:41:33 +08:00
virtual bool deleteSelf();
2025-06-23 18:01:09 +08:00
// /*更新本对象*/
2025-06-23 10:41:33 +08:00
// virtual bool updateSelf(DPData& newData);
2025-06-23 18:01:09 +08:00
/*从数据库加载一条数据到当前对象*/
2025-06-23 10:41:33 +08:00
virtual void loadData(DBPlatformSpace::DAO* pDao);
2025-06-23 18:01:09 +08:00
/*获取所有下层数据*/
2025-06-23 10:41:33 +08:00
virtual void getAllChildren(DPData* pManager=nullptr, bool reload = false);
2025-06-23 18:01:09 +08:00
/*获取参数中设置的属性*/
2025-06-23 10:41:33 +08:00
virtual void getNewProperty(json& jsonObj, QVariantMap& valueMap);
2025-06-23 18:01:09 +08:00
/*设置新的数据对象信息*/
2025-06-23 10:41:33 +08:00
virtual void setNewData(json& jsonObj);
2025-06-23 18:01:09 +08:00
/*设置编辑的对象信息*/
2025-06-23 10:41:33 +08:00
virtual void setEditData(json& jsonObj);
2025-06-23 18:01:09 +08:00
/*增加场景*/
2025-06-23 10:41:33 +08:00
virtual bool addScene(DPData* pNew);
2025-06-23 18:01:09 +08:00
/*删除场景*/
2025-06-23 10:41:33 +08:00
virtual bool deleteScene(int id);
2025-06-23 18:01:09 +08:00
/*获取所属数据模型*/
2025-06-23 10:41:33 +08:00
DPData* getDataModelOwner();
DPData* getDataManager();
DPData* hasSameNameChild(QString propertyName, QString name);
virtual void toJson(json& jsonObj, bool recursive = false);
2025-06-23 18:01:09 +08:00
//设置需求文档数据
2025-06-23 10:41:33 +08:00
virtual void setFileData(FileGenerate* generator, QStringList flag);
2025-06-23 18:01:09 +08:00
int _id = 0; /*编号*/
QString _name; /*名称*/
unsigned int _baseType = 0; /*类型*/
/*下层数据对象数组*/
2025-06-23 10:41:33 +08:00
QMap<unsigned int, DPData*> _childrenMap;
2025-06-23 18:01:09 +08:00
/*指向上层数据对象*/
2025-06-23 10:41:33 +08:00
DPData* _parent = nullptr;
2025-06-23 18:01:09 +08:00
//DAO 数据库相关类
2025-06-23 10:41:33 +08:00
DBPlatformSpace::DAO* _pDBDAO = nullptr;
};
struct RMsg
{
2025-06-23 18:01:09 +08:00
int rCode; ///<状态码
string rMsg; ///<状态字符串信息
2025-06-23 10:41:33 +08:00
RMsg()
{
rCode = 0;
rMsg = "";
}
};
#endif