Răsfoiți Sursa

feat:订阅相关信息

wangshan 3 ani în urmă
părinte
comite
fa8c98c161

+ 13 - 6
jyBXSubscribe/api/bxsubscribe.api

@@ -8,8 +8,9 @@ info (
 )
 
 type (
-	//
-	subscribeRequest {
+	//订阅列表
+	subscribeReq {
+		Appid      string `json:"appid"`
 		PageNum    int64  `json:"pageNum,optional"`
 		PageSize   int64  `json:"pageSize"`
 		SelectTime string `json:"selectTime"`
@@ -22,13 +23,19 @@ type (
 		UserType   string `path:"userType,default=fType,options=fType|vType|mType|eType"` //fType:普通用户;vType:超级订阅用户;mType:大会员用户;eType:商机管理用户;
 	}
 	//
-	commonRes {
-		Err_code int         `json:"error_code"`
+	someInfoReq {
+		Appid string `json:"appid"`
+	}
+	//
+	commonResp {
+		Err_code int64       `json:"error_code"`
 		Err_msg  string      `json:"error_msg"`
 		Data     interface{} `json:"data"`
 	}
 )
 service bxsubscribe-api {
-	@handler subscribeInfo
-	post /jybx/subscribe/:userType(subscribeRequest) returns (commonRes)
+	@handler subscribeList
+	post /jybx/subscribe/:userType/list(subscribeReq) returns (commonResp)
+	@handler someInfo
+	post /jybx/subscribe/someInfo(someInfoReq) returns (commonResp)
 }

+ 7 - 2
jyBXSubscribe/api/internal/handler/routes.go

@@ -14,8 +14,13 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 		[]rest.Route{
 			{
 				Method:  http.MethodPost,
-				Path:    "/jybx/subscribe/:userType",
-				Handler: subscribeInfoHandler(serverCtx),
+				Path:    "/jybx/subscribe/:userType/list",
+				Handler: subscribeListHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/jybx/subscribe/someInfo",
+				Handler: someInfoHandler(serverCtx),
 			},
 		},
 	)

+ 5 - 6
jyBXSubscribe/api/internal/handler/subscribeInfoHandler.go → jyBXSubscribe/api/internal/handler/someInfoHandler.go

@@ -3,23 +3,22 @@ package handler
 import (
 	"net/http"
 
+	"github.com/zeromicro/go-zero/rest/httpx"
 	"jyBXSubscribe/api/internal/logic"
 	"jyBXSubscribe/api/internal/svc"
 	"jyBXSubscribe/api/internal/types"
-
-	"github.com/zeromicro/go-zero/rest/httpx"
 )
 
-func subscribeInfoHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+func someInfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		var req types.SubscribeRequest
+		var req types.SomeInfoReq
 		if err := httpx.Parse(r, &req); err != nil {
 			httpx.Error(w, err)
 			return
 		}
 
-		l := logic.NewSubscribeInfoLogic(r.Context(), ctx, r)
-		resp, err := l.SubscribeInfo(req)
+		l := logic.NewSomeInfoLogic(r.Context(), svcCtx, r)
+		resp, err := l.SomeInfo(&req)
 		if err != nil {
 			httpx.Error(w, err)
 		} else {

+ 28 - 0
jyBXSubscribe/api/internal/handler/subscribeListHandler.go

@@ -0,0 +1,28 @@
+package handler
+
+import (
+	"net/http"
+
+	"github.com/zeromicro/go-zero/rest/httpx"
+	"jyBXSubscribe/api/internal/logic"
+	"jyBXSubscribe/api/internal/svc"
+	"jyBXSubscribe/api/internal/types"
+)
+
+func subscribeListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.SubscribeReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewSubscribeListLogic(r.Context(), svcCtx, r)
+		resp, err := l.SubscribeList(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 47 - 0
jyBXSubscribe/api/internal/logic/someInfoLogic.go

@@ -0,0 +1,47 @@
+package logic
+
+import (
+	"context"
+	"net/http"
+
+	"jyBXSubscribe/api/internal/svc"
+	"jyBXSubscribe/api/internal/types"
+	"jyBXSubscribe/rpc/type/bxsubscribe"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type SomeInfoLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	r      *http.Request
+}
+
+func NewSomeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *http.Request) *SomeInfoLogic {
+	return &SomeInfoLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		r:      r,
+	}
+}
+
+func (l *SomeInfoLogic) SomeInfo(req *types.SomeInfoReq) (resp *types.CommonResp, err error) {
+	res, err := l.svcCtx.Suscribe.GetSubSomeInfo(l.ctx, &bxsubscribe.SomeInfoReq{
+		AppId:  req.Appid,
+		UserId: l.r.Header.Get("userId"),
+	})
+	if err != nil {
+		return &types.CommonResp{
+			Err_code: res.ErrCode,
+			Err_msg:  res.ErrMsg,
+			Data:     nil,
+		}, nil
+	}
+	return &types.CommonResp{
+		Err_code: res.ErrCode,
+		Err_msg:  res.ErrMsg,
+		Data:     res.Data,
+	}, nil
+}

+ 9 - 10
jyBXSubscribe/api/internal/logic/subscribeInfoLogic.go → jyBXSubscribe/api/internal/logic/subscribeListLogic.go

@@ -2,24 +2,23 @@ package logic
 
 import (
 	"context"
-	"jyBXSubscribe/rpc/type/bxsubscribe"
-	"net/http"
-
 	"jyBXSubscribe/api/internal/svc"
 	"jyBXSubscribe/api/internal/types"
+	"jyBXSubscribe/rpc/type/bxsubscribe"
+	"net/http"
 
 	"github.com/zeromicro/go-zero/core/logx"
 )
 
-type SubscribeInfoLogic struct {
+type SubscribeListLogic struct {
 	logx.Logger
 	ctx    context.Context
 	svcCtx *svc.ServiceContext
 	r      *http.Request
 }
 
-func NewSubscribeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *http.Request) SubscribeInfoLogic {
-	return SubscribeInfoLogic{
+func NewSubscribeListLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *http.Request) *SubscribeListLogic {
+	return &SubscribeListLogic{
 		Logger: logx.WithContext(ctx),
 		ctx:    ctx,
 		svcCtx: svcCtx,
@@ -27,8 +26,8 @@ func NewSubscribeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *h
 	}
 }
 
-func (l *SubscribeInfoLogic) SubscribeInfo(req types.SubscribeRequest) (*types.CommonRes, error) {
-	res, err := l.svcCtx.Suscribe.GetSubInfo(l.ctx, &bxsubscribe.SubscribeInfosReq{
+func (l *SubscribeListLogic) SubscribeList(req *types.SubscribeReq) (resp *types.CommonResp, err error) {
+	res, err := l.svcCtx.Suscribe.GetSubList(l.ctx, &bxsubscribe.SubscribeInfosReq{
 		PageNum:    req.PageNum,
 		PageSize:   req.PageSize,
 		SelectTime: req.SelectTime,
@@ -43,13 +42,13 @@ func (l *SubscribeInfoLogic) SubscribeInfo(req types.SubscribeRequest) (*types.C
 		EntId:      l.r.Header.Get("entId"),
 	})
 	if err != nil {
-		return &types.CommonRes{
+		return &types.CommonResp{
 			Err_code: res.ErrCode,
 			Err_msg:  res.ErrMsg,
 			Data:     nil,
 		}, nil
 	}
-	return &types.CommonRes{
+	return &types.CommonResp{
 		Err_code: res.ErrCode,
 		Err_msg:  res.ErrMsg,
 		Data:     res.Data,

+ 8 - 3
jyBXSubscribe/api/internal/types/types.go

@@ -1,7 +1,8 @@
 // Code generated by goctl. DO NOT EDIT.
 package types
 
-type SubscribeRequest struct {
+type SubscribeReq struct {
+	Appid      string `json:"appid"`
 	PageNum    int64  `json:"pageNum,optional"`
 	PageSize   int64  `json:"pageSize"`
 	SelectTime string `json:"selectTime"`
@@ -14,8 +15,12 @@ type SubscribeRequest struct {
 	UserType   string `path:"userType,default=fType,options=fType|vType|mType|eType"` //fType:普通用户;vType:超级订阅用户;mType:大会员用户;eType:商机管理用户;
 }
 
-type CommonRes struct {
-	Err_code int64         `json:"error_code"`
+type SomeInfoReq struct {
+	Appid string `json:"appid"`
+}
+
+type CommonResp struct {
+	Err_code int64       `json:"error_code"`
 	Err_msg  string      `json:"error_msg"`
 	Data     interface{} `json:"data"`
 }

+ 27 - 2
jyBXSubscribe/rpc/bxsubscribe.proto

@@ -16,6 +16,7 @@ message SubscribeInfosReq {
   string  userType = 10;//fType:普通用户;vType:超级订阅用户;mType:大会员用户;eType:商机管理用户;
   string  userId = 11;
   string  entId = 12;
+  string  appId = 13;
 }
 
 message SubscribeInfosResp {
@@ -53,8 +54,32 @@ message subscribeInfo {
   int64  ca_isvip = 20;
   bool  fileExists = 21;
 }
+//
+message SomeInfoReq{
+  string  appId =1;
+  string  userId =2;
+}
+
+message SomeInfoResp {
+  int64 err_code = 1;
+  string err_msg = 2;
+  SomeInfo data = 3;
+}
+message SomeInfo{
+  bool hasKey = 1;//免费用户和超级订阅是否有订阅词
+  bool isInGuide = 2;//是否进入向导
+  int64 isExpire = 3;//超级订阅到期提醒
+  int64 isOnTail = 4;//超级订阅试用状态
+  bool isPassCount = 5;//推送数量校验
+  bool otherFlag = 6;//首次用户推送查询“其他”
+  bool isRead = 7;//某个通知??是否已读
+  repeated string  industry = 8;//会员订阅的行业
+  string userId = 9;//用户id
 
+}
 service Bxsubscribe {
-  //获取订阅推送信息
-  rpc GetSubInfo(SubscribeInfosReq) returns(SubscribeInfosResp);
+  //获取订阅推送列表
+  rpc GetSubList(SubscribeInfosReq) returns(SubscribeInfosResp);
+  //获取订阅推送相关信息
+  rpc GetSubSomeInfo(SomeInfoReq) returns(SomeInfoResp);
 }

+ 16 - 5
jyBXSubscribe/rpc/bxsubscribe/bxsubscribe.go

@@ -13,14 +13,19 @@ import (
 )
 
 type (
+	SomeInfo           = bxsubscribe.SomeInfo
+	SomeInfoReq        = bxsubscribe.SomeInfoReq
+	SomeInfoResp       = bxsubscribe.SomeInfoResp
 	SubscribeData      = bxsubscribe.SubscribeData
 	SubscribeInfo      = bxsubscribe.SubscribeInfo
 	SubscribeInfosReq  = bxsubscribe.SubscribeInfosReq
 	SubscribeInfosResp = bxsubscribe.SubscribeInfosResp
 
 	Bxsubscribe interface {
-		// 获取订阅推送信息
-		GetSubInfo(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error)
+		// 获取订阅推送列表
+		GetSubList(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error)
+		// 获取订阅推送相关信息
+		GetSubSomeInfo(ctx context.Context, in *SomeInfoReq, opts ...grpc.CallOption) (*SomeInfoResp, error)
 	}
 
 	defaultBxsubscribe struct {
@@ -34,8 +39,14 @@ func NewBxsubscribe(cli zrpc.Client) Bxsubscribe {
 	}
 }
 
-// 获取订阅推送信息
-func (m *defaultBxsubscribe) GetSubInfo(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error) {
+// 获取订阅推送列表
+func (m *defaultBxsubscribe) GetSubList(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error) {
 	client := bxsubscribe.NewBxsubscribeClient(m.cli.Conn())
-	return client.GetSubInfo(ctx, in, opts...)
+	return client.GetSubList(ctx, in, opts...)
+}
+
+// 获取订阅推送相关信息
+func (m *defaultBxsubscribe) GetSubSomeInfo(ctx context.Context, in *SomeInfoReq, opts ...grpc.CallOption) (*SomeInfoResp, error) {
+	client := bxsubscribe.NewBxsubscribeClient(m.cli.Conn())
+	return client.GetSubSomeInfo(ctx, in, opts...)
 }

+ 6 - 6
jyBXSubscribe/rpc/internal/logic/getsubinfologic.go → jyBXSubscribe/rpc/internal/logic/getsublistlogic.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"context"
+	IC "jyBXSubscribe/rpc/init"
 	"jyBXSubscribe/rpc/util"
 	"log"
 
@@ -9,25 +10,24 @@ import (
 	"jyBXSubscribe/rpc/type/bxsubscribe"
 
 	"github.com/zeromicro/go-zero/core/logx"
-	IC "jyBXSubscribe/rpc/init"
 )
 
-type GetSubInfoLogic struct {
+type GetSubListLogic struct {
 	ctx    context.Context
 	svcCtx *svc.ServiceContext
 	logx.Logger
 }
 
-func NewGetSubInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSubInfoLogic {
-	return &GetSubInfoLogic{
+func NewGetSubListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSubListLogic {
+	return &GetSubListLogic{
 		ctx:    ctx,
 		svcCtx: svcCtx,
 		Logger: logx.WithContext(ctx),
 	}
 }
 
-// 获取订阅推送信息
-func (l *GetSubInfoLogic) GetSubInfo(in *bxsubscribe.SubscribeInfosReq) (*bxsubscribe.SubscribeInfosResp, error) {
+// 获取订阅推送列表
+func (l *GetSubListLogic) GetSubList(in *bxsubscribe.SubscribeInfosReq) (*bxsubscribe.SubscribeInfosResp, error) {
 	log.Println("in:", in)
 	//1、推送信息已读标识
 	//超级订阅 i_apppushunread=0

+ 75 - 0
jyBXSubscribe/rpc/internal/logic/getsubsomeinfologic.go

@@ -0,0 +1,75 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/redis"
+	"context"
+	IC "jyBXSubscribe/rpc/init"
+	"jyBXSubscribe/rpc/util"
+	"time"
+
+	"jyBXSubscribe/rpc/internal/svc"
+	"jyBXSubscribe/rpc/type/bxsubscribe"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetSubSomeInfoLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetSubSomeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSubSomeInfoLogic {
+	return &GetSubSomeInfoLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// 获取订阅推送相关信息
+func (l *GetSubSomeInfoLogic) GetSubSomeInfo(in *bxsubscribe.SubscribeInfosReq) (*bxsubscribe.SubscribeInfosResp, error) {
+	resp := &bxsubscribe.SomeInfoResp{}
+	user, _ := util.NewSubscribePush().UserInfo(in.UserId)
+	resp.Data.HasKey, resp.Data.Industry = util.GetKeySet(in.UserType, user, []string{})
+	todayNum := time.Unix(time.Now().Unix(), 1).Format("20060102")
+	if user != nil {
+		//超级订阅
+		if common.IntAll((*user)["i_vip_status"]) == 1 || common.IntAll((*user)["i_vip_status"]) == 2 {
+			var threeRemind = int64(3 * 24 * 60 * 60)
+			var twoRemind = int64(2 * 24 * 60 * 60)
+			var oneRemind = int64(1 * 24 * 60 * 60)
+			if (*user)["isread"] != nil {
+				resp.Data.IsRead = (*user)["isread"].(bool)
+			}
+			resp.Data.IsPassCount = redis.GetInt("pushcache_2_a", "oncecount_"+todayNum+"_"+in.UserId) >= 2000
+			resp.Data.IsOnTail = common.Int64All((*user)["i_vip_status"])
+			_endtime := (*user)["l_vip_endtime"]
+			//是否到期
+			if common.Int64All(_endtime)-time.Now().Unix() < threeRemind && common.Int64All(_endtime)-time.Now().Unix() >= twoRemind {
+				resp.Data.IsExpire = 3 //即将到期
+			} else if common.Int64All(_endtime)-time.Now().Unix() < twoRemind && common.Int64All(_endtime)-time.Now().Unix() >= oneRemind {
+				resp.Data.IsExpire = 2 //即将到期
+			} else if common.Int64All(_endtime)-time.Now().Unix() < oneRemind && common.Int64All(_endtime)-time.Now().Unix() >= 0 {
+				resp.Data.IsExpire = 1 //即将到期
+			}
+			//判断首次用户是否推送的带有”其他“
+			t, _ := time.ParseInLocation("2006-01-02", time.Now().Format("2006-01-02"), time.Local)
+			today_1 := t.Unix()
+			today_2 := t.AddDate(0, 0, 1).Unix()
+			if IC.PushMysql.CountBySql("select count(1) as count from pushsubscribe where isvip =1 and userid =? and buyerclass=?  and (date between ? and ? )", in.UserId, 93, today_1, today_2) > 0 {
+				resp.Data.OtherFlag = true
+			}
+		} else {
+			if (*user)["i_vip_status"] == nil {
+				resp.Data.IsExpire = 0
+			} else {
+				resp.Data.IsOnTail = common.Int64All((*user)["i_vip_status"])
+			}
+			resp.Data.IsPassCount = redis.GetInt("pushcache_2_a", "oncecount_"+todayNum+"_"+in.UserId) >= 150
+		}
+	}
+
+	return &bxsubscribe.SubscribeInfosResp{}, nil
+}

+ 10 - 4
jyBXSubscribe/rpc/internal/server/bxsubscribeserver.go

@@ -22,8 +22,14 @@ func NewBxsubscribeServer(svcCtx *svc.ServiceContext) *BxsubscribeServer {
 	}
 }
 
-// 获取订阅推送信息
-func (s *BxsubscribeServer) GetSubInfo(ctx context.Context, in *bxsubscribe.SubscribeInfosReq) (*bxsubscribe.SubscribeInfosResp, error) {
-	l := logic.NewGetSubInfoLogic(ctx, s.svcCtx)
-	return l.GetSubInfo(in)
+// 获取订阅推送列表
+func (s *BxsubscribeServer) GetSubList(ctx context.Context, in *bxsubscribe.SubscribeInfosReq) (*bxsubscribe.SubscribeInfosResp, error) {
+	l := logic.NewGetSubListLogic(ctx, s.svcCtx)
+	return l.GetSubList(in)
+}
+
+// 获取订阅推送相关信息
+func (s *BxsubscribeServer) GetSubSomeInfo(ctx context.Context, in *bxsubscribe.SomeInfoReq) (*bxsubscribe.SomeInfoResp, error) {
+	l := logic.NewGetSubSomeInfoLogic(ctx, s.svcCtx)
+	return l.GetSubSomeInfo(in)
 }

+ 383 - 70
jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe.pb.go

@@ -42,6 +42,7 @@ type SubscribeInfosReq struct {
 	UserType   string `protobuf:"bytes,10,opt,name=userType,proto3" json:"userType,omitempty"` //fType:普通用户;vType:超级订阅用户;mType:大会员用户;eType:商机管理用户;
 	UserId     string `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId,omitempty"`
 	EntId      string `protobuf:"bytes,12,opt,name=entId,proto3" json:"entId,omitempty"`
+	AppId      string `protobuf:"bytes,13,opt,name=appId,proto3" json:"appId,omitempty"`
 }
 
 func (x *SubscribeInfosReq) Reset() {
@@ -160,6 +161,13 @@ func (x *SubscribeInfosReq) GetEntId() string {
 	return ""
 }
 
+func (x *SubscribeInfosReq) GetAppId() string {
+	if x != nil {
+		return x.AppId
+	}
+	return ""
+}
+
 type SubscribeInfosResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -493,12 +501,242 @@ func (x *SubscribeInfo) GetFileExists() bool {
 	return false
 }
 
+//
+type SomeInfoReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	AppId  string `protobuf:"bytes,1,opt,name=appId,proto3" json:"appId,omitempty"`
+	UserId string `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId,omitempty"`
+}
+
+func (x *SomeInfoReq) Reset() {
+	*x = SomeInfoReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_bxsubscribe_proto_msgTypes[4]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SomeInfoReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SomeInfoReq) ProtoMessage() {}
+
+func (x *SomeInfoReq) ProtoReflect() protoreflect.Message {
+	mi := &file_bxsubscribe_proto_msgTypes[4]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SomeInfoReq.ProtoReflect.Descriptor instead.
+func (*SomeInfoReq) Descriptor() ([]byte, []int) {
+	return file_bxsubscribe_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *SomeInfoReq) GetAppId() string {
+	if x != nil {
+		return x.AppId
+	}
+	return ""
+}
+
+func (x *SomeInfoReq) GetUserId() string {
+	if x != nil {
+		return x.UserId
+	}
+	return ""
+}
+
+type SomeInfoResp struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	ErrCode int64     `protobuf:"varint,1,opt,name=err_code,json=errCode,proto3" json:"err_code,omitempty"`
+	ErrMsg  string    `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
+	Data    *SomeInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *SomeInfoResp) Reset() {
+	*x = SomeInfoResp{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_bxsubscribe_proto_msgTypes[5]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SomeInfoResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SomeInfoResp) ProtoMessage() {}
+
+func (x *SomeInfoResp) ProtoReflect() protoreflect.Message {
+	mi := &file_bxsubscribe_proto_msgTypes[5]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SomeInfoResp.ProtoReflect.Descriptor instead.
+func (*SomeInfoResp) Descriptor() ([]byte, []int) {
+	return file_bxsubscribe_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *SomeInfoResp) GetErrCode() int64 {
+	if x != nil {
+		return x.ErrCode
+	}
+	return 0
+}
+
+func (x *SomeInfoResp) GetErrMsg() string {
+	if x != nil {
+		return x.ErrMsg
+	}
+	return ""
+}
+
+func (x *SomeInfoResp) GetData() *SomeInfo {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+type SomeInfo struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	HasKey      bool     `protobuf:"varint,1,opt,name=hasKey,proto3" json:"hasKey,omitempty"`           //免费用户和超级订阅是否有订阅词
+	IsInGuide   bool     `protobuf:"varint,2,opt,name=isInGuide,proto3" json:"isInGuide,omitempty"`     //是否进入向导
+	IsExpire    int64    `protobuf:"varint,3,opt,name=isExpire,proto3" json:"isExpire,omitempty"`       //超级订阅到期提醒
+	IsOnTail    int64    `protobuf:"varint,4,opt,name=isOnTail,proto3" json:"isOnTail,omitempty"`       //超级订阅试用状态
+	IsPassCount bool     `protobuf:"varint,5,opt,name=isPassCount,proto3" json:"isPassCount,omitempty"` //推送数量校验
+	OtherFlag   bool     `protobuf:"varint,6,opt,name=otherFlag,proto3" json:"otherFlag,omitempty"`     //首次用户推送查询“其他”
+	IsRead      bool     `protobuf:"varint,7,opt,name=isRead,proto3" json:"isRead,omitempty"`           //某个通知??是否已读
+	Industry    []string `protobuf:"bytes,8,rep,name=industry,proto3" json:"industry,omitempty"`        //会员订阅的行业
+	UserId      string   `protobuf:"bytes,9,opt,name=userId,proto3" json:"userId,omitempty"`            //用户id
+}
+
+func (x *SomeInfo) Reset() {
+	*x = SomeInfo{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_bxsubscribe_proto_msgTypes[6]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SomeInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SomeInfo) ProtoMessage() {}
+
+func (x *SomeInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_bxsubscribe_proto_msgTypes[6]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SomeInfo.ProtoReflect.Descriptor instead.
+func (*SomeInfo) Descriptor() ([]byte, []int) {
+	return file_bxsubscribe_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *SomeInfo) GetHasKey() bool {
+	if x != nil {
+		return x.HasKey
+	}
+	return false
+}
+
+func (x *SomeInfo) GetIsInGuide() bool {
+	if x != nil {
+		return x.IsInGuide
+	}
+	return false
+}
+
+func (x *SomeInfo) GetIsExpire() int64 {
+	if x != nil {
+		return x.IsExpire
+	}
+	return 0
+}
+
+func (x *SomeInfo) GetIsOnTail() int64 {
+	if x != nil {
+		return x.IsOnTail
+	}
+	return 0
+}
+
+func (x *SomeInfo) GetIsPassCount() bool {
+	if x != nil {
+		return x.IsPassCount
+	}
+	return false
+}
+
+func (x *SomeInfo) GetOtherFlag() bool {
+	if x != nil {
+		return x.OtherFlag
+	}
+	return false
+}
+
+func (x *SomeInfo) GetIsRead() bool {
+	if x != nil {
+		return x.IsRead
+	}
+	return false
+}
+
+func (x *SomeInfo) GetIndustry() []string {
+	if x != nil {
+		return x.Industry
+	}
+	return nil
+}
+
+func (x *SomeInfo) GetUserId() string {
+	if x != nil {
+		return x.UserId
+	}
+	return ""
+}
+
 var File_bxsubscribe_proto protoreflect.FileDescriptor
 
 var file_bxsubscribe_proto_rawDesc = []byte{
 	0x0a, 0x11, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x70, 0x72,
 	0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x62, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x22, 0xcd, 0x02, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e,
+	0x22, 0xe3, 0x02, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e,
 	0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75,
 	0x6d, 0x18, 0x01, 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, 0x02, 0x20, 0x01,
@@ -519,66 +757,99 @@ var file_bxsubscribe_proto_rawDesc = []byte{
 	0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e,
 	0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64,
-	0x22, 0x78, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66,
-	0x6f, 0x73, 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, 0x2e, 0x0a, 0x04, 0x64, 0x61,
-	0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 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,
-	0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x0d, 0x73, 0x75,
-	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x50,
-	0x61, 0x67, 0x65, 0x12, 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, 0xce, 0x04, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
-	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x02, 0x69, 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, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12,
-	0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12,
-	0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64,
-	0x75, 0x73, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x64,
-	0x75, 0x73, 0x74, 0x72, 0x79, 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, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x5f, 0x69, 0x6e,
-	0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x61, 0x49, 0x6e, 0x64,
-	0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x61, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
-	0x61, 0x5f, 0x69, 0x73, 0x76, 0x69, 0x73, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x09, 0x63, 0x61, 0x49, 0x73, 0x76, 0x69, 0x73, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61,
-	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x61, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73,
-	0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79,
-	0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x69, 0x64,
-	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69,
-	0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
-	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6c,
-	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72,
-	0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x12, 0x20, 0x0a,
-	0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12,
-	0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x4f, 0x70,
-	0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x69,
-	0x64, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x5f,
-	0x69, 0x73, 0x76, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x61, 0x49,
-	0x73, 0x76, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73,
-	0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78,
-	0x69, 0x73, 0x74, 0x73, 0x32, 0x5c, 0x0a, 0x0b, 0x42, 0x78, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
-	0x69, 0x62, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x49, 0x6e, 0x66,
-	0x6f, 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, 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,
+	0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 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, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 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, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
+	0x22, 0x77, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74,
+	0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x4e, 0x65,
+	0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61,
+	0x73, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 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, 0xce, 0x04, 0x0a, 0x0d, 0x73, 0x75,
+	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 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, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x79, 0x65, 0x72, 0x43, 0x6c,
+	0x61, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x65, 0x72,
+	0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12,
+	0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 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, 0x19, 0x0a,
+	0x08, 0x63, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x07, 0x63, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x64,
+	0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x61, 0x44, 0x61, 0x74,
+	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x5f, 0x69, 0x73, 0x76, 0x69, 0x73, 0x69, 0x74, 0x18,
+	0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x49, 0x73, 0x76, 0x69, 0x73, 0x69, 0x74,
+	0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x06, 0x63, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74,
+	0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61,
+	0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65,
+	0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12,
+	0x1c, 0x0a, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a,
+	0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
+	0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75,
+	0x79, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61,
+	0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
+	0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18,
+	0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a,
+	0x0b, 0x62, 0x69, 0x64, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0b, 0x62, 0x69, 0x64, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12,
+	0x19, 0x0a, 0x08, 0x63, 0x61, 0x5f, 0x69, 0x73, 0x76, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x07, 0x63, 0x61, 0x49, 0x73, 0x76, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69,
+	0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
+	0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, 0x3b, 0x0a, 0x0b, 0x53, 0x6f,
+	0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 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,
+	0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x0c, 0x53, 0x6f, 0x6d, 0x65, 0x49,
+	0x6e, 0x66, 0x6f, 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, 0x29, 0x0a, 0x04, 0x64,
+	0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x78, 0x73, 0x75,
+	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2e, 0x53, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f,
+	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x84, 0x02, 0x0a, 0x08, 0x53, 0x6f, 0x6d, 0x65, 0x49,
+	0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x69,
+	0x73, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
+	0x69, 0x73, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x45,
+	0x78, 0x70, 0x69, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x45,
+	0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x54, 0x61, 0x69,
+	0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x54, 0x61, 0x69,
+	0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x43, 0x6f,
+	0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67,
+	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6c, 0x61,
+	0x67, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
+	0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64,
+	0x75, 0x73, 0x74, 0x72, 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x64,
+	0x75, 0x73, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x32, 0xa3, 0x01,
+	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, 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 (
@@ -593,23 +864,29 @@ func file_bxsubscribe_proto_rawDescGZIP() []byte {
 	return file_bxsubscribe_proto_rawDescData
 }
 
-var file_bxsubscribe_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_bxsubscribe_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
 var file_bxsubscribe_proto_goTypes = []interface{}{
 	(*SubscribeInfosReq)(nil),  // 0: bxsubscribe.SubscribeInfosReq
 	(*SubscribeInfosResp)(nil), // 1: bxsubscribe.SubscribeInfosResp
 	(*SubscribeData)(nil),      // 2: bxsubscribe.subscribeData
 	(*SubscribeInfo)(nil),      // 3: bxsubscribe.subscribeInfo
+	(*SomeInfoReq)(nil),        // 4: bxsubscribe.SomeInfoReq
+	(*SomeInfoResp)(nil),       // 5: bxsubscribe.SomeInfoResp
+	(*SomeInfo)(nil),           // 6: bxsubscribe.SomeInfo
 }
 var file_bxsubscribe_proto_depIdxs = []int32{
 	2, // 0: bxsubscribe.SubscribeInfosResp.data:type_name -> bxsubscribe.subscribeData
 	3, // 1: bxsubscribe.subscribeData.list:type_name -> bxsubscribe.subscribeInfo
-	0, // 2: bxsubscribe.Bxsubscribe.GetSubInfo:input_type -> bxsubscribe.SubscribeInfosReq
-	1, // 3: bxsubscribe.Bxsubscribe.GetSubInfo:output_type -> bxsubscribe.SubscribeInfosResp
-	3, // [3:4] is the sub-list for method output_type
-	2, // [2:3] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
+	6, // 2: bxsubscribe.SomeInfoResp.data:type_name -> bxsubscribe.SomeInfo
+	0, // 3: bxsubscribe.Bxsubscribe.GetSubList:input_type -> bxsubscribe.SubscribeInfosReq
+	4, // 4: bxsubscribe.Bxsubscribe.GetSubSomeInfo:input_type -> bxsubscribe.SomeInfoReq
+	1, // 5: bxsubscribe.Bxsubscribe.GetSubList:output_type -> bxsubscribe.SubscribeInfosResp
+	5, // 6: bxsubscribe.Bxsubscribe.GetSubSomeInfo:output_type -> bxsubscribe.SomeInfoResp
+	5, // [5:7] is the sub-list for method output_type
+	3, // [3:5] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 
 func init() { file_bxsubscribe_proto_init() }
@@ -666,6 +943,42 @@ func file_bxsubscribe_proto_init() {
 				return nil
 			}
 		}
+		file_bxsubscribe_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SomeInfoReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_bxsubscribe_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SomeInfoResp); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_bxsubscribe_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SomeInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
@@ -673,7 +986,7 @@ func file_bxsubscribe_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_bxsubscribe_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   4,
+			NumMessages:   7,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 52 - 14
jyBXSubscribe/rpc/type/bxsubscribe/bxsubscribe_grpc.pb.go

@@ -22,8 +22,10 @@ const _ = grpc.SupportPackageIsVersion7
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type BxsubscribeClient interface {
-	//获取订阅推送信息
-	GetSubInfo(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error)
+	//获取订阅推送列表
+	GetSubList(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error)
+	//获取订阅推送相关信息
+	GetSubSomeInfo(ctx context.Context, in *SomeInfoReq, opts ...grpc.CallOption) (*SomeInfoResp, error)
 }
 
 type bxsubscribeClient struct {
@@ -34,9 +36,18 @@ func NewBxsubscribeClient(cc grpc.ClientConnInterface) BxsubscribeClient {
 	return &bxsubscribeClient{cc}
 }
 
-func (c *bxsubscribeClient) GetSubInfo(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error) {
+func (c *bxsubscribeClient) GetSubList(ctx context.Context, in *SubscribeInfosReq, opts ...grpc.CallOption) (*SubscribeInfosResp, error) {
 	out := new(SubscribeInfosResp)
-	err := c.cc.Invoke(ctx, "/bxsubscribe.Bxsubscribe/GetSubInfo", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/bxsubscribe.Bxsubscribe/GetSubList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *bxsubscribeClient) GetSubSomeInfo(ctx context.Context, in *SomeInfoReq, opts ...grpc.CallOption) (*SomeInfoResp, error) {
+	out := new(SomeInfoResp)
+	err := c.cc.Invoke(ctx, "/bxsubscribe.Bxsubscribe/GetSubSomeInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -47,8 +58,10 @@ func (c *bxsubscribeClient) GetSubInfo(ctx context.Context, in *SubscribeInfosRe
 // All implementations must embed UnimplementedBxsubscribeServer
 // for forward compatibility
 type BxsubscribeServer interface {
-	//获取订阅推送信息
-	GetSubInfo(context.Context, *SubscribeInfosReq) (*SubscribeInfosResp, error)
+	//获取订阅推送列表
+	GetSubList(context.Context, *SubscribeInfosReq) (*SubscribeInfosResp, error)
+	//获取订阅推送相关信息
+	GetSubSomeInfo(context.Context, *SomeInfoReq) (*SomeInfoResp, error)
 	mustEmbedUnimplementedBxsubscribeServer()
 }
 
@@ -56,8 +69,11 @@ type BxsubscribeServer interface {
 type UnimplementedBxsubscribeServer struct {
 }
 
-func (UnimplementedBxsubscribeServer) GetSubInfo(context.Context, *SubscribeInfosReq) (*SubscribeInfosResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetSubInfo not implemented")
+func (UnimplementedBxsubscribeServer) GetSubList(context.Context, *SubscribeInfosReq) (*SubscribeInfosResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetSubList not implemented")
+}
+func (UnimplementedBxsubscribeServer) GetSubSomeInfo(context.Context, *SomeInfoReq) (*SomeInfoResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetSubSomeInfo not implemented")
 }
 func (UnimplementedBxsubscribeServer) mustEmbedUnimplementedBxsubscribeServer() {}
 
@@ -72,20 +88,38 @@ func RegisterBxsubscribeServer(s grpc.ServiceRegistrar, srv BxsubscribeServer) {
 	s.RegisterService(&Bxsubscribe_ServiceDesc, srv)
 }
 
-func _Bxsubscribe_GetSubInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _Bxsubscribe_GetSubList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(SubscribeInfosReq)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(BxsubscribeServer).GetSubInfo(ctx, in)
+		return srv.(BxsubscribeServer).GetSubList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bxsubscribe.Bxsubscribe/GetSubList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BxsubscribeServer).GetSubList(ctx, req.(*SubscribeInfosReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Bxsubscribe_GetSubSomeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SomeInfoReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BxsubscribeServer).GetSubSomeInfo(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/bxsubscribe.Bxsubscribe/GetSubInfo",
+		FullMethod: "/bxsubscribe.Bxsubscribe/GetSubSomeInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(BxsubscribeServer).GetSubInfo(ctx, req.(*SubscribeInfosReq))
+		return srv.(BxsubscribeServer).GetSubSomeInfo(ctx, req.(*SomeInfoReq))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -98,8 +132,12 @@ var Bxsubscribe_ServiceDesc = grpc.ServiceDesc{
 	HandlerType: (*BxsubscribeServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
-			MethodName: "GetSubInfo",
-			Handler:    _Bxsubscribe_GetSubInfo_Handler,
+			MethodName: "GetSubList",
+			Handler:    _Bxsubscribe_GetSubList_Handler,
+		},
+		{
+			MethodName: "GetSubSomeInfo",
+			Handler:    _Bxsubscribe_GetSubSomeInfo_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},

+ 51 - 0
jyBXSubscribe/rpc/util/push.go

@@ -657,3 +657,54 @@ func UpdateUserPushUnread(userid string, vt string) {
 
 	}
 }
+
+//
+
+//获取用户信息
+func (s *subscribePush) UserInfo(userId string) (*map[string]interface{}, int64) {
+	user, ok := IC.Mgo.FindById("user", userId, `{"s_m_openid":1,"a_m_openid":1,"s_phone":1,"a_mergeorder":1,"o_jy":1,"l_firstpushtime":1,"i_vip_status":1,"l_vip_endtime":1,"o_vipjy":1,"i_member_status":1,"o_member_jy":1}`)
+	if !ok || user == nil {
+		return nil, 0
+	}
+	return user, common.Int64All((*user)["l_firstpushtime"])
+}
+
+//是否有订阅词
+func GetKeySet(t string, u *map[string]interface{}, data []string) (bool, []string) {
+	var industry_ = []string{}
+	if u != nil {
+		if t == SubFreeFlag {
+			o_jy, _ := (*u)["o_jy"].(map[string]interface{})
+			a_key, _ := o_jy["a_key"].([]interface{})
+			return len(a_key) > 0, industry_
+		} else {
+			var obj map[string]interface{}
+			if t == SubVipFlag {
+				obj, _ = (*u)["o_vipjy"].(map[string]interface{})
+			} else if t == MemberFlag {
+				obj, _ = (*u)["o_member_jy"].(map[string]interface{})
+			} else if t == EntnicheFlag {
+				if len(data) > 0 {
+					return true, data
+				} else {
+					return false, data
+				}
+
+			}
+			if obj != nil {
+				if buyerclassObj, ok := obj["a_buyerclass"].([]interface{}); ok {
+					industry_ = common.ObjArrToStringArr(buyerclassObj)
+				}
+				itmes, _ := obj["a_items"].([]interface{})
+				for _, v := range itmes {
+					item, _ := v.(map[string]interface{})
+					keys, _ := item["a_key"].([]interface{})
+					if len(keys) > 0 {
+						return true, industry_
+					}
+				}
+			}
+		}
+	}
+	return false, industry_
+}