Explorar o código

增加挂牌委托变更广播通知支持

zhou.xiaoning %!s(int64=2) %!d(string=hai) anos
pai
achega
8f13af6a9d
Modificáronse 4 ficheiros con 218 adicións e 102 borrados
  1. 1 0
      global/funcode.go
  2. 18 1
      initialize/rabbitmq.go
  3. 189 101
      res/pb/mtp2.pb.go
  4. 10 0
      res/pb/mtp2.proto

+ 1 - 0
global/funcode.go

@@ -4,6 +4,7 @@ var (
 	MoneyChangedNtf       = 131076 // 资金变化通知
 	OrderDealedNtf        = 131081 // 委托单成交通知
 	MarketStatusChangeNtf = 131089 // 市场状态变更通知
+	ListingOrderChangeNtf = 131176 // 挂牌委托变更广播通知
 
 	AccountFundInfoReq = 262150 // 账户资金信息请求
 	AccountFundInfoRsp = 262151 // 账户资金信息响应

+ 18 - 1
initialize/rabbitmq.go

@@ -138,6 +138,19 @@ func (t *MQProc) onNtf(funcode uint32, bytes *[]byte) {
 			c := client.Clients[i]
 			clients = append(clients, c)
 		}
+	case global.ListingOrderChangeNtf: // 挂牌委托变更广播通知
+		var p pb.ListingOrderChangeNtf
+		if err = proto.Unmarshal(*bytes, &p); err != nil {
+			global.M2A_LOG.Error("总线数据反序列化失败", zap.Error(err))
+			return
+		}
+
+		// 获取目标客户
+		clients = make([]*client.Client, 0)
+		for i := range client.Clients {
+			c := client.Clients[i]
+			clients = append(clients, c)
+		}
 	}
 
 	if err == nil && len(clients) > 0 {
@@ -166,7 +179,11 @@ func (t *MQProc) getRspProtobuf(msg *[]byte) (funcode uint32, sessionId uint32,
 	global.M2A_LOG.Info("收到总线消息", zap.Any("funcode", funcode), zap.Any("sessionId", sessionId), zap.Any("len", len(b)))
 
 	switch int(funcode) {
-	case global.MoneyChangedNtf, global.OrderDealedNtf, global.MarketStatusChangeNtf: // 资金变化通知等
+	case global.MoneyChangedNtf,
+		global.OrderDealedNtf,
+		global.MarketStatusChangeNtf,
+		global.ListingOrderChangeNtf: // 资金变化通知等
+
 		bytes = &b
 	case global.ModifyPwdRsp: // 修改账户密码应答
 		var p pb.ModifyPwdRsp

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 189 - 101
res/pb/mtp2.pb.go


+ 10 - 0
res/pb/mtp2.proto

@@ -89,6 +89,16 @@ message MarketStatusChangeNtf {
 		optional string NotifyTime = 7; // string 通知发送时间
 }
 
+// 挂牌委托变更广播通知
+message ListingOrderChangeNtf {
+	optional MessageHead Header = 1; // 消息头
+		optional NotifyHead NtfHeader = 2; // NotifyHead 公共消息头
+		optional uint64 OrderID = 3; // uint64 委托单号
+		optional uint64 OrderQty = 4; // uint64 委托数量
+		optional uint64 TradeQty = 5; // uint64 成交数量
+		optional uint64 CancelQty = 6; // uint64 撤销数量
+}
+
 // 文件列表
 message FileDetail {
 		optional string FileName = 1; // 文件名

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio