Browse Source

merge:合并

fuwencai 2 năm trước cách đây
mục cha
commit
b817d6aaf7
29 tập tin đã thay đổi với 399 bổ sung327 xóa
  1. 1 1
      jyBXBase/rpc/bxbase.proto
  2. 2 2
      jyBXBase/rpc/model/newestBidding.go
  3. 19 19
      jyBXBase/rpc/type/bxbase/bxbase.pb.go
  4. 3 3
      jyBXCore/rpc/entity/search.go
  5. 1 1
      jyBXCore/rpc/internal/logic/participatecontentlogic.go
  6. 1 1
      jyBXCore/rpc/internal/logic/participateinfologic.go
  7. 1 1
      jyBXCore/rpc/internal/logic/participatepersonslogic.go
  8. 1 1
      jyBXCore/rpc/internal/logic/participaterecordslogic.go
  9. 1 1
      jyBXCore/rpc/internal/logic/participateshowlogic.go
  10. 1 1
      jyBXCore/rpc/internal/logic/updatebidstatuslogic.go
  11. 3 3
      jyBXCore/rpc/service/participate.go
  12. 1 1
      jyBXCore/rpc/util/participate.go
  13. 6 5
      jyBXCore/rpc/util/search.go
  14. 4 2
      jyBXSubscribe/api/bxsubscribe.api
  15. 14 18
      jyBXSubscribe/api/internal/logic/byPushHistoryLogic.go
  16. 1 0
      jyBXSubscribe/api/internal/logic/getPushSetLogic.go
  17. 16 19
      jyBXSubscribe/api/internal/logic/subscribeListLogic.go
  18. 4 2
      jyBXSubscribe/api/internal/types/types.go
  19. 1 1
      jyBXSubscribe/go.mod
  20. 2 0
      jyBXSubscribe/rpc/bxsubscribe.proto
  21. 1 1
      jyBXSubscribe/rpc/bxsubscribe/bxsubscribe.go
  22. 1 0
      jyBXSubscribe/rpc/internal/logic/getpushsetlogic.go
  23. 1 1
      jyBXSubscribe/rpc/internal/logic/getsublistlogic.go
  24. 3 1
      jyBXSubscribe/rpc/internal/logic/setreadlogic.go
  25. 1 1
      jyBXSubscribe/rpc/internal/server/bxsubscribeserver.go
  26. 86 47
      jyBXSubscribe/rpc/model/push.go
  27. 7 1
      jyBXSubscribe/rpc/model/service/pushSet.go
  28. 215 192
      jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe.pb.go
  29. 1 1
      jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe_grpc.pb.go

+ 1 - 1
jyBXBase/rpc/bxbase.proto

