Przeglądaj źródła

Merge branch 'feature/v1.1.12' of http://192.168.3.207:8080/BaseService/jyMicroservices into feature/v1.1.12

wangshan 2 lat temu
rodzic
commit
168b037cc0

+ 3 - 3
jyBXBase/api/bxbase.api

@@ -87,9 +87,9 @@ type (
 		FileExists      string `json:"fileExists,optional"` //附件
 		Notkey          string `json:"notkey,optional"`     //排除词 关键词:排除词(副:五组,每组最多15个字符)
 		InKey           string `json:"inkey,optional"`
-		SearchGroup     string `json:"searchGroup,optional"`     // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-		SearchMode      string `json:"searchMode,optional"`      // 搜索模式:0:精准搜索;1:模糊搜索
-		WordsMode       string `json:"wordsMode,optional"`       // 搜索关键词模式;默认0:包含所有,1:包含任意
+		SearchGroup     int    `json:"searchGroup,optional"`     // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+		SearchMode      int    `json:"searchMode,optional"`      // 搜索模式:0:精准搜索;1:模糊搜索
+		WordsMode       int    `json:"wordsMode,optional"`       // 搜索关键词模式;默认0:包含所有,1:包含任意
 		AdditionalWords string `json:"additionalWords,optional"` // 关键词:附加关键词(副:五组,每组最多15个字符)
 	}
 	//首页最新招标信息

+ 3 - 3
jyBXBase/api/internal/logic/addSearchScreenLogic.go

