292 lines
7.8 KiB
C++
292 lines
7.8 KiB
C++
#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;
|
||
}
|