574 lines
20 KiB
C++
Raw Normal View History

#include "CDbSaveCtrl.h"
#include "dbms/db_save_api/DbSaveApi.h"
#define CN_bool_save_to_center true
CDbSaveCtrl::CDbSaveCtrl()
{
}
CDbSaveCtrl::~CDbSaveCtrl()
{
}
bool CDbSaveCtrl::initDbSave(int domainId,int appID)
{
2025-03-12 14:17:53 +08:00
return iot_dbms::initDbSaveApi(domainId,appID);
}
void CDbSaveCtrl::releaseDbSave()
{
2025-03-12 14:17:53 +08:00
iot_dbms::releaseDbSaveApi();
}
bool CDbSaveCtrl::updateActionEvent(const SSeqCtrlActionEvent& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbUpdate objUpdate;
objUpdate.set_strtablename("sequence_action_event");
objUpdate.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
{
DbCondition* pDbCondition;
SVariable *pValue;
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("seq_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("time");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("func_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_name);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("action_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.action_name);
pDbCondition->set_allocated_msgvalue(pValue);
}
{
DbUpdateValue *pRecord;
SVariable *pValue;
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.action_desc);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("action_desc");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.action_no);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("action_no");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("status");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.starttime);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("starttime");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.stoptime);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("stoptime");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.key_id_tag);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("key_id_tag");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.targetvalue);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("targetvalue");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("location_id");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.discribe);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("discribe");
}
saveHisData(objUpdate);
return true;
}
bool CDbSaveCtrl::updateSeqFuncHistory(const SSeqFunctionHistory& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbUpdate objUpdate;
objUpdate.set_strtablename("sequence_function_history");
objUpdate.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
{
DbCondition* pDbCondition;
SVariable *pValue;
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("seq_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("time");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("func_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_name);
pDbCondition->set_allocated_msgvalue(pValue);
}
{
DbUpdateValue *pRecord;
SVariable *pValue;
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_desc);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("func_desc");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.func_no);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("func_no");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.relation);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("relation");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("status");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("location_id");
}
saveHisData(objUpdate);
return true;
}
bool CDbSaveCtrl::updateSeqHistory(const SSeqHistory& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbUpdate objUpdate;
objUpdate.set_strtablename("sequence_history");
objUpdate.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
{
DbCondition* pDbCondition;
SVariable *pValue;
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("seq_name");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pDbCondition->set_allocated_msgvalue(pValue);
pDbCondition = objUpdate.add_msgcondition();
pDbCondition->set_enlogic(enumCondAnd);
pDbCondition->set_enrelation(enumCondEqual);
pDbCondition->set_strcolumnname("time");
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pDbCondition->set_allocated_msgvalue(pValue);
}
{
DbUpdateValue *pRecord;
SVariable *pValue;
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_desc);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("seq_desc");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("status");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("location_id");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.user_id);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("user_id");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.user_group);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("user_group");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.host_name);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("host_name");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.user_name);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("user_name");
pRecord = objUpdate.add_msgupdatevalue();
pValue = new SVariable;
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.seq_type);
pRecord->set_allocated_msgvalue(pValue);
pRecord->set_strcolumnname("seq_type");
}
saveHisData(objUpdate);
return true;
}
bool CDbSaveCtrl::addActionEvent(const SSeqCtrlActionEvent& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbInsert objInsert;
objInsert.set_strtablename("sequence_action_event");
objInsert.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
//add column name
{
string *colName = objInsert.add_strcolumnname();
*colName = "seq_name";
colName = objInsert.add_strcolumnname();
*colName = "time";
colName = objInsert.add_strcolumnname();
*colName = "func_name";
colName = objInsert.add_strcolumnname();
*colName = "action_no";
colName = objInsert.add_strcolumnname();
*colName = "action_name";
colName = objInsert.add_strcolumnname();
*colName = "action_desc";
colName = objInsert.add_strcolumnname();
*colName = "status";
colName = objInsert.add_strcolumnname();
*colName = "starttime";
colName = objInsert.add_strcolumnname();
*colName = "stoptime";
colName = objInsert.add_strcolumnname();
*colName = "key_id_tag";
colName = objInsert.add_strcolumnname();
*colName = "targetvalue";
colName = objInsert.add_strcolumnname();
*colName = "location_id";
colName = objInsert.add_strcolumnname();
*colName = "discribe";
}
{
DbValueArray *pRecord = objInsert.add_msgrecord();
SVariable *pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.action_no);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.action_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.action_desc);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.starttime);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.stoptime);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.key_id_tag);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.targetvalue);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.discribe);
}
saveHisData(objInsert);
return true;
}
bool CDbSaveCtrl::addSeqFuncHistory(const SSeqFunctionHistory& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbInsert objInsert;
objInsert.set_strtablename("sequence_function_history");
objInsert.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
//add column name
{
string *colName = objInsert.add_strcolumnname();
*colName = "seq_name";
colName = objInsert.add_strcolumnname();
*colName = "time";
colName = objInsert.add_strcolumnname();
*colName = "func_name";
colName = objInsert.add_strcolumnname();
*colName = "func_desc";
colName = objInsert.add_strcolumnname();
*colName = "func_no";
colName = objInsert.add_strcolumnname();
*colName = "relation";
colName = objInsert.add_strcolumnname();
*colName = "status";
colName = objInsert.add_strcolumnname();
*colName = "location_id";
}
{
DbValueArray *pRecord = objInsert.add_msgrecord();
SVariable *pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.func_desc);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.func_no);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.relation);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
}
saveHisData(objInsert);
return true;
}
bool CDbSaveCtrl::addSeqHistory(const SSeqHistory& info)
{
using namespace std;
2025-03-12 14:17:53 +08:00
using namespace iot_dbms;
using namespace iot_idl;
DbInsert objInsert;
objInsert.set_strtablename("sequence_history");
objInsert.set_ensaveaction(SA_DSS_LOCAL_REMOTE);
//add column name
{
string *colName = objInsert.add_strcolumnname();
*colName = "seq_name";
colName = objInsert.add_strcolumnname();
*colName = "time";
colName = objInsert.add_strcolumnname();
*colName = "seq_desc";
colName = objInsert.add_strcolumnname();
*colName = "status";
colName = objInsert.add_strcolumnname();
*colName = "location_id";
colName = objInsert.add_strcolumnname();
*colName = "user_id";
colName = objInsert.add_strcolumnname();
*colName = "user_group";
colName = objInsert.add_strcolumnname();
*colName = "host_name";
colName = objInsert.add_strcolumnname();
*colName = "user_name";
colName = objInsert.add_strcolumnname();
*colName = "seq_type";
}
{
DbValueArray *pRecord = objInsert.add_msgrecord();
SVariable *pValue = NULL;
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_UINT64);
pValue->set_ulvalue(info.time);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.seq_desc);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.status);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.location_id);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.user_id);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.user_group);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.host_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_STRING);
pValue->set_strvalue(info.user_name);
pValue = pRecord->add_msgvalue();
pValue->set_edatatype(DataType::CN_DATATYPE_INT32);
pValue->set_nvalue(info.seq_type);
}
saveHisData(objInsert);
return true;
}