#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) { return iot_dbms::initDbSaveApi(domainId,appID); } void CDbSaveCtrl::releaseDbSave() { iot_dbms::releaseDbSaveApi(); } bool CDbSaveCtrl::updateActionEvent(const SSeqCtrlActionEvent& info) { using namespace std; 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; 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; 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; 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; 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; 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; }