100 lines
2.4 KiB
C++
100 lines
2.4 KiB
C++
#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)
|
|
Q_PROPERTY(QString name READ getName WRITE setName) //名称标识
|
|
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);
|
|
|
|
/*保存数据到DAO*/
|
|
virtual void saveToDao();
|
|
/*保存本身数据*/
|
|
virtual bool saveSelf();
|
|
/*增加child数据*/
|
|
virtual bool addChild(DPData* newData);
|
|
/*删除一条child数据*/
|
|
virtual bool deleteChild(unsigned int id);
|
|
|
|
/*删除本对象*/
|
|
virtual bool deleteSelf();
|
|
// /*更新本对象*/
|
|
// virtual bool updateSelf(DPData& newData);
|
|
/*从数据库加载一条数据到当前对象*/
|
|
virtual void loadData(DBPlatformSpace::DAO* pDao);
|
|
/*获取所有下层数据*/
|
|
virtual void getAllChildren(DPData* pManager=nullptr, bool reload = false);
|
|
/*获取参数中设置的属性*/
|
|
virtual void getNewProperty(json& jsonObj, QVariantMap& valueMap);
|
|
/*设置新的数据对象信息*/
|
|
virtual void setNewData(json& jsonObj);
|
|
/*设置编辑的对象信息*/
|
|
virtual void setEditData(json& jsonObj);
|
|
/*增加场景*/
|
|
virtual bool addScene(DPData* pNew);
|
|
/*删除场景*/
|
|
virtual bool deleteScene(int id);
|
|
/*获取所属数据模型*/
|
|
DPData* getDataModelOwner();
|
|
DPData* getDataManager();
|
|
|
|
DPData* hasSameNameChild(QString propertyName, QString name);
|
|
|
|
virtual void toJson(json& jsonObj, bool recursive = false);
|
|
//设置需求文档数据
|
|
virtual void setFileData(FileGenerate* generator, QStringList flag);
|
|
|
|
|
|
int _id = 0; /*编号*/
|
|
QString _name; /*名称*/
|
|
unsigned int _baseType = 0; /*类型*/
|
|
/*下层数据对象数组*/
|
|
QMap<unsigned int, DPData*> _childrenMap;
|
|
/*指向上层数据对象*/
|
|
DPData* _parent = nullptr;
|
|
//DAO 数据库相关类
|
|
DBPlatformSpace::DAO* _pDBDAO = nullptr;
|
|
|
|
};
|
|
|
|
|
|
struct RMsg
|
|
{
|
|
int rCode; ///<状态码
|
|
string rMsg; ///<状态字符串信息
|
|
RMsg()
|
|
{
|
|
rCode = 0;
|
|
rMsg = "";
|
|
}
|
|
};
|
|
|
|
#endif
|