195 lines
8.7 KiB
Protocol Buffer
195 lines
8.7 KiB
Protocol Buffer
|
|
//========================================================================================
|
|||
|
|
// @file DbSaveMessage.proto
|
|||
|
|
// @brief 关系库存库服务(db_save)使用的消息结构
|
|||
|
|
// @author xuyang yikenan
|
|||
|
|
//========================================================================================
|
|||
|
|
|
|||
|
|
syntax="proto2";
|
|||
|
|
package iot_idl;
|
|||
|
|
|
|||
|
|
// 用到了SVariable
|
|||
|
|
import "Public.proto";
|
|||
|
|
|
|||
|
|
// 缩写说明:
|
|||
|
|
// DSS : Database Save Server 关系库存库服务程序
|
|||
|
|
|
|||
|
|
// APP : Application 应用程序,比如告警服务
|
|||
|
|
// SRV : Server 服务端程序(存库服务)
|
|||
|
|
// CLT : Client 客户端程序(暂无)
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 消息类型枚举
|
|||
|
|
//========================================================================================
|
|||
|
|
enum enDssMsgType
|
|||
|
|
{
|
|||
|
|
// CMbMessage,Para1是消息序号,Para2是DomainID
|
|||
|
|
MT_DSS_APP2SRV_INSERT = 10; // 应用程序插入
|
|||
|
|
MT_DSS_APP2SRV_REMOVE = 20; // 应用程序删除
|
|||
|
|
MT_DSS_APP2SRV_REMOVEMULTI = 21; // 应用程序批量删除
|
|||
|
|
MT_DSS_APP2SRV_UPDATE = 30; // 应用程序更新
|
|||
|
|
MT_DSS_APP2SRV_UPDATEMULTI = 31; // 应用程序批量更新
|
|||
|
|
MT_DSS_SRV2APP_ACK = 100; // 服务回复确认收到消息
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// save_action 类型枚举
|
|||
|
|
//========================================================================================
|
|||
|
|
enum enDssSaveAction
|
|||
|
|
{
|
|||
|
|
SA_DSS_DO_NOTHING = 0; // 无
|
|||
|
|
SA_DSS_LOCAL_ONLY = 1; // 仅保存到本域时序库
|
|||
|
|
SA_DSS_REMOTE_ONLY = 2; // 仅保存到远程域时序库
|
|||
|
|
SA_DSS_LOCAL_REMOTE = 3; // 保存到本域以及远程域时序库
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 数据库查询条件,等效于SQL:
|
|||
|
|
// 括号开始(如果有) strColumnName enRelation msgValue 括号结束(如果有) enLogic
|
|||
|
|
// 举例:
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketStart,"Col_AAA",111} 等效SQL片段 :
|
|||
|
|
// ( Col_AAA = 111 and
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbCondition
|
|||
|
|
{
|
|||
|
|
optional ENConditionLogic enLogic = 1;
|
|||
|
|
required ENConditionRelation enRelation = 2;
|
|||
|
|
|
|||
|
|
// 括号,暂无需求,未实现。用于改变优先级,枚举值有:无,括号开始,括号结束
|
|||
|
|
// ENConditionBracket 的定义在 Public.proto
|
|||
|
|
// optional ENConditionBracket enBracket = xxx;
|
|||
|
|
|
|||
|
|
required string strColumnName = 3;
|
|||
|
|
required SVariable msgValue = 4;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//< 查询条件头,不包含值,用于批量操作,避免重复传入列名
|
|||
|
|
message DbConditionHead
|
|||
|
|
{
|
|||
|
|
optional ENConditionLogic enLogic = 1;
|
|||
|
|
required ENConditionRelation enRelation = 2;
|
|||
|
|
|
|||
|
|
// 括号,暂无需求,未实现。用于改变优先级,枚举值有:无,括号开始,括号结束
|
|||
|
|
// ENConditionBracket 的定义在 Public.proto
|
|||
|
|
// optional ENConditionBracket enBracket = xxx;
|
|||
|
|
|
|||
|
|
required string strColumnName = 3;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 值的序列,用于表示一条记录,或一个条件
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbValueArray
|
|||
|
|
{
|
|||
|
|
repeated SVariable msgValue = 1; //< 列的值,顺序与列名对应
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 更新的数据
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbUpdateValue
|
|||
|
|
{
|
|||
|
|
required string strColumnName = 1;
|
|||
|
|
required SVariable msgValue = 2;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 插入
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbInsert
|
|||
|
|
{
|
|||
|
|
required enDssSaveAction enSaveAction = 1;
|
|||
|
|
required string strTableName = 2;
|
|||
|
|
repeated string strColumnName = 3;
|
|||
|
|
repeated DbValueArray msgRecord = 4;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 删除,等效于SQL:
|
|||
|
|
// delete from strTableName where msgCondition[i]子语句(见DbCondition注释) ...
|
|||
|
|
// 条件子语句举例:
|
|||
|
|
// msgCondtionArray = [{enumCondOr,enumCondEqual,enumBracketStart,"Col_AAA","A1"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketEnd,"Col_BBB","B1"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketNone,"Col_CCC","C1"}]
|
|||
|
|
// 等效SQL条件语句:
|
|||
|
|
// where ( Col_AAA = 'A1' or Col_BBB = 'B1' ) and Col_CCC = 'C1'
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbRemove
|
|||
|
|
{
|
|||
|
|
required enDssSaveAction enSaveAction = 1;
|
|||
|
|
required string strTableName = 2;
|
|||
|
|
repeated DbCondition msgCondtionArray = 3;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 批量删除,避免频繁传入列名。每个msgConditionValue[i]与msgConditionHead组合,等效于一个DbCondition
|
|||
|
|
// delete from strTableName where msgConditionValue[i]子语句(见DbCondition注释) ...
|
|||
|
|
// 条件子语句举例:
|
|||
|
|
// msgConditionHead = [{enumCondOr,enumCondEqual,enumBracketStart,"Col_AAA"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketEnd,"Col_BBB"}]
|
|||
|
|
// msgConditionValue = [{"A1","B1"},{"A2","B2"}]
|
|||
|
|
// 等效SQL条件语句:
|
|||
|
|
// where ( Col_AAA = 'A1' or Col_BBB = 'B1' ) and ( Col_AAA = 'A2' or Col_BBB = 'B2' )
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbRemoveMulti
|
|||
|
|
{
|
|||
|
|
required enDssSaveAction enSaveAction = 1;
|
|||
|
|
required string strTableName = 2;
|
|||
|
|
repeated DbConditionHead msgConditionHead = 3;
|
|||
|
|
repeated DbValueArray msgConditionValue = 4; //< Value中的值的顺序与Head中对应
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 更新,等效于SQL:
|
|||
|
|
// update strTableName set msgUpdateValue[i].strColumnName = msgUpdateValue[i].msgValue ...
|
|||
|
|
// where msgCondition[i]子语句(见DbCondition注释) ...
|
|||
|
|
// 条件子语句举例:
|
|||
|
|
// msgCondtionArray = [{enumCondOr,enumCondEqual,enumBracketStart,"Col_AAA","A1"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketEnd,"Col_BBB","B1"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketNone,"Col_CCC","C1"}]
|
|||
|
|
// 等效SQL条件语句:
|
|||
|
|
// where ( Col_AAA = 'A1' or Col_BBB = 'B1' ) and Col_CCC = 'C1'
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbUpdate
|
|||
|
|
{
|
|||
|
|
required enDssSaveAction enSaveAction = 1;
|
|||
|
|
required string strTableName = 2;
|
|||
|
|
repeated DbUpdateValue msgUpdateValue = 3;
|
|||
|
|
repeated DbCondition msgCondition = 4;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// 批量更新,避免频繁传入列名。每个msgConditionValue[i]与msgConditionHead组合,等效于一个DbCondition
|
|||
|
|
// update strTableName set msgUpdateValue[i].strColumnName = msgUpdateValue[i].msgValue ...
|
|||
|
|
// where msgConditionValue[i]子语句(见DbCondition注释) ...
|
|||
|
|
// 条件子语句举例:
|
|||
|
|
// msgConditionHead = [{enumCondOr,enumCondEqual,enumBracketStart,"Col_AAA"},
|
|||
|
|
// {enumCondAnd,enumCondEqual,enumBracketEnd,"Col_BBB"}]
|
|||
|
|
// msgConditionValue = [{"A1","B1"},{"A2","B2"}]
|
|||
|
|
// 等效SQL条件语句:
|
|||
|
|
// where ( Col_AAA = 'A1' or Col_BBB = 'B1' ) and ( Col_AAA = 'A2' or Col_BBB = 'B2' )
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbUpdateMulti
|
|||
|
|
{
|
|||
|
|
required enDssSaveAction enSaveAction = 1;
|
|||
|
|
required string strTableName = 2;
|
|||
|
|
repeated DbUpdateValue msgUpdateValue = 3;
|
|||
|
|
repeated DbConditionHead msgConditionHead = 4;
|
|||
|
|
repeated DbValueArray msgConditionValue = 5; //< Value中的值的顺序与Head中对应
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//========================================================================================
|
|||
|
|
// DbSave服务内部使用
|
|||
|
|
//========================================================================================
|
|||
|
|
message DbRequest
|
|||
|
|
{
|
|||
|
|
//< 注意:以下只允许一个有值
|
|||
|
|
optional DbInsert msgInsert = 1;
|
|||
|
|
optional DbRemove msgRemove = 2;
|
|||
|
|
optional DbRemoveMulti msgRemoveMulti = 3;
|
|||
|
|
optional DbUpdate msgUpdate = 4;
|
|||
|
|
optional DbUpdateMulti msgUpdateMulti = 5;
|
|||
|
|
}
|
|||
|
|
|