DPS/DataPlatform/SearchEditEventModule.cpp

1157 lines
27 KiB
C++
Raw Normal View History

2025-06-23 10:41:33 +08:00
#pragma execution_character_set("utf-8")
#include <QCoreApplication>
#include <QFileDialog>
#include<Qtime>
#include<QProcess>
#include"SearchEditEventModule.h"
#include"DataManager.h"
#include"DataModelData.h"
#include"M_EntityModelDAO.h"
#include"M_EntityTableDAO.h"
#include"M_NormalColumnDAO.h"
#include"DataAttribute.h"
#include"DataClass.h"
#include"Connection.h"
#include"global.h"
#include"ProjectData.h"
#include"SqlcipherTool.h"
//#define QTDEBUG
#ifdef QTDEBUG
json ret16 = json::array();
json ret17 = json::array();
json ret18 = json::array();
json ret30 = json::array();
json ret31 = json::array();
QStringList head;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void buildTestData()
{
head << "id" << "proA" << "proB" << "proC" << "proD" << "proE";
for (int index = 1; index <= 5; index++)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (int i = 0; i < index*1000; i++)
{
json col;
col["id"] = QString::number(i + 1).toStdString();
for (int j = 1; j < head.size(); j++)
{
col[head[j].toStdString()] = QString::number(qrand() % 10).toStdString();
}
switch (index)
{
case 1:
ret16.push_back(col);
break;
case 2:
ret17.push_back(col);
break;
case 3:
ret18.push_back(col);
break;
case 4:
ret30.push_back(col);
break;
case 5:
ret31.push_back(col);
break;
default:
break;
}
}
}
}
#endif
void getfile(json& parameter)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ѡ<EFBFBD><D1A1>
QString curPath = QCoreApplication::applicationDirPath();
QString selectDir = QFileDialog::getOpenFileName(nullptr, "ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", curPath, "");
if (!selectDir.isEmpty())
{
parameter["response"] = CommonHelper::qstringToUtf8(selectDir);
}
}
QString buildTmpFileName(QString type, int id, int colid)
{
QString tail = type.section('.', 1);
if (tail == "*")
{
return QString("%1@%2").arg(id).arg(colid);
}
else {
return QString("%1@%2.%3").arg(id).arg(colid).arg(tail);
}
}
QString checkFileType(QByteArray bytes)
{
QByteArray fileHead = bytes.left(50);
if (fileHead.startsWith("\xFF\xD8\xFF"))
{
return "*.jpg";
}
else if (fileHead.startsWith("\x42\x4D"))
{
return "*.bmp";
}
else if (fileHead.startsWith("\x89\x50\x4E\x47"))
{
return "*.png";
}
else if (fileHead.startsWith("\x47\x49\x46\x38"))
{
return "*.gif";
}
else if (fileHead.startsWith("\x3c\x3F\x78\x6D\x6C"))
{
return "*.xml";
}
else if (fileHead.startsWith("\x68\x74\x6D\x6C\x3E"))
{
return "*.html";
}
else
return NULL;
}
SearchEditEventModule::SearchEditEventModule(QObject* /*parent*/, DataManager* manager)
:BaseEventModule(manager, "SearchEditModule")
{
#ifdef QTDEBUG
buildTestData();
#endif // QTDEBUG
}
SearchEditEventModule::~SearchEditEventModule()
{
}
bool SearchEditEventModule::onMessage(const std::string& eventName, json& parameter)
{
LOG(INFO) << CommonHelper::utf8ToStdString("SearchEditEventModule receive message.......");
LOG(INFO) << eventName;
LOG(INFO) << CommonHelper::jsonToString(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;
//DBPlatformNew::setCurrentWorkDB("d:\\test1");
//M_EntityTableDAO* pTable = NULL;
//M_EntityTableDAO::FindByID(422, pTable);
//list<M_NormalColumnDAO*> columnList;
//list<string>valueList, valuelist2;
//ResultMsg rm3 = pTable->getData(columnList, valueList);
//valuelist2.push_back("-1@#@202@#@BBC<42><43><EFBFBD><EFBFBD>С@#@101");
//valuelist2.push_back("-1@#@201@#@BB<42><42><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@#@103");
//valuelist2.push_back("-1@#@203@#@BB<42><42><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>@#@101");
//ResultMsg rm4 = pTable->saveData(columnList, valuelist2);
//rm3 = pTable->getData(columnList, valueList);
TRY{
if (eventName == "open-file-dir")
{
////<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ѡ<EFBFBD><D1A1>
//QString curPath = QCoreApplication::applicationDirPath();
//QString selectDir = QFileDialog::getOpenFileName(nullptr, "ѡ<><D1A1><EFBFBD>ļ<EFBFBD>", curPath, "");
//if (!selectDir.isEmpty())
//{
// parameter["response"] = CommonHelper::qstringToUtf8(selectDir);
//}
getfile(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("open-file-dir Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (eventName == "open-data-file")
{
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
return connectDBFile(parameter);
}
else if (eventName == "save-connection")
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
return saveConnection(parameter);
}
else if (eventName == "close-connection")
{//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
return closeConnection(parameter);
}
else if (eventName == "delete-connection")
{//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return delConnection(parameter);
}
else if (eventName == "get-table-stru")
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return getTableStru(parameter);
}
else if (eventName == "get-table-data")
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return getTableData(parameter);
}
else if (eventName == "save-table-item")
{
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
return saveTableItem(parameter);
}
else if (eventName == "delete-table-item")
{
//ɾ<><C9BE>
return delTableItem(parameter);
}
else if (eventName == "save-new-data-file")
{ //<2F><><EFBFBD><EFBFBD>Ϊ
return saveNewFile(parameter);
}
else if (eventName == "filter-data")
{ //ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
return filterData(parameter);
}
else if (eventName == "get-src-file")
{ //<2F><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA>/<2F><><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
getfile(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("get-src-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (eventName == "set-new-file")
{
setNewFile(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("seet-new-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (eventName == "do-encryption")
{
//<2F><><EFBFBD>мӽ<D0BC><D3BD><EFBFBD>
sqlcipherDo(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("do-encryption Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (eventName == "save-data-to-file")
{//<2F><><EFBFBD><EFBFBD>blob<6F><62><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
saveBlobToFile(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("save-data-to-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (eventName == "copy-blob-data")
{
//<2F><><EFBFBD><EFBFBD>blob
copyBlobData(parameter);
LOG(INFO) << CommonHelper::utf8ToStdString("copy-blob-data Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
}
CATCH(parameter);
return EventModule::onMessage(eventName, parameter);
}
bool SearchEditEventModule::connectDBFile(json& parameter)
{
#ifdef QTDEBUG
json ret;
auto data = parameter["data"];
int id = data["id"];
int modelId = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(id);
if (!pCon)
{
//û<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>
parameter["error"] = "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
LOG(INFO) << CommonHelper::utf8ToStdString("open-data-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
QString name = pCon->getPath().right(4);
if (name == "A.db")
{
//ʧ<><CAA7>
parameter["response"]["status"] = false;
LOG(INFO) << CommonHelper::utf8ToStdString("open-data-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
else if (name == "B.db")
{
modelId = 3;
}
else if (name == "C.db")
{
modelId = 6;
}
else if (name == "D.db")
{
modelId = 7;
}
//<2F><>ǰʱ<C7B0><CAB1>
QString curTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm");
pCon->setTime(curTime);
pCon->setStatus(true);
pCon->toJson(ret);
DataModelData* pCurrentModel = qobject_cast<DataModelData*>(pDataManager->findObjectById(DataManager::DataType::dataModel, modelId));
ret["dataclass"] = json::array();
if (pCurrentModel)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ģ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!pCurrentModel->_initChildren)
{
pCurrentModel->getAllChildren(pDataManager, false);
pCurrentModel->_initChildren = true;
}
//json
QMap<unsigned int, DPData*>::iterator it = pCurrentModel->_childrenMap.begin();
while (it != pCurrentModel->_childrenMap.end())
{
json pack;
(*it)->toJson(pack, true);
ret["dataclass"].push_back(pack);
it++;
}
}
parameter["response"] = ret;
#else
using namespace DBPlatformSpace;
json ret;
auto data = parameter["data"];
int id = data["id"];
QString modelName; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ӧģ<D3A6><C4A3><EFBFBD><EFBFBD><><C8B7><EFBFBD><EFBFBD> <20><><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ƣ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(id);
//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
QFile file(pCon->getPath());
if (file.exists())
{
ResultMsg rm = DBPlatformSpace::DBPlatformNew::setCurrentWorkDB(CommonHelper::qstringToStdString(pCon->getPath()),0);
if (rm.rCode == 0)
{
//<2F><>ȡ<EFBFBD><C8A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
M_EntityModelDAO* pMEntityModel = nullptr;
ResultMsg rm = M_EntityModelDAO::getInstanceInfo(CommonHelper::qstringToStdString(pCon->getPath()), pMEntityModel);
if (rm.rCode == 0)
{
//<2F><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
currentFilePath = pCon->getPath();
//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>óɹ<C3B3>
pCon->setStatus(true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>Ϊ sqlite
pCon->setType("sqlite");
//<2F><>ǰʱ<C7B0><CAB1>
QString curTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm");
pCon->setTime(curTime);
pCon->toJson(ret); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
ret["dataclass"] = json::array();
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
ProjectData* pPro = qobject_cast<ProjectData*>(pDataManager->findObjectById(DataManager::DataType::project, pMEntityModel->_rProjectID));
if (pPro)
{
if (!pPro->_initChildren)
pPro->getAllChildren(pDataManager);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>
pCurrentModel = qobject_cast<DataModelData*>(pDataManager->findObjectById(DataManager::DataType::dataModel, pMEntityModel->_ID));
if (pCurrentModel)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ģ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!pCurrentModel->_initChildren)
{
pCurrentModel->getAllChildren(pDataManager, false);
pCurrentModel->_initChildren = true;
}
parameter["response"] = json::array();
//json
QMap<unsigned int, DPData*>::iterator it = pCurrentModel->_childrenMap.begin();
while (it != pCurrentModel->_childrenMap.end())
{
json pack;
(*it)->toJson(pack, true);
ret["dataclass"].push_back(pack);
it++;
}
}
else
{
//<2F>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
}
}
else
{
//<2F>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
}
else
{
//<2F><>ѯʵ<D1AF><CAB5><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ϣʧ<CFA2><CAA7>
LOG(INFO) << CommonHelper::utf8ToStdString("M_EntityModelDAO::getInstanceInfo failed ");
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ч";
LOG(ERROR) << rm.rMsg;
return true;
}
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("setCurrentWorkDB failed ");
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ч";
LOG(ERROR) << rm.rMsg;
return true;
}
}
else
{
LOG(INFO) << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
LOG(INFO) << CommonHelper::utf8ToStdString("open-data-file Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
parameter["response"] = ret;
#endif
LOG(INFO) << CommonHelper::utf8ToStdString("open-data-file Sendto web.......");
// LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
//ǰ<><C7B0><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB1A3><EFBFBD><EFBFBD>
bool SearchEditEventModule::saveConnection(json& parameter)
{
auto data = parameter["data"];
int id = data["id"];
Connection* pConn = nullptr;
SysManager& sysMnr = GetSysManager();
if (id == -1)
{
//<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
pConn = new Connection();
id = sysMnr.IDTool.new_id();
pConn->save(parameter);
pConn->setID(id);
sysMnr.addConnection(id, pConn);
}
else
{
pConn = sysMnr.findConnection(id);
if (pConn)
{
pConn->save(parameter);
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("save-connection cannot find connection");
parameter["response"]["status"] = false;
return true;
}
}
json j;
sysMnr.getConnectionJson(j);
parameter["response"] = j;
//sysMnr.saveConnectionProfile();
LOG(INFO) << CommonHelper::utf8ToStdString("save-connection Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool SearchEditEventModule::closeConnection(json& parameter)
{
auto data = parameter["data"];
int id = data["id"];
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(id);
if (!pCon)
{
parameter["error"] = "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
return true;
}
pCon->setStatus(false);
// pDataManager->pTheDBPlatform->setCurrentWorkDB("");
parameter["response"]["status"] = true;
return true;
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool SearchEditEventModule::delConnection(json& parameter)
{
auto data = parameter["data"];
int id = data["id"];
SysManager& sysMnr = GetSysManager();
if (sysMnr.delConnection(id))
{
json j;
sysMnr.getConnectionJson(j);
parameter["response"] = j;
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("del-connection failed.......");
parameter["response"]["status"] = false;
}
sysMnr.IDTool.recylce_id(id);
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
bool SearchEditEventModule::getTableStru(json& parameter)
{
auto data = parameter["data"];
int id = data["tableId"];
#ifdef QTDEBUG
DataClass* pTable = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, id));
if (!pTable)
{
parameter["error"] = "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
}
else
{
//json
QMap<unsigned int, DPData*>::iterator it = pTable->_childrenMap.begin();
while (it != pTable->_childrenMap.end())
{
json pack;
(*it)->toJson(pack, true);
parameter["response"].push_back(pack);
it++;
}
}
#else
DPData* pTable = pDataManager->findObjectById(DataManager::DataType::dataClass, id);
DBPlatformSpace::M_EntityTableDAO* pT = dynamic_cast<DBPlatformSpace::M_EntityTableDAO*>(pTable->_pDBDAO);
string currWorkDBFilePath = "";
currWorkDBFilePath = DBPlatformSpace::DBPlatformNew::getCurrentWorkDB();
DBPlatformSpace::M_EntityModelDAO* pMmodelOwner = NULL;
DBPlatformSpace::M_EntityModelDAO::getInstanceInfo(currWorkDBFilePath, pMmodelOwner);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
list<DBPlatformSpace::M_NormalColumnDAO*> colInDbList;
pT->getNormalColumnDAOList(pMmodelOwner, colInDbList);
for (auto el:colInDbList)
{
json j;
DataAttribute att;
att.loadData(el);
att.toJson(j);
parameter["response"].push_back(j);
}
#endif
LOG(INFO) << CommonHelper::utf8ToStdString("getTableStru Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
bool SearchEditEventModule::getTableData(json& parameter)
{
auto data = parameter["data"];
int id = data["tableId"];
#ifdef QTDEBUG
json ret;
if (id == 16)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//for (int i = 0; i < 10; i++)
//{
// json col;
// for (int j = 0; j < head.size(); j++)
// {
// col[head[j].toStdString()] = qrand() % 10;
// }
// ret.push_back(col);
//}
ret = ret16;
}
else if (id == 17)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//for (int i = 0; i < 10000; i++)
//{
// json col;
// for (int j = 0; j < head.size(); j++)
// {
// col[head[j].toStdString()] = qrand() % 30;
// }
// ret.push_back(col);
//}
ret = ret17;
}
else if (id == 18)
{
ret = ret18;
}
else if (id == 30)
{
ret = ret30;
}
else if (id == 31)
{
ret = ret31;
}
parameter["response"] = ret;
#else
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DPData* pTable = pDataManager->findObjectById(DataManager::DataType::dataClass,id);
if (pTable)
{
json j;
bool ret = qobject_cast<DataClass*>(pTable)->getAllDataToJson(j);
parameter["response"] = j;
if (ret == false)
{
parameter["error"] = "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
}
}
else
{
parameter["error"] = "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
}
#endif
LOG(INFO) << CommonHelper::utf8ToStdString("getTableData Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
bool SearchEditEventModule::saveNewFile(json& parameter)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ѡ<EFBFBD><D1A1>
QString curPath = QCoreApplication::applicationDirPath();
QString selectDir = QFileDialog::getSaveFileName(nullptr, tr("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ"), "", "", nullptr, QFileDialog::DontConfirmOverwrite);
auto data = parameter["data"];
int id = data["id"]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> id
if (!selectDir.isEmpty())
{
QFileInfo selectFile(selectDir);
if (selectFile.isFile())
{
//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
QString msg = "<EFBFBD>ļ<EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
parameter["error"] = CommonHelper::qstringToUtf8(msg);
parameter["response"]["status"] = false;
return true;
}
parameter["response"] = CommonHelper::qstringToUtf8(selectDir);
#ifdef QTDEBUG
return true;
#endif // QTDEBUG
}
else
{
parameter["response"]["status"] = false;
return true;
}
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>
oldFile = currentFilePath;
bool ret = QFile::copy(currentFilePath, selectDir);
if (ret)
{
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
DBPlatformSpace::ResultMsg rm = DBPlatformSpace::DBPlatformNew::setCurrentWorkDB(CommonHelper::qstringToStdString(selectDir),0);
if (rm.rCode != 0)
{
//<2F><>ʱ<EFBFBD>ָ<EFBFBD>
parameter["error"] = "<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>";
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
rm = DBPlatformSpace::DBPlatformNew::setCurrentWorkDB(CommonHelper::qstringToStdString(oldFile));
if (rm.rCode == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ԭ·<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ԭ·<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
bool ret = QFile::remove(selectDir);
if (ret == true)
{
LOG(INFO) << CommonHelper::utf8ToStdString("ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
LOG(INFO) << CommonHelper::utf8ToStdString("copytoNewFile Sendto web.......");
LOG(INFO) << CommonHelper::stringToUtf8(rm.rMsg);
return true;
}
else
{
currentFilePath = selectDir;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(id);
//<2F><><EFBFBD>浱ǰ<E6B5B1><C7B0><EFBFBD><EFBFBD>id
currentConnectID = id;
if (pCon)
{
pCon->setPath(currentFilePath);
}
json j;
pCon->toJson(j);
parameter["response"] = j;
}
}
else
{
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>";
}
LOG(INFO) << CommonHelper::utf8ToStdString("copytoNewFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
//<2F>޸<EFBFBD>
//proA = 100ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ʧ<EFBFBD><CAA7>
bool modify(json& j, int id, json& src)
{
for (auto& x : src)
{
if (x["id"] == id)
{
if (j["proA"] == "100") return false;
x["proA"] = j["proA"];
x["proB"] = j["proB"];
x["proC"] = j["proC"];
x["proD"] = j["proD"];
x["proE"] = j["proE"];
return true;
}
}
LOG(INFO) << CommonHelper::utf8ToStdString("can not find modify data");
return false;
}
bool SearchEditEventModule::saveTableItem(json& parameter)
{
auto data = parameter["data"];
int id = data["tableId"];
auto saveas = data["saveas"];
#ifdef QTDEBUG
bool ret;
auto items = data["items"];
for (auto& x : items)
{
//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// map<string, string> mp = x;
json j = x;
if (id == 16)
{
if (j["id"] == "-1")
{
j["id"] = "200";
ret16.push_back(j);
ret = true;
}
else
{//<2F>޸<EFBFBD>
ret = modify(j, j["id"], ret16);
}
}
if (id == 17)
{
if (j["id"] == "-1")
{
j["id"] = "20000";
ret17.push_back(j);
ret = true;
}
else
{
//<2F>޸<EFBFBD>
ret = modify(j, j["id"], ret17);
}
}
}
parameter["response"]["status"] = ret;
#else
//list<string> valuelist;
//auto items = data["items"];
//for (auto& x : items)
//{
// QStringList qValue; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// map<string, string> mp = x;
// for (auto& y : mp)
// {
// string v = y.second;
// qValue.push_back(QString::fromStdString(v));
// }
// string value = CommonHelper::qstringToStdString(qValue.join(","));
// valuelist.push_back(value);
//}
DPData* pTable = pDataManager->findObjectById(DataManager::DataType::dataClass,id);
if (pTable)
{
bool ret = qobject_cast<DataClass*>(pTable)->saveTableData(parameter, pCurrentModel);
parameter["response"]["status"] = ret;
if (ret == false && saveas == true)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʧ<CEAA><CAA7><><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(currentConnectID);
QString newfile = pCon->getPath();
//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F>л<EFBFBD><D0BB><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD>
DBPlatformSpace::ResultMsg rm = DBPlatformSpace::DBPlatformNew::setCurrentWorkDB(CommonHelper::qstringToStdString(oldFile),0);
if (rm.rCode == 0)
{
//<2F>л<EFBFBD><D0BB><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD><C4BC>ɹ<EFBFBD><C9B9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
pCon->setPath(oldFile);
currentFilePath = oldFile;
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
else
{
//<2F>л<EFBFBD><D0BB><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD>л<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
bool ret = QFile::remove(newfile);
if (ret == false)
{
//ɾ<><C9BE>ԭ<EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
else
{
//ɾ<><C9BE>ԭ<EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
LOG(INFO) << CommonHelper::utf8ToStdString("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
}
}
else
{
parameter["error"] = "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
}
#endif
LOG(INFO) << CommonHelper::utf8ToStdString("savetableItem Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
bool SearchEditEventModule::delTableItem(json& parameter)
{
auto data = parameter["data"];
int id = data["tableId"];
auto items = data["items"];
auto saveas = data["saveas"];
json ret;
#ifdef QTDEBUG
if (items.size() == 0)
{
LOG(INFO) << CommonHelper::utf8ToStdString("clear the table");
}
else
{
if (id == 16)
{
for (auto& i : items)
{
for (json::iterator it = ret16.begin(); it != ret16.end(); ++it)
{
if ((*it)["id"] == i)
{
ret16.erase(it);
break;
}
}
}
parameter["response"]["status"] = true;
}
if (id == 17)
{
parameter["response"]["status"] = false;
}
}
#else
DPData* pTable = pDataManager->findObjectById(DataManager::DataType::dataClass, id);
if (pTable)
{
bool ret = qobject_cast<DataClass*>(pTable)->delTableData(parameter);
parameter["response"]["status"] = ret;
if (ret == false && saveas == true)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʧ<EFBFBD><CAA7><><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
SysManager& sysMnr = GetSysManager();
Connection* pCon = sysMnr.findConnection(currentConnectID);
QString newfile = pCon->getPath();
bool ret = QFile::remove(newfile);
if (ret == false)
{
//ɾ<><C9BE>ԭ<EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
LOG(INFO) << CommonHelper::utf8ToStdString( "<><C9BE>)<29><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>ʱ<EFBFBD><CAB1>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>");
}
//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F>л<EFBFBD><D0BB><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD>
DBPlatformSpace::ResultMsg rm = DBPlatformSpace::DBPlatformNew::setCurrentWorkDB(CommonHelper::qstringToStdString(oldFile),0);
if (rm.rCode == 0)
{
//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
pCon->setPath(oldFile);
currentFilePath = oldFile;
LOG(INFO) << CommonHelper::utf8ToStdString("<><C9BE>)<29><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3>ָ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>");
}
else
{
LOG(INFO) << CommonHelper::utf8ToStdString("<><C9BE>)<29><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3>ָ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>");
}
}
}
else
{
parameter["error"] = "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
}
#endif
return true;
}
bool SearchEditEventModule::filterData(json& parameter)
{
auto data = parameter["data"];
int id = data["tableId"]; //Ҫ<><D2AA>ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
QString filterStr = CommonHelper::utf8ToQString(data["filter"]);
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataClass, id);
DataClass* pTable = qobject_cast<DataClass*>(pData);
json result;
pTable->filterData(filterStr, result);
parameter["response"] = result;
LOG(INFO) << CommonHelper::utf8ToStdString("filterData Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
return true;
}
void SearchEditEventModule::setNewFile(json& parameter)
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ȫ·<C8AB><C2B7>
QString file = QFileDialog::getSaveFileName(nullptr, tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD>"), "", "", nullptr, QFileDialog::DontConfirmOverwrite);
if (file.isEmpty())
{
// parameter["error"] = "δȷ<CEB4><C8B7><EFBFBD>ļ<EFBFBD>";
return ;
}
QFileInfo selectFile(file);
if (selectFile.isFile())
{
//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
parameter["error"] = "<EFBFBD>ļ<EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
return ;
}
parameter["response"] = CommonHelper::qstringToUtf8(file);
}
void SearchEditEventModule::sqlcipherDo(json& parameter)
{
SqlcipherTool sqliteTool;
auto data = parameter["data"];
string srcFile = data["srcfile"];
string dstFile = data["dstfile"];
string key = data["key"];
auto type = data["type"];
if (type == 0)
{ //<2F><><EFBFBD><EFBFBD>
string msg;
int ret = sqliteTool.encryption(srcFile, dstFile, key, msg);
if (ret != 0)
{
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ч";
parameter["response"]["status"] = false;
}
else
{
parameter["response"]["status"] = true;
}
}
else
{
//<2F><><EFBFBD><EFBFBD>
string msg;
int ret = sqliteTool.decrypt(srcFile, dstFile, key, msg);
if (ret != 0)
{
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ч";
parameter["response"]["status"] = false;
}
else
{
parameter["response"]["status"] = true;
}
}
}
//<2F><><EFBFBD><EFBFBD>blob<6F><62><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
void SearchEditEventModule::saveBlobToFile(json& parameter)
{
auto data = parameter["data"];
int tableid = data["tableid"];
int id = (CommonHelper::utf8ToQString(data["id"])).toInt();
int colid = data["colid"]; //<2F>е<EFBFBD>id
//<2F><>ȡ<EFBFBD><C8A1>blob<6F><62><EFBFBD><EFBFBD>
using namespace DBPlatformSpace;
double* buf = NULL;
int size = 0;
M_NormalColumnDAO* curCol = NULL;
ResultMsg rm = M_NormalColumnDAO::FindByID(colid, curCol);
M_EntityTableDAO* curTable = NULL;
rm = M_EntityTableDAO::FindByID(tableid, curTable);
rm = curTable->getBlobData(curCol, id, buf, size);
QByteArray bytes = QByteArray::fromRawData((char*)buf, size);
//<2F><><EFBFBD><EFBFBD>bytes<65><73><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QString fileType = checkFileType(bytes);
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ȫ·<C8AB><C2B7>
QString file = QFileDialog::getSaveFileName(nullptr, tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD>"), "", fileType,NULL, QFileDialog::DontConfirmOverwrite);
if (!file.isEmpty())
{
QFile sFile(file);
//<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 ))
printf("Open jsonfile failed!\n");
//д<><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
sFile.write((char*)buf, size);
//<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
sFile.close();
parameter["response"] = { {"status",true} };
}
LOG(INFO) << CommonHelper::utf8ToStdString("exportxmlFile Sendto web.......");
LOG(INFO) << CommonHelper::jsonToString(parameter);
}
void SearchEditEventModule::copyBlobData(json& parameter)
{
auto data = parameter["data"];
int tableid = data["tableid"];
int srcid = data["srcID"];
vector<int> cols = data["srcCol"];
parameter["response"]["retFilePath"] = json::array();
using namespace DBPlatformSpace;
M_NormalColumnDAO* curCol = NULL; //<2F><>ǰ<EFBFBD><C7B0>
M_EntityTableDAO* curTable = NULL;
ResultMsg rm = M_EntityTableDAO::FindByID(tableid, curTable);
for (int curColid : cols)
{
json j;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>и<EFBFBD><D0B8>е<EFBFBD>blob<6F><62><EFBFBD><EFBFBD>
rm = M_NormalColumnDAO::FindByID(curColid, curCol);
double* buf = NULL;
int size = 0;
QByteArray bytes;
if (srcid == -1)
{
}
else
{
rm = curTable->getBlobData(curCol, srcid, buf, size);
bytes = QByteArray::fromRawData((char*)buf, size);
}
QString tempFilePath = QCoreApplication::applicationDirPath() + "/temp/";
bool ret = CommonHelper::checkDir(tempFilePath);
if (ret)
{
QString filePath = tempFilePath + buildTmpFileName(checkFileType(bytes), srcid, curColid);
QFile sFile(filePath);
//<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))
printf("Open jsonfile failed!\n");
//д<><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
sFile.write((char*)buf, size);
//<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
sFile.close();
string name = curCol->NameToDAOAttriName(curCol->_name);
j["col"] = CommonHelper::stringToUtf8(name);
j["filePath"] = CommonHelper::qstringToUtf8(filePath);
parameter["response"]["retFilePath"].push_back(j);
}
}
}