@@ -209,7 +209,7 @@ message newestList {
   int64 bidamount = 3;//中标金额
   int64 budget = 4;//预算
   string buyerclass = 5;//采购单位类型
-  string matchkeys = 6;//订阅匹配信息
+  repeated string matchkeys = 6;//订阅匹配信息
   int64 publishTime = 7;//发布时间
   string industry = 8;//行业
   string  title = 9;//标题

+ 2 - 2
jyBXBase/rpc/model/newestBidding.go

@@ -55,7 +55,7 @@ func GetNewestInfo(userId, userType string, newUserId int64) *NewestInfo {
 	return nt
 }
 func (n *NewestInfo) GetPushHistory() (res []*bxbase.NewestList) {
-	findSQL := "select a.infoid,a.matchkeys,a.attachment_count,a.budget,a.bidamount from %s  a  where a.userid=%d and a.date>=%d  order by a.id desc limit 50"
+	findSQL := "select a.infoid,REPLACE(a.matchkeys,'+',' ') as matchkeys,a.attachment_count,a.budget,a.bidamount from %s  a  where a.userid=%d and a.date>=%d  order by a.id desc limit 50"
 	findSQL = fmt.Sprintf(findSQL, n.TableName, n.NewUserId, time.Now().AddDate(0, 0, -7).Unix())
 	logx.Info(n.TableName, "-------", n.NewUserId, ",findSQL:", findSQL)
 	list := n.MysqlDb.SelectBySql(findSQL)
@@ -73,7 +73,7 @@ func (n *NewestInfo) GetPushHistory() (res []*bxbase.NewestList) {
 			//
 			infos[infoId] = &bxbase.NewestList{
 				Id:         ME.EncodeArticleId2ByCheck(MC.ObjToString(v["infoid"])),
-				Matchkeys:  MC.ObjToString(v["matchkeys"]),
+				Matchkeys:  strings.Split(MC.ObjToString(v["matchkeys"])," "),
 				Budget:     MC.Int64All(v["budget"]),
 				Bidamount:  MC.Int64All(v["bidamount"]),
 				FileExists: MC.Int64All(v["attachment_count"]) > 0,

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

@@ -2083,22 +2083,22 @@ type NewestList struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Area        string `protobuf:"bytes,1,opt,name=area,proto3" json:"area,omitempty"`                //省份
-	City        string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"`                //城市
-	Bidamount   int64  `protobuf:"varint,3,opt,name=bidamount,proto3" json:"bidamount,omitempty"`     //中标金额
-	Budget      int64  `protobuf:"varint,4,opt,name=budget,proto3" json:"budget,omitempty"`           //预算
-	Buyerclass  string `protobuf:"bytes,5,opt,name=buyerclass,proto3" json:"buyerclass,omitempty"`    //采购单位类型
-	Matchkeys   string `protobuf:"bytes,6,opt,name=matchkeys,proto3" json:"matchkeys,omitempty"`      //订阅匹配信息
-	PublishTime int64  `protobuf:"varint,7,opt,name=publishTime,proto3" json:"publishTime,omitempty"` //发布时间
-	Industry    string `protobuf:"bytes,8,opt,name=industry,proto3" json:"industry,omitempty"`        //行业
-	Title       string `protobuf:"bytes,9,opt,name=title,proto3" json:"title,omitempty"`              //标题
-	Subtype     string `protobuf:"bytes,10,opt,name=subtype,proto3" json:"subtype,omitempty"`         //
-	AppId       string `protobuf:"bytes,11,opt,name=appId,proto3" json:"appId,omitempty"`
-	Id          string `protobuf:"bytes,12,opt,name=id,proto3" json:"id,omitempty"`                  //招标信息id
-	FileExists  bool   `protobuf:"varint,13,opt,name=fileExists,proto3" json:"fileExists,omitempty"` //是否有附件
-	IsCol       bool   `protobuf:"varint,14,opt,name=isCol,proto3" json:"isCol,omitempty"`           //是否收藏
-	Site        string `protobuf:"bytes,15,opt,name=site,proto3" json:"site,omitempty"`              //网站名称
-	SpiderCode  string `protobuf:"bytes,16,opt,name=spiderCode,proto3" json:"spiderCode,omitempty"`  //网站代码
+	Area        string   `protobuf:"bytes,1,opt,name=area,proto3" json:"area,omitempty"`                //省份
+	City        string   `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"`                //城市
+	Bidamount   int64    `protobuf:"varint,3,opt,name=bidamount,proto3" json:"bidamount,omitempty"`     //中标金额
+	Budget      int64    `protobuf:"varint,4,opt,name=budget,proto3" json:"budget,omitempty"`           //预算
+	Buyerclass  string   `protobuf:"bytes,5,opt,name=buyerclass,proto3" json:"buyerclass,omitempty"`    //采购单位类型
+	Matchkeys   []string `protobuf:"bytes,6,rep,name=matchkeys,proto3" json:"matchkeys,omitempty"`      //订阅匹配信息
+	PublishTime int64    `protobuf:"varint,7,opt,name=publishTime,proto3" json:"publishTime,omitempty"` //发布时间
+	Industry    string   `protobuf:"bytes,8,opt,name=industry,proto3" json:"industry,omitempty"`        //行业
+	Title       string   `protobuf:"bytes,9,opt,name=title,proto3" json:"title,omitempty"`              //标题
+	Subtype     string   `protobuf:"bytes,10,opt,name=subtype,proto3" json:"subtype,omitempty"`         //
+	AppId       string   `protobuf:"bytes,11,opt,name=appId,proto3" json:"appId,omitempty"`
+	Id          string   `protobuf:"bytes,12,opt,name=id,proto3" json:"id,omitempty"`                  //招标信息id
+	FileExists  bool     `protobuf:"varint,13,opt,name=fileExists,proto3" json:"fileExists,omitempty"` //是否有附件
+	IsCol       bool     `protobuf:"varint,14,opt,name=isCol,proto3" json:"isCol,omitempty"`           //是否收藏
+	Site        string   `protobuf:"bytes,15,opt,name=site,proto3" json:"site,omitempty"`              //网站名称
+	SpiderCode  string   `protobuf:"bytes,16,opt,name=spiderCode,proto3" json:"spiderCode,omitempty"`  //网站代码
 }
 
 func (x *NewestList) Reset() {
@@ -2168,11 +2168,11 @@ func (x *NewestList) GetBuyerclass() string {
 	return ""
 }
 
-func (x *NewestList) GetMatchkeys() string {
+func (x *NewestList) GetMatchkeys() []string {
 	if x != nil {
 		return x.Matchkeys
 	}
-	return ""
+	return nil
 }
 
 func (x *NewestList) GetPublishTime() int64 {
@@ -3141,7 +3141,7 @@ var file_bxbase_proto_rawDesc = []byte{
 	0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x79, 0x65, 0x72, 0x63,
 	0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x65,
 	0x72, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6b,
-	0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68,
+	0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68,
 	0x6b, 0x65, 0x79, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54,
 	0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69,
 	0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74,

+ 3 - 3
jyBXCore/rpc/entity/search.go

@@ -5,11 +5,11 @@ import (
 	"app.yhyue.com/moapp/jybase/redis"
 	"encoding/json"
 	"fmt"
-	"log"
 	IC "jyBXCore/rpc/init"
 	"jyBXCore/rpc/service"
 	"jyBXCore/rpc/type/bxcore"
 	"jyBXCore/rpc/util"
+	"log"
 	"strconv"
 	"strings"
 	"time"
@@ -37,7 +37,7 @@ func (kws *KeyWordsSearch) IsEmptySearch(in *bxcore.SearchReq) bool {
 }
 
 // GetBidSearchListByCache   查询缓存数据
-//未登录用户默认搜索和关键词搜索改成500条和免费用户保持一致--需求调整P260来自产品经理杨蘭20220116
+// 未登录用户默认搜索和关键词搜索改成500条和免费用户保持一致--需求调整P260来自产品经理杨蘭20220116
 func (kws *KeyWordsSearch) GetBidSearchListByCache(in *bxcore.SearchReq) (list []*bxcore.SearchList, count, total int64) {
 	//缓存数据 最大量是5000条  100页数据
 	l, c := func(in *bxcore.SearchReq) (list []*bxcore.SearchList, count int64) {
@@ -162,7 +162,7 @@ func (kws *KeyWordsSearch) SearchParamsHandle(in *bxcore.SearchReq) []string {
 	positionType, _ := strconv.ParseInt(in.PositionType, 10, 64)
 	positionId, _ := strconv.ParseInt(in.PositionId, 10, 64)
 	//判断用户身份
-	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, baseUserId, accountId, in.EntId, positionType, positionId)
+	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.MgoUserId, baseUserId, accountId, in.EntId, positionType, positionId)
 	//是否是付费用户
 	in.IsPay = !userInfo.Free.IsFree
 	//默认搜索范围

+ 1 - 1
jyBXCore/rpc/internal/logic/participatecontentlogic.go

@@ -31,7 +31,7 @@ func NewParticipateContentLogic(ctx context.Context, svcCtx *svc.ServiceContext)
 func (l *ParticipateContentLogic) ParticipateContent(in *bxcore.ParticipateContentReq) (*bxcore.ParticipateContentRes, error) {
 	// 验证权限
 	result := &bxcore.ParticipateContentRes{}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		result.ErrMsg = "暂无权限"
 		return result, nil

+ 1 - 1
jyBXCore/rpc/internal/logic/participateinfologic.go

@@ -36,7 +36,7 @@ func (l *ParticipateInfoLogic) ParticipateInfo(in *bxcore.ParticipateInfoReq) (*
 	result := bxcore.ParticipateInfoRes{
 		Data: format,
 	}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		result.ErrMsg = "暂无权限"
 		return &result, nil

+ 1 - 1
jyBXCore/rpc/internal/logic/participatepersonslogic.go

@@ -27,7 +27,7 @@ func NewParticipatePersonsLogic(ctx context.Context, svcCtx *svc.ServiceContext)
 
 // 当前部门/企业下参标人员信息
 func (l *ParticipatePersonsLogic) ParticipatePersons(in *bxcore.ParticipatePersonsReq) (*bxcore.ParticipatePersonsRes, error) {
-	b, _ := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, _ := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		return &bxcore.ParticipatePersonsRes{
 			ErrCode: -1,

+ 1 - 1
jyBXCore/rpc/internal/logic/participaterecordslogic.go

@@ -30,7 +30,7 @@ func NewParticipateRecordsLogic(ctx context.Context, svcCtx *svc.ServiceContext)
 func (l *ParticipateRecordsLogic) ParticipateRecords(in *bxcore.ParticipateRecordsReq) (*bxcore.ParticipateRecordsRes, error) {
 	// 验证权限
 	result := &bxcore.ParticipateRecordsRes{}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		result.ErrMsg = "没有权限"
 		return result, nil

+ 1 - 1
jyBXCore/rpc/internal/logic/participateshowlogic.go

@@ -30,7 +30,7 @@ func (l *ParticipateShowLogic) ParticipateShow(in *bxcore.ParticipateShowReq) (*
 	result := bxcore.ParticipateShowRes{
 		Data: []*bxcore.ShowInfo{},
 	}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		result.ErrMsg = "没有权限"
 		return &result, nil

+ 1 - 1
jyBXCore/rpc/internal/logic/updatebidstatuslogic.go

@@ -37,7 +37,7 @@ func (l *UpdateBidStatusLogic) UpdateBidStatus(in *bxcore.UpdateBidStatusReq) (*
 		result.ErrMsg = msg
 		return result, nil
 	}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	// 不是超级订阅 也不是大会员
 	if !b {
 		result.ErrMsg = "没有权限"

+ 3 - 3
jyBXCore/rpc/service/participate.go

@@ -18,7 +18,7 @@ import (
 func ParticipateList(in *bxcore.ParticipateListReq) (*bxcore.ParticipateListRes, error) {
 	defer MC.Catch()
 	res := &bxcore.ParticipateListRes{Data: &bxcore.ParticipateData{}}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b || (in.Identity == "ent" && entRoleId == 0) {
 		res.ErrCode = 0
 		res.ErrMsg = "没有权限"
@@ -70,7 +70,7 @@ func ParticipateList(in *bxcore.ParticipateListReq) (*bxcore.ParticipateListRes,
 // 参标动作:参标、终止参标、划转:in:参标;out:终止参标;transfer:划转
 func ParticipateDo(in *bxcore.ParticipateActionReq) error {
 	defer MC.Catch()
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		return fmt.Errorf("暂无权限")
 	}
@@ -157,7 +157,7 @@ func GetParticipateSetInfo(in *bxcore.ParticipateSetUpInfoReq) (*bxcore.Particip
 		BidType:    nil,
 		RemindRule: nil,
 	}}
-	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
+	b, entRoleId := util.IsAllowedParticipate(in.AppId, in.MgoUserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
 	if !b {
 		res.ErrMsg = "没有权限"
 		res.Data = nil

+ 1 - 1
jyBXCore/rpc/util/participate.go

@@ -31,7 +31,7 @@ func GetParticipateLock(str string) *sync.Mutex {
 	return PLock.UserLock[str]
 }
 
-// 参标权限判断
+// 参标权限判断  权益请求check userId  应传 mongo userId
 func IsAllowedParticipate(appId, userId string, newUserId, accountId, entAccountId, entId, entUserId, positionId, positionType int64) (b bool, role int64) {
 	powerCheck := IC.Middleground.PowerCheckCenter.Check(appId, userId, newUserId, accountId, entId, positionType, positionId)
 	//不是超级订阅 也不是大会员

+ 6 - 5
jyBXCore/rpc/util/search.go

@@ -10,10 +10,11 @@ import (
 	"strings"
 	"time"
 
+	"log"
+
 	MC "app.yhyue.com/moapp/jybase/common"
 	ME "app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/es"
-	"log"
 )
 
 var (
@@ -309,11 +310,11 @@ func GetQueryItems(selectType string, limitOldTime, registerData int64, isPay bo
 			if t == "content" {
 				items = append(items, "detail")
 			} else if t == "buyer" {
-				items = append(items, "mbuyer")
+				items = append(items, "buyer.mbuyer")
 			} else if t == "winner" {
-				items = append(items, "mwinner")
+				items = append(items, "s_winner.mwinner")
 			} else if t == "agency" {
-				items = append(items, "magency")
+				items = append(items, "agency.magency")
 			} else if t == "title" {
 				items = append(items, "title")
 			} else if t == "ppa" {
@@ -328,7 +329,7 @@ func GetQueryItems(selectType string, limitOldTime, registerData int64, isPay bo
 	isOldUser := registerData != 0 && registerData < limitOldTime
 	for _, t := range strings.Split(selectType, ",") {
 		if t == "winner" && isOldUser {
-			items = append(items, "mwinner")
+			items = append(items, "s_winner.mwinner")
 		} else if t == "title" {
 			items = append(items, "title")
 		} else if t == "content" {

+ 4 - 2
jyBXSubscribe/api/bxsubscribe.api

@@ -38,6 +38,7 @@ type (
 		Item           map[string]interface{} `json:"item,optional"`
 		AccountId      string                 `header:"accountId,optional"`
 		PositionId     string                 `header:"positionId,optional"`
+		MgoUserId      string                 `header:"mgoUserId,optional"` //原userId
 	}
 	//
 	someInfoReq {
@@ -133,8 +134,9 @@ type (
 		UserId       string `header:"mgoUserId,optional"`
 		BaseUserId   int64  `header:"newUserId,optional"`
 		ServiceType  string `json:"serviceType,optional"`
-		PositionId   int64  `header:"positionId,optiona"`
-		AccountId    int64  `header:"accountId,optiona"`
+		PositionId   int64  `header:"positionId,optional"`
+		AccountId    int64  `header:"accountId,optional"`
+		MgoUserId    string `header:"mgoUserId,optional"` //原userId
 	}
 	SetUserReq {
 		AppId        string `header:"appId"`

+ 14 - 18
jyBXSubscribe/api/internal/logic/byPushHistoryLogic.go

@@ -35,26 +35,22 @@ func (l *ByPushHistoryLogic) ByPushHistory(req *types.SubscribeReq) (resp *types
 	//关键词
 	matchkeysArr := []string{}
 	matchkeys := ""
-	if req.IsEnt {
-		for k, v := range req.Item {
-			keyArr := gconv.Strings(v)
-			if len(keyArr) == 0 {
-				matchitemsArr = append(matchitemsArr, common.InterfaceToStr(k))
-			} else {
-				for _, s := range keyArr {
-					matchkeysArr = append(matchkeysArr, s)
-				}
+	for k, v := range req.Item {
+		keyArr := gconv.Strings(v)
+		if len(keyArr) == 0 {
+			matchitemsArr = append(matchitemsArr, common.InterfaceToStr(k))
+		} else {
+			for _, s := range keyArr {
+				matchkeysArr = append(matchkeysArr, s)
 			}
 		}
-		if len(matchitemsArr) != 0 {
-			matchitems = strings.Join(matchitemsArr, ",")
-		}
-		if len(matchkeysArr) != 0 {
-			matchkeys = strings.Join(matchkeysArr, ",")
-			matchkeys = strings.ReplaceAll(matchkeys, " ", ",")
-		}
-	} else {
-		matchkeys = req.KeyWords
+	}
+	if len(matchitemsArr) != 0 {
+		matchitems = strings.Join(matchitemsArr, ",")
+	}
+	if len(matchkeysArr) != 0 {
+		matchkeys = strings.Join(matchkeysArr, ",")
+		matchkeys = strings.ReplaceAll(matchkeys, " ", ",")
 	}
 	res, err := l.svcCtx.Suscribe.ByPushHistory(l.ctx, &bxsubscribe.SubscribeInfosReq{
 		PageNum:        req.PageNum,

+ 1 - 0
jyBXSubscribe/api/internal/logic/getPushSetLogic.go

@@ -34,6 +34,7 @@ func (l *GetPushSetLogic) GetPushSet(req *types.GetUserReq) (*types.CommonResp,
 		PositionId:   req.PositionId,
 		AccountId:    req.AccountId,
 		BaseUserId:   req.BaseUserId,
+		MgoUserId:    req.MgoUserId,
 	})
 	if err != nil {
 		return &types.CommonResp{

+ 16 - 19
jyBXSubscribe/api/internal/logic/subscribeListLogic.go

@@ -36,27 +36,23 @@ func (l *SubscribeListLogic) SubscribeList(req *types.SubscribeReq) (resp *types
 	//关键词
 	matchkeysArr := []string{}
 	matchkeys := ""
-	if req.IsEnt {
-		for k, v := range req.Item {
-			//类型换换
-			keyArr := gconv.Strings(v)
-			if len(keyArr) == 0 {
-				matchitemsArr = append(matchitemsArr, common.InterfaceToStr(k))
-			} else {
-				for _, s := range keyArr {
-					matchkeysArr = append(matchkeysArr, s)
-				}
+	for k, v := range req.Item {
+		//类型换换
+		keyArr := gconv.Strings(v)
+		if len(keyArr) == 0 {
+			matchitemsArr = append(matchitemsArr, common.InterfaceToStr(k))
+		} else {
+			for _, s := range keyArr {
+				matchkeysArr = append(matchkeysArr, s)
 			}
 		}
-		if len(matchitemsArr) != 0 {
-			matchitems = strings.Join(matchitemsArr, ",")
-		}
-		if len(matchkeysArr) != 0 {
-			matchkeys = strings.Join(matchkeysArr, ",")
-			matchkeys = strings.ReplaceAll(matchkeys, " ", ",")
-		}
-	} else {
-		matchkeys = req.KeyWords
+	}
+	if len(matchitemsArr) != 0 {
+		matchitems = strings.Join(matchitemsArr, ",")
+	}
+	if len(matchkeysArr) != 0 {
+		matchkeys = strings.Join(matchkeysArr, ",")
+		matchkeys = strings.ReplaceAll(matchkeys, " ", ",")
 	}
 	res, err := l.svcCtx.Suscribe.GetSubList(l.ctx, &bxsubscribe.SubscribeInfosReq{
 		PageNum:        req.PageNum,
@@ -85,6 +81,7 @@ func (l *SubscribeListLogic) SubscribeList(req *types.SubscribeReq) (resp *types
 		Item:           matchitems,
 		AccountId:      req.AccountId,
 		PositionId:     req.PositionId,
+		MgoUserId:      req.MgoUserId,
 	})
 	if err != nil {
 		return &types.CommonResp{

+ 4 - 2
jyBXSubscribe/api/internal/types/types.go

@@ -30,6 +30,7 @@ type SubscribeReq struct {
 	Item           map[string]interface{} `json:"item,optional"`
 	AccountId      string                 `header:"accountId,optional"`
 	PositionId     string                 `header:"positionId,optional"`
+	MgoUserId      string                 `header:"mgoUserId,optional"` //原userId
 }
 
 type SomeInfoReq struct {
@@ -131,8 +132,9 @@ type GetUserReq struct {
 	UserId       string `header:"mgoUserId,optional"`
 	BaseUserId   int64  `header:"newUserId,optional"`
 	ServiceType  string `json:"serviceType,optional"`
-	PositionId   int64  `header:"positionId,optiona"`
-	AccountId    int64  `header:"accountId,optiona"`
+	PositionId   int64  `header:"positionId,optional"`
+	AccountId    int64  `header:"accountId,optional"`
+	MgoUserId    string `header:"mgoUserId,optional"` //原userId
 }
 
 type SetUserReq struct {

+ 1 - 1
jyBXSubscribe/go.mod

@@ -1,6 +1,6 @@
 module jyBXSubscribe
 
-go 1.18
+go 1.19
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230504094413-7eab0c56bca0

+ 2 - 0
jyBXSubscribe/rpc/bxsubscribe.proto

@@ -319,6 +319,7 @@ message GetPushSetReq{
   int64   positionId = 6;
   int64   accountId = 7;
   int64   baseUserId = 8;
+  string  mgoUserId = 9;  //原userId
 }
 
 message GetPushSetResp{
@@ -339,6 +340,7 @@ message PushSet{
   int64 isWxShow = 6;
   int64 interested = 7;
   int64 isMailShow = 8;
+  int64 i_nomsgtip=9;
 }
 message SetPushSetReq{
   string appId = 1;

+ 1 - 1
jyBXSubscribe/rpc/bxsubscribe/bxsubscribe.go

@@ -1,4 +1,4 @@
-// Code generated by goctl. DO NOT EDIT.
+// Code generated by goctl. DO NOT EDIT!
 // Source: bxsubscribe.proto
 
 package bxsubscribe

+ 1 - 0
jyBXSubscribe/rpc/internal/logic/getpushsetlogic.go

@@ -34,6 +34,7 @@ func (l *GetPushSetLogic) GetPushSet(in *bxsubscribe.GetPushSetReq) (*bxsubscrib
 		AccountId:    in.AccountId,
 		BaseUserId:   in.BaseUserId,
 		PositionId:   in.PositionId,
+		MgoUserId:    in.MgoUserId,
 	}
 	TimeData := map[int64]*bxsubscribe.TimeJson{}
 	for k, v := range util.TimeMap {

+ 1 - 1
jyBXSubscribe/rpc/internal/logic/getsublistlogic.go

@@ -45,7 +45,7 @@ func (l *GetSubListLogic) GetSubList(in *bxsubscribe.SubscribeInfosReq) (*bxsubs
 	positionId, _ := strconv.ParseInt(in.PositionId, 10, 64)
 	entId, _ := strconv.ParseInt(in.EntId, 10, 64)
 	//判断用户身份
-	userInfo := IC.Middleground.PowerCheckCenter.Check("10000", in.UserId, in.NewUserId, accountId, entId, in.PositionType, positionId)
+	userInfo := IC.Middleground.PowerCheckCenter.Check("10000", in.MgoUserId, in.NewUserId, accountId, entId, in.PositionType, positionId)
 	//是否是付费用户
 	isPay := !userInfo.Free.IsFree
 	isPayUser := false

+ 3 - 1
jyBXSubscribe/rpc/internal/logic/setreadlogic.go

@@ -35,6 +35,8 @@ func (l *SetReadLogic) SetRead(in *bxsubscribe.SetReadReq) (*bxsubscribe.StatusR
 			in.UserType = model.EntnicheFlag
 		}
 	}
-	model.NewSubscribePush(in.UserType).SetRead(in.NewUserId, in.Vsid, in.UserId, in.EntUserId, in.EntId, in.IsEnt, userType)
+	if !in.IsEnt {
+		model.NewSubscribePush(in.UserType).SetRead(in.NewUserId, in.Vsid, in.UserId, in.EntUserId, in.EntId, in.IsEnt, userType)
+	}
 	return resp, nil
 }

+ 1 - 1
jyBXSubscribe/rpc/internal/server/bxsubscribeserver.go

@@ -1,4 +1,4 @@
-// Code generated by goctl. DO NOT EDIT.
+// Code generated by goctl. DO NOT EDIT!
 // Source: bxsubscribe.proto
 
 package server

+ 86 - 47
jyBXSubscribe/rpc/model/push.go

@@ -394,11 +394,11 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 	var (
 		countSql, findSql string
 	)
-	querys = append(querys, " and   1=1 ")
+	querys = append(querys, " ")
 	if spqp.SelectInfoIds != nil && len(spqp.SelectInfoIds) > 0 {
 		countSql = fmt.Sprintf("select count(1) as count from %s a  where %s", aboutDbMsg[s.ModuleFlag].MysqlTable, fmt.Sprintf("a.id in ('%s')", strings.Join(spqp.SelectInfoIds, "','")))
 		logx.Info("countSql", countSql)
-		findSql = fmt.Sprintf("select a.id,a.date,a.infoid,a.isvisit,a.matchkeys,a.type,a.attachment_count from %s a  where %s order by a.date desc,a.id desc", aboutDbMsg[s.ModuleFlag].MysqlTable, fmt.Sprintf("a.id in ('%s')", strings.Join(spqp.SelectInfoIds, "','")))
+		findSql = fmt.Sprintf("select a.id,a.date,a.infoid,a.isvisit,REPLACE(a.matchkeys,'+',' ') as matchkeys,a.type,a.attachment_count from %s a  where %s order by a.date desc,a.id desc", aboutDbMsg[s.ModuleFlag].MysqlTable, fmt.Sprintf("a.id in ('%s')", strings.Join(spqp.SelectInfoIds, "','")))
 		//查询总数
 		count = spqp.BaseServiceMysql.CountBySql(countSql)
 	} else {
@@ -499,18 +499,26 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 		if spqp.IsEnt {
 			if spqp.Key != "" {
 				for _, v := range strings.Split(spqp.Key, ",") {
-					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(replace(a.matchkeys,'+',','),' ',','))", v))
+					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(a.matchkeys,' ',','))", v))
 				}
 			}
 			if spqp.Item != "" {
 				for _, v := range strings.Split(spqp.Item, ",") {
-					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(replace(a.matchitems,'+',','),' ',','))", v))
+					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(a.matchitems,' ',','))", v))
 				}
 			}
 		} else {
 			if spqp.Key != "" {
 				for _, v := range strings.Split(spqp.Key, ",") {
-					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(replace(a.matchkeys,'+',','),' ',','))", v))
+					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(a.matchkeys,' ',','))", v))
+				}
+			}
+
+			if spqp.Item != "" {
+				//通过分类名搜索
+				keyArr := s.ItemToKey(spqp)
+				for _, v := range strings.Split(keyArr, ",") {
+					find_in_set = append(find_in_set, fmt.Sprintf("find_in_set('%s',replace(a.matchkeys,' ',','))", v))
 				}
 			}
 		}
@@ -554,7 +562,7 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 		}
 		if spqp.IsEnt {
 			var staffs []string
-			querys = append(querys, fmt.Sprintf("   a.entid='%s' ", spqp.EntId))
+			userStr += fmt.Sprintf(" and   a.entid='%s' ", spqp.EntId)
 			//判断是企业管理员还是部门管理员 部门管理员获取所有子部门
 			userEnt := EntInfo(common.IntAll(spqp.EntId), common.IntAll(spqp.EntUserId))
 			if !(userEnt.Role_admin_system || userEnt.Role_admin_department) {
@@ -589,7 +597,7 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 				//查询数量(需要去重)
 				countSql = fmt.Sprintf("select count(1) from %s a  where %s  %s ", aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "))
 				//列表查询
-				findSql = fmt.Sprintf("select a.id,a.infoid,a.matchkeys,a.attachment_count, IF(a.source is NULL,1,a.source) as  source  from %s a  where  %s %s order by a.date desc,a.id desc",
+				findSql = fmt.Sprintf("select a.id,a.infoid,REPLACE(a.matchkeys,'+',' ') as matchkeys,a.attachment_count, IF(a.source is NULL,1,a.source) as  source  from %s a  where  %s %s order by a.date desc,a.id desc",
 					aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "))
 			} else {
 				//查询分配人员或是否已读
@@ -601,7 +609,7 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 				}
 				countSql = fmt.Sprintf("select count(1) from %s a  where %s %s %s ", aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "), staffQuery)
 				//列表查询
-				findSql = fmt.Sprintf("select a.id,a.infoid,a.matchkeys,a.attachment_count,IF(a.source is NULL,1,a.source) as  source from %s a  where %s %s  %s order by a.date desc,a.id desc ", aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "), staffQuery)
+				findSql = fmt.Sprintf("select a.id,a.infoid,REPLACE(a.matchkeys,'+',' ') as matchkeys,a.attachment_count,IF(a.source is NULL,1,a.source) as  source from %s a  where %s %s  %s order by a.date desc,a.id desc ", aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "), staffQuery)
 			}
 		} else {
 			// 是否已读
@@ -639,7 +647,7 @@ func (s *subscribePush) getDatasFromMysql(spqp *SubPushQueryParam, starttime, en
 			//查询数量
 			countSql = fmt.Sprintf("select count(1) as count from %s  a  where  %s   %s", aboutDbMsg[s.ModuleFlag].MysqlTable, userStr, strings.Join(querys, " and "))
 			//列表查询语句
-			findSql = "select a.id,a.date,a.infoid,a.isvisit,a.matchkeys,a.type,a.attachment_count"
+			findSql = "select a.id,a.date,a.infoid,a.isvisit,REPLACE(a.matchkeys,'+',' ') as matchkeys,a.type,a.attachment_count"
 			if s.ModuleFlag == EntnicheFlag {
 				findSql += ", IF(a.source is NULL,1,a.source) as  source "
 			}
@@ -932,49 +940,31 @@ func (s *subscribePush) SetRead(newUserId, id int64, userId, entUserId, entId st
 	if newUserId == 0 {
 		return nil
 	}
-	if isEnt {
-		if s.ModuleFlag == EntnicheFlag {
-			IC.BaseServiceMysql.UpdateOrDeleteBySql(fmt.Sprintf("update %s set isvisit=1 ,visittime=now() where entid=? and id=?", aboutDbMsg[s.ModuleFlag].MysqlTable), entId, id)
-
-		} else {
-			IC.BaseServiceMysql.UpdateOrDeleteBySql(fmt.Sprintf("update %s set isvisit=1 where entid=? and id=?", aboutDbMsg[s.ModuleFlag].MysqlTable), entId, id)
-
-		}
-	} else {
-		if s.ModuleFlag == EntnicheFlag {
-			//商机管理
-			IC.BaseServiceMysql.UpdateOrDeleteBySql(fmt.Sprintf("update %s set isvisit=1,visittime=now() where userid=? and id=?", aboutDbMsg[s.ModuleFlag].MysqlTable), entUserId, id)
-		} else {
-			//其他
-			IC.BaseServiceMysql.UpdateOrDeleteBySql(fmt.Sprintf("update %s set isvisit=1 where userid=? and id=?", aboutDbMsg[s.ModuleFlag].MysqlTable), newUserId, id)
-		}
+	IC.BaseServiceMysql.UpdateOrDeleteBySql(fmt.Sprintf("update %s set isvisit=1,visittime=now() where userid=? and id=?", aboutDbMsg[s.ModuleFlag].MysqlTable), common.If(s.ModuleFlag == EntnicheFlag, entUserId, newUserId), id)
+	if s.ModuleFlag == EntnicheFlag {
+		userId = entUserId
 	}
-	if !isEnt {
-		if s.ModuleFlag == EntnicheFlag {
-			userId = entUserId
-		}
-		todaySubPush, err := s.GetTodayCache(userId, userType)
-		//当天数据处理
-		if err == nil && todaySubPush != nil {
-			for _, v := range todaySubPush.Datas {
-				if v.CaIndex == id {
-					v.CaIsvisit = 1
-					break
-				}
+	todaySubPush, err := s.GetTodayCache(userId, userType)
+	//当天数据处理
+	if err == nil && todaySubPush != nil {
+		for _, v := range todaySubPush.Datas {
+			if v.CaIndex == id {
+				v.CaIsvisit = 1
+				break
 			}
-			s.PutTodayCache(userId, userType, todaySubPush)
 		}
-		//全部数据处理
-		allSubPush, err := s.GetAllCache(userId, userType)
-		if err == nil && allSubPush != nil {
-			for _, v := range allSubPush.Datas {
-				if v.CaIndex == id {
-					v.CaIsvisit = 1
-					break
-				}
+		s.PutTodayCache(userId, userType, todaySubPush)
+	}
+	//全部数据处理
+	allSubPush, err := s.GetAllCache(userId, userType)
+	if err == nil && allSubPush != nil {
+		for _, v := range allSubPush.Datas {
+			if v.CaIndex == id {
+				v.CaIsvisit = 1
+				break
 			}
-			s.PutAllCache(userId, userType, allSubPush)
 		}
+		s.PutAllCache(userId, userType, allSubPush)
 	}
 	return nil
 }
@@ -1832,3 +1822,52 @@ func MergeArray(dest []interface{}, src []interface{}) (result []interface{}) {
 	}
 	return
 }
+func (s *subscribePush) ItemToKey(in *SubPushQueryParam) string {
+	moduleFlag := s.ModuleFlag
+	s.ModuleFlag = in.UserType
+	spqp := KeyParam{
+		UserId:       in.UserId,
+		EntUserId:    in.EntUserId,
+		DeptId:       in.DeptId,
+		NewUserId:    in.NewUserId,
+		IsEnt:        in.IsEnt,
+		EntId:        in.EntId,
+		PositionType: in.PositionType,
+	}
+	//所有关键词获取
+	keyItemsArr := s.Keys(&spqp)
+	s.ModuleFlag = moduleFlag
+	keyArr := []string{}
+	if len(keyItemsArr) > 0 {
+		for _, k1 := range keyItemsArr {
+			for _, k2 := range strings.Split(in.Item, ",") {
+				if k1.SItem == k2 {
+					if len(k1.AKey) > 0 {
+						for _, k3 := range k1.AKey {
+							key := ""
+							if len(k3.Key) > 0 {
+								key = strings.Join(k3.Key, " ")
+							}
+							if len(k3.Appendkey) > 0 {
+								if key != "" {
+									key += " " + strings.Join(k3.Appendkey, " ")
+								} else {
+									key = strings.Join(k3.Appendkey, " ")
+								}
+							}
+							if k3.Matchway == 1 {
+								//模糊处理
+								key = strings.ReplaceAll(key, " ", ",")
+							} else {
+								//精准处理
+								key = strings.ReplaceAll(key, " ", "+")
+							}
+							keyArr = append(keyArr, key)
+						}
+					}
+				}
+			}
+		}
+	}
+	return strings.Join(keyArr, ",")
+}

+ 7 - 1
jyBXSubscribe/rpc/model/service/pushSet.go

@@ -18,6 +18,7 @@ type PushSetService struct {
 	BaseUserId   int64
 	AccountId    int64
 	PositionId   int64
+	MgoUserId    string
 }
 
 func (this *PushSetService) Update(item, setType, pushType string, ratemode, pushValue, interested int64, times []string) bool {
@@ -81,7 +82,7 @@ func (this *PushSetService) Find() map[string]*bxsubscribe.PushSet {
 	}
 	pushSet := map[string]*bxsubscribe.PushSet{}
 	//用户权益获取
-	powerData := IC.Middleground.PowerCheckCenter.Check("10000", this.UserId, this.BaseUserId, this.AccountId, this.EntId, this.PositionType, this.PositionId)
+	powerData := IC.Middleground.PowerCheckCenter.Check("10000", this.MgoUserId, this.BaseUserId, this.AccountId, this.EntId, this.PositionType, this.PositionId)
 	o_pushset := map[string]interface{}{}
 	if pushSetMap != nil && len(*pushSetMap) > 0 {
 		o_pushset, _ = (*pushSetMap)["o_pushset"].(map[string]interface{})
@@ -99,6 +100,7 @@ func (this *PushSetService) Find() map[string]*bxsubscribe.PushSet {
 	if fool {
 		pushSet["o_subset"] = o_subset
 	}
+
 	fool, o_week_report := pushSetMontage(o_pushset["o_week_report"], "o_week_report", powerData, ShowWx)
 	if fool {
 		pushSet["o_week_report"] = o_week_report
@@ -123,6 +125,7 @@ func (this *PushSetService) Find() map[string]*bxsubscribe.PushSet {
 	if fool {
 		pushSet["o_follow_ent"] = o_follow_ent
 	}
+
 	return pushSet
 }
 func pushSetMontage(in interface{}, name string, powerData *pb.CheckResp, ShowWx bool) (bool, *bxsubscribe.PushSet) {
@@ -149,6 +152,7 @@ func pushSetMontage(in interface{}, name string, powerData *pb.CheckResp, ShowWx
 				IMailpush: common.Int64All(common.If((*data)["i_mailpush"] == nil, 0, (*data)["i_mailpush"])),
 				IRatemode: 2,
 				IsWxShow:  1,
+				INomsgtip: common.Int64All(common.If((*data)["i_nomsgtip"] == nil, 1, (*data)["i_nomsgtip"])),
 			}
 		} else {
 			if data == nil || len(*data) == 0 {
@@ -159,6 +163,7 @@ func pushSetMontage(in interface{}, name string, powerData *pb.CheckResp, ShowWx
 					IMailpush: 0,
 					IRatemode: 2,
 					IsWxShow:  1,
+					INomsgtip: 1,
 				}
 			} else {
 				returnData = &bxsubscribe.PushSet{
@@ -168,6 +173,7 @@ func pushSetMontage(in interface{}, name string, powerData *pb.CheckResp, ShowWx
 					IMailpush: common.Int64All(common.If((*data)["i_mailpush"] == nil, 0, (*data)["i_mailpush"])),
 					IRatemode: common.Int64All(common.If((*data)["i_ratemode"] == nil, 2, (*data)["i_ratemode"])),
 					IsWxShow:  1,
+					INomsgtip: common.Int64All(common.If((*data)["i_nomsgtip"] == nil, 1, (*data)["i_nomsgtip"])),
 				}
 				if common.Int64All((*data)["i_ratemode"]) == 5 {
 					returnData.ATimes = []string{"14:00"}

+ 215 - 192
jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.28.1
-// 	protoc        v3.15.1
+// 	protoc-gen-go v1.28.0
+// 	protoc        v3.19.4
 // source: bxsubscribe.proto
 
 package bxsubscribe
@@ -713,6 +713,7 @@ func (x *SubscribeInfo) GetSpiderCode() string {
 	return ""
 }
 
+//
 type WinnerInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -784,6 +785,7 @@ func (x *WinnerInfo) GetWinnerId() string {
 	return ""
 }
 
+//
 type SomeInfoReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1061,6 +1063,7 @@ func (x *SomeInfo) GetUserId() string {
 	return ""
 }
 
+//
 type StatusResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1250,7 +1253,7 @@ func (x *UpdateSubScribeInfoReq) GetPositionType() int64 {
 	return 0
 }
 
-// 城市
+//城市
 type CityList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1298,7 +1301,7 @@ func (x *CityList) GetCity() []string {
 	return nil
 }
 
-// 分类
+//分类
 type Items struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1362,7 +1365,7 @@ func (x *Items) GetAKey() []*Keys {
 	return nil
 }
 
-// 关键词
+//关键词
 type Keys struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1505,7 +1508,7 @@ func (x *KeyItems) GetAKey() []*Key {
 	return nil
 }
 
-// 关键词
+//关键词
 type Key struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2115,7 +2118,7 @@ func (x *List) GetValue() []string {
 	return nil
 }
 
-// 订阅设置
+//订阅设置
 type Subscribe struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2298,7 +2301,7 @@ func (x *UserReq) GetEntId() int64 {
 	return 0
 }
 
-// 用户权益
+//用户权益
 type UserResq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3054,6 +3057,7 @@ type GetPushSetReq struct {
 	PositionId   int64  `protobuf:"varint,6,opt,name=positionId,proto3" json:"positionId,omitempty"`
 	AccountId    int64  `protobuf:"varint,7,opt,name=accountId,proto3" json:"accountId,omitempty"`
 	BaseUserId   int64  `protobuf:"varint,8,opt,name=baseUserId,proto3" json:"baseUserId,omitempty"`
+	MgoUserId    string `protobuf:"bytes,9,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"` //原userId
 }
 
 func (x *GetPushSetReq) Reset() {
@@ -3144,6 +3148,13 @@ func (x *GetPushSetReq) GetBaseUserId() int64 {
 	return 0
 }
 
+func (x *GetPushSetReq) GetMgoUserId() string {
+	if x != nil {
+		return x.MgoUserId
+	}
+	return ""
+}
+
 type GetPushSetResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3275,6 +3286,7 @@ type PushSet struct {
 	IsWxShow   int64    `protobuf:"varint,6,opt,name=isWxShow,proto3" json:"isWxShow,omitempty"`
 	Interested int64    `protobuf:"varint,7,opt,name=interested,proto3" json:"interested,omitempty"`
 	IsMailShow int64    `protobuf:"varint,8,opt,name=isMailShow,proto3" json:"isMailShow,omitempty"`
+	INomsgtip  int64    `protobuf:"varint,9,opt,name=i_nomsgtip,json=iNomsgtip,proto3" json:"i_nomsgtip,omitempty"`
 }
 
 func (x *PushSet) Reset() {
@@ -3365,6 +3377,13 @@ func (x *PushSet) GetIsMailShow() int64 {
 	return 0
 }
 
+func (x *PushSet) GetINomsgtip() int64 {
+	if x != nil {
+		return x.INomsgtip
+	}
+	return 0
+}
+
 type SetPushSetReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4294,7 +4313,7 @@ var file_bxsubscribe_proto_rawDesc = []byte{
 	0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
 	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54,
 	0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x04, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xf3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50,
+	0x09, 0x52, 0x04, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x91, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50,
 	0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70,
 	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12,
 	0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
@@ -4309,191 +4328,195 @@ var file_bxsubscribe_proto_rawDesc = []byte{
 	0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01,
 	0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a,
 	0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf1, 0x02,
-	0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25,
+	0x03, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a,
+	0x09, 0x6d, 0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x09, 0x6d, 0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf1, 0x02, 0x0a, 0x0e,
+	0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39,
+	0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62,
+	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75,
+	0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e,
+	0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x69, 0x6d,
+	0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62, 0x78,
+	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73,
+	0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74,
+	0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61,
+	0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x0a,
+	0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x4d, 0x0a, 0x09,
+	0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x78, 0x73,
+	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74,
+	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x52, 0x0a, 0x0d, 0x54,
+	0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b,
+	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+	0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65,
+	0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+	0x23, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61,
+	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x61, 0x54,
+	0x69, 0x6d, 0x65, 0x73, 0x22, 0x93, 0x02, 0x0a, 0x07, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74,
+	0x12, 0x17, 0x0a, 0x07, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+	0x09, 0x52, 0x06, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x5f, 0x77,
+	0x78, 0x70, 0x75, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, 0x57, 0x78,
+	0x70, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x5f, 0x61, 0x70, 0x70, 0x70, 0x75, 0x73,
+	0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x41, 0x70, 0x70, 0x70, 0x75, 0x73,
+	0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x70, 0x75, 0x73, 0x68, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x4d, 0x61, 0x69, 0x6c, 0x70, 0x75, 0x73, 0x68,
+	0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x52, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12,
+	0x1a, 0x0a, 0x08, 0x69, 0x73, 0x57, 0x78, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x08, 0x69, 0x73, 0x57, 0x78, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x0a, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69,
+	0x73, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x69,
+	0x5f, 0x6e, 0x6f, 0x6d, 0x73, 0x67, 0x74, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x09, 0x69, 0x4e, 0x6f, 0x6d, 0x73, 0x67, 0x74, 0x69, 0x70, 0x22, 0xcf, 0x02, 0x0a, 0x0d, 0x53,
+	0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05,
+	0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70,
+	0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55,
+	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22,
+	0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70,
+	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65,
+	0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+	0x70, 0x75, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+	0x70, 0x75, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x6d, 0x65,
+	0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1c,
+	0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
+	0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0xdd, 0x01, 0x0a,
+	0x11, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52,
+	0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49,
+	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c,
+	0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05,
+	0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65,
+	0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07,
+	0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75,
+	0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d,
+	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x95, 0x01, 0x0a,
+	0x16, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c,
+	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x5f, 0x63,
+	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f,
+	0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74,
+	0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
+	0x6c, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53,
+	0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x05, 0x69,
+	0x74, 0x65, 0x6d, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75,
+	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a,
+	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x53,
+	0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x65, 0x74,
+	0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
+	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
+	0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+	0x22, 0x5e, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x5f,
+	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43,
+	0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04,
+	0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
+	0x32, 0xbb, 0x09, 0x0a, 0x0b, 0x42, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
+	0x12, 0x4d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e,
+	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x75, 0x62,
+	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f,
+	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x75, 0x62,
+	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x53, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66,
+	0x6f, 0x12, 0x18, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e,
+	0x53, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x62, 0x78,
+	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x6f, 0x6d, 0x65, 0x49, 0x6e,
+	0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+	0x53, 0x75, 0x62, 0x53, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e,
+	0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61,
+	0x74, 0x65, 0x53, 0x75, 0x62, 0x53, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+	0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
+	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x0d, 0x42,
+	0x79, 0x50, 0x75, 0x73, 0x68, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x2e, 0x62,
+	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63,
+	0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62,
+	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x42, 0x79, 0x50, 0x75, 0x73,
+	0x68, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x07,
+	0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73,
+	0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71,
+	0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x47, 0x65, 0x74,
+	0x4b, 0x65, 0x79, 0x12, 0x16, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
+	0x65, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x62, 0x78,
+	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x3f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x53, 0x63, 0x72, 0x69, 0x62,
+	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x62, 0x78,
+	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
+	0x73, 0x71, 0x12, 0x49, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
+	0x75, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f,
+	0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a,
+	0x0e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x12,
+	0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65,
+	0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x1a,
+	0x1c, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x44, 0x69,
+	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a,
+	0x0d, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d,
 	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74,
-	0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61,
-	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x08, 0x74,
-	0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,
-	0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50,
-	0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x44,
-	0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x61,
-	0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
-	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12,
-	0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x4d,
-	0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
-	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62,
-	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x53,
-	0x65, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x52, 0x0a,
-	0x0d, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
-	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79,
-	0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x15, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x54, 0x69,
-	0x6d, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
-	0x01, 0x22, 0x23, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a,
-	0x07, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
-	0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x50, 0x75, 0x73, 0x68, 0x53,
-	0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x09, 0x52, 0x06, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69,
-	0x5f, 0x77, 0x78, 0x70, 0x75, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69,
-	0x57, 0x78, 0x70, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x5f, 0x61, 0x70, 0x70, 0x70,
-	0x75, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x41, 0x70, 0x70, 0x70,
-	0x75, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x70, 0x75, 0x73,
-	0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x4d, 0x61, 0x69, 0x6c, 0x70, 0x75,
-	0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x52, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64,
-	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x57, 0x78, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x57, 0x78, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1e, 0x0a,
-	0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a,
-	0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x22, 0xcf, 0x02,
-	0x0a, 0x0d, 0x53, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12,
-	0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
-	0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65,
-	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
-	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
-	0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
-	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
-	0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74,
-	0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x74, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18,
-	0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12,
-	0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74,
-	0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65,
-	0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
-	0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22,
-	0xdd, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
-	0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65,
-	0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49,
-	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
-	0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
-	0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x18, 0x0a, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x67,
-	0x65, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65,
-	0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18,
-	0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22,
-	0x95, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
-	0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x72,
-	0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72,
-	0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14,
-	0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74,
-	0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
-	0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x66,
-	0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
-	0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
-	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
-	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63,
-	0x0a, 0x17, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74,
-	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
-	0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a,
-	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f,
-	0x6b, 0x65, 0x6e, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65,
-	0x72, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65,
-	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73,
-	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12,
-	0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64,
-	0x61, 0x74, 0x61, 0x32, 0xbb, 0x09, 0x0a, 0x0b, 0x42, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
-	0x69, 0x62, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x4c, 0x69, 0x73,
-	0x74, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e,
-	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65,
-	0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e,
-	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65,
-	0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x53, 0x6f, 0x6d, 0x65,
-	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
-	0x62, 0x65, 0x2e, 0x53, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19,
-	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x6f, 0x6d,
-	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x13, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x53, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f,
-	0x12, 0x23, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x53, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e,
-	0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
-	0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f,
-	0x0a, 0x0d, 0x42, 0x79, 0x50, 0x75, 0x73, 0x68, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
-	0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x75,
-	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x1a,
-	0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x42, 0x79,
-	0x50, 0x75, 0x73, 0x68, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12,
-	0x3b, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x62, 0x78, 0x73,
-	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64,
-	0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
-	0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x06,
-	0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63,
-	0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14,
-	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x4b, 0x65, 0x79,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x53, 0x63,
-	0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15,
-	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x55, 0x73, 0x65,
-	0x72, 0x52, 0x65, 0x73, 0x71, 0x12, 0x49, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x74,
-	0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
-	0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
-	0x12, 0x4e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
-	0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52,
-	0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70,
-	0x12, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x12, 0x1d, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e,
-	0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
-	0x1a, 0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x56,
-	0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a,
-	0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75,
-	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
-	0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63,
+	0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e,
+	0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x56, 0x69, 0x65, 0x77,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x08, 0x75, 0x73,
+	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63,
 	0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
-	0x52, 0x65, 0x73, 0x71, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12,
-	0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65,
-	0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62,
-	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68,
-	0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
-	0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a,
-	0x1b, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65,
-	0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0a,
-	0x73, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x62, 0x78, 0x73,
-	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68,
-	0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63,
-	0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12,
-	0x5c, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63,
-	0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a,
-	0x17, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
-	0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x21,
-	0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61,
-	0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
-	0x6c, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
-	0x62, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
+	0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
+	0x71, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x62,
+	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75,
+	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x45, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74,
+	0x12, 0x1a, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47,
+	0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x62,
+	0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75,
+	0x73, 0x68, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x73, 0x65, 0x74,
+	0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73,
+	0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x53, 0x65, 0x74,
+	0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
+	0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x15,
+	0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
+	0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x17, 0x67, 0x65,
+	0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44,
+	0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+	0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x62, 0x78,
+	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x53,
+	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x0f,
+	0x5a, 0x0d, 0x2e, 0x2f, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x62,
+	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (

+ 1 - 1
jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe_grpc.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.15.1
+// - protoc             v3.19.4
 // source: bxsubscribe.proto
 
 package bxsubscribe