DPS/DataPlatform/XmlEditEventModule.cpp

292 lines
7.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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()
{
}
//»ñÈ¡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);
//²âÊÔ
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)
{
//¼ì²éÊÇ·ñÁ¬½ÓÊý¾Ý¿â
DataManager& dataRoot = GetDataRoot();
if (!dataRoot.pTheDBPlatform)
{
parameter["error"] = "ÇëÏÈÁ¬½ÓÊý¾Ý¿âÎļþ£¡";
return true;
}
using namespace DBPlatformSpace;
// »ñÈ¡ËùÓÐXMLfileÐÅÏ¢
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;
}
/*н¨xmlÎļþ*/
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;
}
/*±£´æ xmlÄ£°åÎļþ*/
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;
}
/*»ñÈ¡µ±Ç°xmlÎļþÐÅÏ¢*/
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;
}
/*µ¼³öxmlÄ£°åÐÅÏ¢*/
bool XmlEditEventModule::exportxmlFile(json& parameter)
{
auto data = parameter["data"];
QString name = CommonHelper::utf8ToQString(data["name"]);
QString content = CommonHelper::utf8ToQString(data["content"]);
SysManager& sysMgr = GetSysManager();
//¼ì²éÎļþ·¾¶ÊÇ·ñΪ¿Õ
if (sysMgr._xmlfilePath.isEmpty())
{
parameter["response"] = { {"status",false} };
parameter["error"] = "xmlÎļþ±£´æÂ·¾¶Îª¿Õ,ÇëÉèÖ÷¾¶";
LOG(INFO) << CommonHelper::utf8ToStdString("XmlEditEventModule::exportxmlFile failed. xmlfilePath is empty");
return true;
}
QString fileFullPath = sysMgr._xmlfilePath + "/" + name + ".xml";
QFile sFile(fileFullPath);
//ÒÔÖØÐ´¡¢Ö»Ð´·½Ê½´ò¿ªÎļþ£¨ÔËÐе½´Ëʱ£¬ÎļþÒѾ­´æÔÚĿ¼ÖУ©
if (!sFile.open(QIODevice::Truncate | QIODevice::WriteOnly | QIODevice::Text))
printf("Open jsonfile failed!\n");
//дÈëÎļþÄÚÈÝ
sFile.write(content.toStdString().c_str());
//¹Ø±ÕÎļþ
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"]);
//ÏÈÓÃϵͳÅäÖÃÖеÄÉú³É´úÂë·¾¶À´È·ÈÏλÖÃ
SysManager& sysMgr = GetSysManager();
QString fileFullPath = sysMgr._xmlfilePath + "/" + name + ".xml";
QString cmd = QString("explorer.exe /select,%1").arg(fileFullPath.replace('/', '\\'));
QProcess::startDetached(cmd);
return true;
}