#ifndef _DATABASE_H #define _DATABASE_H #include "easylogging++.h" //#include "logger.h" #include #include #include #include #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 _childrenMap; /*指向上层数据对象*/ DPData* _parent = nullptr; //DAO 数据库相关类 DBPlatformSpace::DAO* _pDBDAO = nullptr; }; struct RMsg { int rCode; ///<状态码 string rMsg; ///<状态字符串信息 RMsg() { rCode = 0; rMsg = ""; } }; #endif