@@ -48,9 +48,9 @@ func (l *AddSearchScreenLogic) AddSearchScreen(req *types.AddSearchScreen) (resp
 		NotKey:          req.Notkey,
 		InKey:           req.InKey,
 		AppId:           req.AppId,
-		SearchGroup:     req.SearchGroup,
-		SearchMode:      req.SearchMode,
-		WordsMode:       req.WordsMode,
+		SearchGroup:     int64(req.SearchGroup),
+		SearchMode:      int64(req.SearchMode),
+		WordsMode:       int64(req.WordsMode),
 		AdditionalWords: req.AdditionalWords,
 	})
 	if err0 != nil {

+ 3 - 3
jyBXBase/api/internal/logic/checkSearchScreenLogic.go

@@ -47,9 +47,9 @@ func (l *CheckSearchScreenLogic) CheckSearchScreen(req *types.AddSearchScreen) (
 		FileExists:      req.FileExists,
 		NotKey:          req.Notkey,
 		AppId:           req.AppId,
-		SearchGroup:     req.SearchGroup,
-		SearchMode:      req.SearchMode,
-		WordsMode:       req.WordsMode,
+		SearchGroup:     int64(req.SearchGroup),
+		SearchMode:      int64(req.SearchMode),
+		WordsMode:       int64(req.WordsMode),
 		AdditionalWords: req.AdditionalWords,
 	})
 	if err0 != nil {

+ 3 - 3
jyBXBase/api/internal/types/types.go

@@ -78,9 +78,9 @@ type AddSearchScreen struct {
 	FileExists      string `json:"fileExists,optional"` //附件
 	Notkey          string `json:"notkey,optional"`     //排除词 关键词:排除词(副:五组,每组最多15个字符)
 	InKey           string `json:"inkey,optional"`
-	SearchGroup     string `json:"searchGroup,optional"`     // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-	SearchMode      string `json:"searchMode,optional"`      // 搜索模式:0:精准搜索;1:模糊搜索
-	WordsMode       string `json:"wordsMode,optional"`       // 搜索关键词模式;默认0:包含所有,1:包含任意
+	SearchGroup     int    `json:"searchGroup,optional"`     // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+	SearchMode      int    `json:"searchMode,optional"`      // 搜索模式:0:精准搜索;1:模糊搜索
+	WordsMode       int    `json:"wordsMode,optional"`       // 搜索关键词模式;默认0:包含所有,1:包含任意
 	AdditionalWords string `json:"additionalWords,optional"` // 关键词:附加关键词(副:五组,每组最多15个字符)
 }
 

+ 6 - 6
jyBXBase/rpc/bxbase.proto

@@ -136,9 +136,9 @@ message ListSearchRes{
   string id = 17;
   bool isPay = 18;
   string tabularflag = 19;
-  string  searchGroup = 20;//搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-  string  searchMode = 21;//搜索模式:0:精准搜索;1:模糊搜索
-  string  wordsMode = 22;// 搜索关键词模式;默认0:包含所有,1:包含任意
+  int64  searchGroup = 20;//搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+  int64  searchMode = 21;//搜索模式:0:精准搜索;1:模糊搜索
+  int64  wordsMode = 22;// 搜索关键词模式;默认0:包含所有,1:包含任意
   string additionalWords = 23;//关键词:附加关键词(副:五组,每组最多15个字符)
 }
 
@@ -161,9 +161,9 @@ message AddSearchReq{
   string city = 16;
   string inKey = 17;
   string appId = 18;
-  string  searchGroup = 19;//搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-  string  searchMode = 20;//搜索模式:0:精准搜索;1:模糊搜索
-  string  wordsMode = 21;// 搜索关键词模式;默认0:包含所有,1:包含任意
+  int64  searchGroup = 19;//搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+  int64  searchMode = 20;//搜索模式:0:精准搜索;1:模糊搜索
+  int64  wordsMode = 21;// 搜索关键词模式;默认0:包含所有,1:包含任意
   string additionalWords = 22;//关键词:附加关键词(副:五组,每组最多15个字符)
 }
 

+ 3 - 3
jyBXBase/rpc/internal/logic/showsearchlogic.go

@@ -76,9 +76,9 @@ func (l *ShowSearchLogic) ShowSearch(in *bxbase.ShowSearchReq) (res *bxbase.Show
 			listSearch.FileExists = common.InterfaceToStr(vlu["file_exists"])
 			listSearch.Notkey = common.InterfaceToStr(vlu["not_key"])
 			listSearch.Tabularflag = common.InterfaceToStr(vlu["tabular_flag"])
-			listSearch.SearchGroup = common.InterfaceToStr(vlu["searchGroup"])
-			listSearch.SearchMode = common.InterfaceToStr(vlu["searchMode"])
-			listSearch.WordsMode = common.InterfaceToStr(vlu["wordsMode"])
+			listSearch.SearchGroup = common.Int64All(vlu["searchGroup"])
+			listSearch.SearchMode = common.Int64All(vlu["searchMode"])
+			listSearch.WordsMode = common.Int64All(vlu["wordsMode"])
 			listSearch.AdditionalWords = common.InterfaceToStr(vlu["additionalWords"])
 			//ppa,buyer,winner,agency
 			if SelectCheck(listSearch.SelectType, isOld) || listSearch.City != "" || listSearch.Notkey != "" ||

+ 24 - 24
jyBXBase/rpc/type/bxbase/bxbase.pb.go

@@ -1338,9 +1338,9 @@ type ListSearchRes struct {
 	Id              string `protobuf:"bytes,17,opt,name=id,proto3" json:"id,omitempty"`
 	IsPay           bool   `protobuf:"varint,18,opt,name=isPay,proto3" json:"isPay,omitempty"`
 	Tabularflag     string `protobuf:"bytes,19,opt,name=tabularflag,proto3" json:"tabularflag,omitempty"`
-	SearchGroup     string `protobuf:"bytes,20,opt,name=searchGroup,proto3" json:"searchGroup,omitempty"`         //搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-	SearchMode      string `protobuf:"bytes,21,opt,name=searchMode,proto3" json:"searchMode,omitempty"`           //搜索模式:0:精准搜索;1:模糊搜索
-	WordsMode       string `protobuf:"bytes,22,opt,name=wordsMode,proto3" json:"wordsMode,omitempty"`             // 搜索关键词模式;默认0:包含所有,1:包含任意
+	SearchGroup     int64  `protobuf:"varint,20,opt,name=searchGroup,proto3" json:"searchGroup,omitempty"`        //搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+	SearchMode      int64  `protobuf:"varint,21,opt,name=searchMode,proto3" json:"searchMode,omitempty"`          //搜索模式:0:精准搜索;1:模糊搜索
+	WordsMode       int64  `protobuf:"varint,22,opt,name=wordsMode,proto3" json:"wordsMode,omitempty"`            // 搜索关键词模式;默认0:包含所有,1:包含任意
 	AdditionalWords string `protobuf:"bytes,23,opt,name=additionalWords,proto3" json:"additionalWords,omitempty"` //关键词:附加关键词(副:五组,每组最多15个字符)
 }
 
@@ -1509,25 +1509,25 @@ func (x *ListSearchRes) GetTabularflag() string {
 	return ""
 }
 
-func (x *ListSearchRes) GetSearchGroup() string {
+func (x *ListSearchRes) GetSearchGroup() int64 {
 	if x != nil {
 		return x.SearchGroup
 	}
-	return ""
+	return 0
 }
 
-func (x *ListSearchRes) GetSearchMode() string {
+func (x *ListSearchRes) GetSearchMode() int64 {
 	if x != nil {
 		return x.SearchMode
 	}
-	return ""
+	return 0
 }
 
-func (x *ListSearchRes) GetWordsMode() string {
+func (x *ListSearchRes) GetWordsMode() int64 {
 	if x != nil {
 		return x.WordsMode
 	}
-	return ""
+	return 0
 }
 
 func (x *ListSearchRes) GetAdditionalWords() string {
@@ -1560,9 +1560,9 @@ type AddSearchReq struct {
 	City            string `protobuf:"bytes,16,opt,name=city,proto3" json:"city,omitempty"`
 	InKey           string `protobuf:"bytes,17,opt,name=inKey,proto3" json:"inKey,omitempty"`
 	AppId           string `protobuf:"bytes,18,opt,name=appId,proto3" json:"appId,omitempty"`
-	SearchGroup     string `protobuf:"bytes,19,opt,name=searchGroup,proto3" json:"searchGroup,omitempty"`         //搜索分组:默认0:全部;1:招标采购公告;2:超前项目
-	SearchMode      string `protobuf:"bytes,20,opt,name=searchMode,proto3" json:"searchMode,omitempty"`           //搜索模式:0:精准搜索;1:模糊搜索
-	WordsMode       string `protobuf:"bytes,21,opt,name=wordsMode,proto3" json:"wordsMode,omitempty"`             // 搜索关键词模式;默认0:包含所有,1:包含任意
+	SearchGroup     int64  `protobuf:"varint,19,opt,name=searchGroup,proto3" json:"searchGroup,omitempty"`        //搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+	SearchMode      int64  `protobuf:"varint,20,opt,name=searchMode,proto3" json:"searchMode,omitempty"`          //搜索模式:0:精准搜索;1:模糊搜索
+	WordsMode       int64  `protobuf:"varint,21,opt,name=wordsMode,proto3" json:"wordsMode,omitempty"`            // 搜索关键词模式;默认0:包含所有,1:包含任意
 	AdditionalWords string `protobuf:"bytes,22,opt,name=additionalWords,proto3" json:"additionalWords,omitempty"` //关键词:附加关键词(副:五组,每组最多15个字符)
 }
 
@@ -1724,25 +1724,25 @@ func (x *AddSearchReq) GetAppId() string {
 	return ""
 }
 
-func (x *AddSearchReq) GetSearchGroup() string {
+func (x *AddSearchReq) GetSearchGroup() int64 {
 	if x != nil {
 		return x.SearchGroup
 	}
-	return ""
+	return 0
 }
 
-func (x *AddSearchReq) GetSearchMode() string {
+func (x *AddSearchReq) GetSearchMode() int64 {
 	if x != nil {
 		return x.SearchMode
 	}
-	return ""
+	return 0
 }
 
-func (x *AddSearchReq) GetWordsMode() string {
+func (x *AddSearchReq) GetWordsMode() int64 {
 	if x != nil {
 		return x.WordsMode
 	}
-	return ""
+	return 0
 }
 
 func (x *AddSearchReq) GetAdditionalWords() string {
@@ -3035,11 +3035,11 @@ var file_bxbase_proto_rawDesc = []byte{
 	0x52, 0x05, 0x69, 0x73, 0x50, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x75, 0x6c,
 	0x61, 0x72, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61,
 	0x62, 0x75, 0x6c, 0x61, 0x72, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61,
-	0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+	0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
 	0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73,
-	0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52,
 	0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77,
-	0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+	0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
 	0x77, 0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x64, 0x64,
 	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x17, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x57, 0x6f,
@@ -3076,11 +3076,11 @@ var file_bxbase_proto_rawDesc = []byte{
 	0x09, 0x52, 0x05, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49,
 	0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x20,
 	0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70,
+	0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70,
 	0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x14,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65,
 	0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28,
+	0x01, 0x28, 0x03, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28,
 	0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x64,
 	0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,
 	0x6e, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x53,

+ 2 - 2
jyBXSubscribe/rpc/bxsubscribe.proto

@@ -64,7 +64,7 @@ message subscribeInfo {
   int64  ca_isvip = 20;
   bool   ca_fileExists = 21;
   int64  source = 22;//来源;1:个人订阅 2:企业自动分发 3:企业手动分发
-  string  site = 23;
+  string  site = 23; // 网站名称
   string buyerTel = 24; // 采购单位联系方式
   string buyerPerson = 25; // 采购单位联系人
   string agency =26;//代理机构
@@ -73,7 +73,7 @@ message subscribeInfo {
   int64 signendTime=29 ;// 报名截止日期
   int64 bidendTime=30;// 投标截止日期
   repeated WinnerInfo winnerInfo = 31;// 中标企业信息
-
+  string spiderCode = 33;//网站代码
 
 }
 //

+ 3 - 2
jyBXSubscribe/rpc/model/push.go

@@ -28,8 +28,8 @@ import (
 const (
 	pageSize            = 100
 	AllSubPushCacheSize = 200
-	query               = `{"query":{"terms":{"_id":["%s"]}},"_source":["_id","area", "publishtime", "s_subscopeclass", "subtype", "title", "toptype", "type", "buyerclass","bidamount","budget","projectname","buyer","bidopentime","s_winner","filetext","buyertel","buyerperson","agency","agencyperson","agencytel","winnerperson","winnertel","signendtime","bidendtime","entidlist"],"from":0,"size":%d}`
-	mongodb_fields      = `{"_id":1,"area":1,"publishtime":1,"s_subscopeclass":1,"subtype":1,"title":1,"toptype":1,"type":1, "buyerclass":1,"budget":1,"bidamount":1,"s_winner":1,"bidopentime":1,"buyer":1,"projectname":1,"filetext":1,"buyertel":1,"buyerperson":1,"agency":1,"agencyperson":1,"agencytel":1,"winnerperson":1,"winnertel":1,"signendtime":1,"bidendtime":1,"entidlist":1}`
+	query               = `{"query":{"terms":{"_id":["%s"]}},"_source":["_id","area", "publishtime", "s_subscopeclass", "subtype", "title", "toptype", "type", "buyerclass","bidamount","budget","projectname","buyer","bidopentime","s_winner","filetext","spidercode","site","buyertel","buyerperson","agency","agencyperson","agencytel","winnerperson","winnertel","signendtime","bidendtime","entidlist"],"from":0,"size":%d}`
+	mongodb_fields      = `{"_id":1,"area":1,"publishtime":1,"s_subscopeclass":1,"subtype":1,"title":1,"toptype":1,"type":1, "buyerclass":1,"budget":1,"bidamount":1,"s_winner":1,"bidopentime":1,"buyer":1,"projectname":1,"filetext":1,"spidercode":1,"site":1,"buyertel":1,"buyerperson":1,"agency":1,"agencyperson":1,"agencytel":1,"winnerperson":1,"winnertel":1,"signendtime":1,"bidendtime":1,"entidlist":1}`
 
 	SubFreeFlag  = "fType"
 	SubVipFlag   = "vType"
@@ -230,6 +230,7 @@ func (s *subscribePush) InfoFormat(p *PushCa, info *map[string]interface{}, isPa
 		CaFileExists: p.FileExists,
 		Source:       p.Source,
 		Site:         common.InterfaceToStr((*info)["site"]),
+		SpiderCode:   common.InterfaceToStr((*info)["spidercode"]),
 	}
 	// 免费用户返回精简列表字段
 	if !isPay {

+ 14 - 4
jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe.pb.go

@@ -395,8 +395,8 @@ type SubscribeInfo struct {
 	BidOpenTime  int64         `protobuf:"varint,19,opt,name=bidOpenTime,proto3" json:"bidOpenTime,omitempty"`
 	CaIsvip      int64         `protobuf:"varint,20,opt,name=ca_isvip,json=caIsvip,proto3" json:"ca_isvip,omitempty"`
 	CaFileExists bool          `protobuf:"varint,21,opt,name=ca_fileExists,json=caFileExists,proto3" json:"ca_fileExists,omitempty"`
-	Source       int64         `protobuf:"varint,22,opt,name=source,proto3" json:"source,omitempty"` //来源;1:个人订阅 2:企业自动分发 3:企业手动分发
-	Site         string        `protobuf:"bytes,23,opt,name=site,proto3" json:"site,omitempty"`
+	Source       int64         `protobuf:"varint,22,opt,name=source,proto3" json:"source,omitempty"`            //来源;1:个人订阅 2:企业自动分发 3:企业手动分发
+	Site         string        `protobuf:"bytes,23,opt,name=site,proto3" json:"site,omitempty"`                 // 网站名称
 	BuyerTel     string        `protobuf:"bytes,24,opt,name=buyerTel,proto3" json:"buyerTel,omitempty"`         // 采购单位联系方式
 	BuyerPerson  string        `protobuf:"bytes,25,opt,name=buyerPerson,proto3" json:"buyerPerson,omitempty"`   // 采购单位联系人
 	Agency       string        `protobuf:"bytes,26,opt,name=agency,proto3" json:"agency,omitempty"`             //代理机构
@@ -405,6 +405,7 @@ type SubscribeInfo struct {
 	SignendTime  int64         `protobuf:"varint,29,opt,name=signendTime,proto3" json:"signendTime,omitempty"`  // 报名截止日期
 	BidendTime   int64         `protobuf:"varint,30,opt,name=bidendTime,proto3" json:"bidendTime,omitempty"`    // 投标截止日期
 	WinnerInfo   []*WinnerInfo `protobuf:"bytes,31,rep,name=winnerInfo,proto3" json:"winnerInfo,omitempty"`     // 中标企业信息
+	SpiderCode   string        `protobuf:"bytes,33,opt,name=spiderCode,proto3" json:"spiderCode,omitempty"`     //网站代码
 }
 
 func (x *SubscribeInfo) Reset() {
@@ -656,6 +657,13 @@ func (x *SubscribeInfo) GetWinnerInfo() []*WinnerInfo {
 	return nil
 }
 
+func (x *SubscribeInfo) GetSpiderCode() string {
+	if x != nil {
+		return x.SpiderCode
+	}
+	return ""
+}
+
 //
 type WinnerInfo struct {
 	state         protoimpl.MessageState
@@ -2444,7 +2452,7 @@ var file_bxsubscribe_proto_rawDesc = []byte{
 	0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
 	0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73,
 	0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22,
-	0x93, 0x07, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66,
+	0xb3, 0x07, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66,
 	0x6f, 0x12, 0x0f, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
 	0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
 	0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61,
@@ -2501,7 +2509,9 @@ var file_bxsubscribe_proto_rawDesc = []byte{
 	0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b,
 	0x32, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x57,
 	0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x77, 0x69, 0x6e, 0x6e, 0x65,
-	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x82, 0x01, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72,
+	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0x43,
+	0x6f, 0x64, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x70, 0x69, 0x64, 0x65,
+	0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72,
 	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09,
 	0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,