DPS/DataPlatform/XmlEditEventModule.cpp

292 lines
7.8 KiB
C++
Raw Normal View History

2025-06-23 10:41:33 +08:00
#pragma execution_character_set("utf-8")
#include "XmlEditEventModule.h"
#include "DataAccessModule.h"
#include "DBPlatformNew.h"
#include "M_ProjectDAO.h"
#include "M_XMLTemplateDAO.h"
#include "M_EntityModelDAO.h"
#include "SysManager.h"
#include "DataManager.h"
#include <QProcess>
XmlEditEventModule::XmlEditEventModule(QObject* /*parent*/, DataManager* manager)
:BaseEventModule(manager, "XmlEditEventModule")
{
addShareEventModule(new DataAccessModule(pDataManager));
}
XmlEditEventModule::~XmlEditEventModule()
{
}
//<2F><>ȡjson
void toJson(json& jsonObj, DBPlatformSpace::M_XMLTemplateDAO* pDAO, bool bContent)
{
using namespace DBPlatformSpace;
jsonObj["id"] = pDAO->_ID;
jsonObj["name"] = CommonHelper::stringToUtf8(pDAO->_name);
jsonObj["projectId"] = pDAO->_projectID;
M_ProjectDAO* pro = nullptr;
M_ProjectDAO::FindByID(pDAO->_projectID, pro);
jsonObj["projectName"] = CommonHelper::stringToUtf8(pro->_name);
jsonObj["datamodelId"] = pDAO->_modelID;
M_EntityModelDAO* model = nullptr;
M_EntityModelDAO::FindByID(pDAO->_modelID, model);
jsonObj["modelName"] = CommonHelper::stringToUtf8(model->_displayName);
jsonObj["createTime"] = CommonHelper::stringToUtf8(pDAO->_createTime);
//<2F><><EFBFBD><EFBFBD>
LOG(INFO) << CommonHelper::jsonToString(jsonObj);
delete pro;
pro = nullptr;
delete model;
model = nullptr;
if (bContent)
{
jsonObj["content"] = CommonHelper::stringToUtf8(pDAO->_content);
}
}
bool XmlEditEventModule::onMessage(const std::string& eventName, json& parameter)
{
LOG(INFO) << CommonHelper::utf8ToStdString("XmlEditEventModule receive message.......");
LOG(INFO) << eventName;
LOG(INFO) << CommonHelper::jsonToString(parameter);
TRY{
if (eventName == "get-all-xml")
{
return getAllxmlFiles(parameter);
}
else if (eventName == "new-xml-file")
{
return addxmlFile(parameter);
}
else if (eventName == "save-xml-file")
{
return savexmlFile(parameter);
}
else if (eventName == "get-current-xml")
{
return getCurrentFile(parameter);
}
else if (eventName == "del-xml-file")
{
return deletexmlFile(parameter);
}
else if (eventName == "export-xml-file")
{
return exportxmlFile(parameter);
}
else if (eventName == "open-xml-dir")
{
return openxmlDir(parameter);
}
}
CATCH(parameter);
return EventModule::onMessage(eventName, parameter);
}
bool XmlEditEventModule::getAllxmlFiles(json& parameter)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
DataManager& dataRoot = GetDataRoot();
if (!dataRoot.pTheDBPlatform)
{
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>";
return true;
}
using namespace DBPlatformSpace;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>XMLfile<6C><65>Ϣ
std::list<M_XMLTemplateDAO*> xmlfileList;
ResultMsg rm = M_XMLTemplateDAO::FindAll(xmlfileList);
parameter["response"] = json::array();
for (list<M_XMLTemplateDAO*>::iterator it = xmlfileList.begin(); it != xmlfileList.end(); ++it)
{
json j;
toJson(j, *it,false);
parameter["response"].push_back(j);
}
LOG(INFO) << CommonHelper::utf8ToStdString("getCurrentDataModel Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
/*<2A>½<EFBFBD>xml<6D>ļ<EFBFBD>*/
bool XmlEditEventModule::addxmlFile(json& parameter)
{
using namespace DBPlatformSpace;
auto data = parameter["data"];
M_XMLTemplateDAO pnew ;
pnew._ID = data["id"];
pnew._name = CommonHelper::utf8ToStdString(data["name"]);
pnew._projectID = data["projectId"];
pnew._modelID = data["datamodelId"];
pnew._createTime = CommonHelper::qstringToUtf8(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm"));
ResultMsg rm = pnew.save();
if (rm.rCode == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::save success");
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::savefailed ");
parameter["error"] = CommonHelper::stringToUtf8(rm.rMsg);
LOG(ERROR) << rm.rMsg;
return true;
}
data["id"] = pnew._ID;
data["createTime"] = pnew._createTime;
parameter["response"] = data;
LOG(INFO) << CommonHelper::utf8ToStdString("addxmlFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
/*<2A><><EFBFBD><EFBFBD> xmlģ<6C><C4A3><EFBFBD>ļ<EFBFBD>*/
bool XmlEditEventModule::savexmlFile(json& parameter)
{
using namespace DBPlatformSpace;
auto data = parameter["data"];
M_XMLTemplateDAO* pxmlfile = new M_XMLTemplateDAO();
M_XMLTemplateDAO::FindByID(data["id"], pxmlfile);
pxmlfile->_content = CommonHelper::utf8ToStdString(data["content"]);
ResultMsg rm = pxmlfile->save();
if (rm.rCode == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::save success");
}
else
{
delete pxmlfile;
pxmlfile = nullptr;
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::savefailed ");
parameter["error"] = CommonHelper::stringToUtf8(rm.rMsg);
LOG(ERROR) << rm.rMsg;
return true;
}
delete pxmlfile;
pxmlfile = nullptr;
parameter["response"] = true;
LOG(INFO) << CommonHelper::utf8ToStdString("savexmlFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
/*<2A><>ȡ<EFBFBD><C8A1>ǰxml<6D>ļ<EFBFBD><C4BC><EFBFBD>Ϣ*/
bool XmlEditEventModule::getCurrentFile(json& parameter)
{
using namespace DBPlatformSpace;
auto data = parameter["data"];
M_XMLTemplateDAO* pxmlfile = new M_XMLTemplateDAO();
ResultMsg rm = M_XMLTemplateDAO::FindByID(data["id"], pxmlfile);
if (rm.rCode == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::FindByID success");
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::FindByID failed ");
parameter["error"] = CommonHelper::stringToUtf8(rm.rMsg);
LOG(ERROR) << rm.rMsg;
return true;
}
json j;
toJson(j, pxmlfile, true);
parameter["response"] = j;
return true;
}
bool XmlEditEventModule::deletexmlFile(json& parameter)
{
using namespace DBPlatformSpace;
auto data = parameter["data"];
M_XMLTemplateDAO* pxmlfile = new M_XMLTemplateDAO();
M_XMLTemplateDAO::FindByID(data["id"], pxmlfile);
ResultMsg rm = pxmlfile->delself();
if(rm.rCode == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::delself success");
parameter["response"] = { {"status",true} };
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("M_XMLTemplateDAO::delself failed ");
parameter["error"] = CommonHelper::stringToUtf8(rm.rMsg);
LOG(ERROR) << rm.rMsg;
return true;
}
LOG(INFO) << CommonHelper::utf8ToStdString("deletexmlFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
/*<2A><><EFBFBD><EFBFBD>xmlģ<6C><C4A3><EFBFBD><EFBFBD>Ϣ*/
bool XmlEditEventModule::exportxmlFile(json& parameter)
{
auto data = parameter["data"];
QString name = CommonHelper::utf8ToQString(data["name"]);
QString content = CommonHelper::utf8ToQString(data["content"]);
SysManager& sysMgr = GetSysManager();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
if (sysMgr._xmlfilePath.isEmpty())
{
parameter["response"] = { {"status",false} };
parameter["error"] = "xml<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>";
LOG(INFO) << CommonHelper::utf8ToStdString("XmlEditEventModule::exportxmlFile failed. xmlfilePath is empty");
return true;
}
QString fileFullPath = sysMgr._xmlfilePath + "/" + name + ".xml";
QFile sFile(fileFullPath);
//<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ֻд<D6BB><D0B4>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ļ<EFBFBD><C4BC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF>У<EFBFBD>
if (!sFile.open(QIODevice::Truncate | QIODevice::WriteOnly | QIODevice::Text))
printf("Open jsonfile failed!\n");
//д<><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
sFile.write(content.toStdString().c_str());
//<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
sFile.close();
parameter["response"] = { {"status",true} };
LOG(INFO) << CommonHelper::utf8ToStdString("exportxmlFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
bool XmlEditEventModule::openxmlDir(json& parameter)
{
auto data = parameter["data"];
QString name = CommonHelper::utf8ToQString(data["name"]);
//<2F><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>λ<EFBFBD><CEBB>
SysManager& sysMgr = GetSysManager();
QString fileFullPath = sysMgr._xmlfilePath + "/" + name + ".xml";
QString cmd = QString("explorer.exe /select,%1").arg(fileFullPath.replace('/', '\\'));
QProcess::startDetached(cmd);
return true;
}