Kaynağa Gözat

feat:筛选条件、列表模式保存调整

fuwencai 2 yıl önce
ebeveyn
işleme
447785a474

+ 11 - 3
jyBXBase/api/bxbase.api

@@ -113,11 +113,16 @@ type (
 	IncludedReq {
 		AppId string `header:"appId,default=10000"`
 	}
-	// 搜索/订阅 列表模式入参
+	// 保存搜索/订阅 列表模式入参
 	SaveListModeReq {
 		UserId string `header:"userId"`
-		Mode   int    `json:"mode"` // 0-精简列表 1-详细列表
-		Type   string `path:"type"` // search 搜索列表  subscribe 订阅列表
+		Type   string `path:"type,options=search|subscribe"` // search 搜索列表  subscribe 订阅列表
+		Mode   int    `json:"mode"`                          // 0-精简列表 1-详细列表
+	}
+	// 获取获取搜索/订阅
+	ShowListModeReq {
+		UserId string `header:"userId"`
+		Type   string `path:"type,options=search|subscribe"` // search 搜索列表  subscribe 订阅列表
 	}
 )
 
@@ -164,4 +169,7 @@ service bxbase-api {
 	// 列表模式选择接口
 	@handler SaveListMode
 	post /jybx/base/:type/saveListMode (SaveListModeReq) returns(CommonRes)
+	// 获取列表模式接口
+	@handler ShowListMode
+	post /jybx/base/:type/showListMode (ShowListModeReq) returns(CommonRes)
 }

+ 5 - 0
jyBXBase/api/internal/handler/routes.go

@@ -77,6 +77,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/jybx/base/:type/saveListMode",
 				Handler: SaveListModeHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/jybx/base/:type/showListMode",
+				Handler: ShowListModeHandler(serverCtx),
+			},
 		},
 	)
 }

+ 28 - 0
jyBXBase/api/internal/handler/showListModeHandler.go

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

+ 45 - 0
jyBXBase/api/internal/logic/showListModeLogic.go

@@ -0,0 +1,45 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"context"
+	"jyBXBase/rpc/bxbase"
+
+	"jyBXBase/api/internal/svc"
+	"jyBXBase/api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type ShowListModeLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewShowListModeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ShowListModeLogic {
+	return &ShowListModeLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *ShowListModeLogic) ShowListMode(req *types.ShowListModeReq) (resp *types.CommonRes, err error) {
+	res, err0 := l.svcCtx.Bxbase.ShowListMode(l.ctx, &bxbase.ShowListModeReq{
+		UserId: req.UserId,
+		Type:   req.Type,
+	})
+	if err0 != nil {
+		return &types.CommonRes{
+			Err_code: -1,
+			Err_msg:  err0.Error(),
+			Data:     nil,
+		}, nil
+	}
+	return &types.CommonRes{
+		Err_code: common.IntAll(res.ErrCode),
+		Err_msg:  res.ErrMsg,
+		Data:     common.IntAll(res.Data),
+	}, nil
+}

+ 7 - 2
jyBXBase/api/internal/types/types.go

@@ -106,6 +106,11 @@ type IncludedReq struct {
 
 type SaveListModeReq struct {
 	UserId string `header:"userId"`
-	Mode   int    `json:"mode"` // 0-精简列表 1-详细列表
-	Type   string `path:"type"` // search 搜索列表  subscribe 订阅列表
+	Type   string `path:"type,options=search|subscribe"` // search 搜索列表  subscribe 订阅列表
+	Mode   int    `json:"mode"`                          // 0-精简列表 1-详细列表
+}
+
+type ShowListModeReq struct {
+	UserId string `header:"userId"`
+	Type   string `path:"type,options=search|subscribe"` // search 搜索列表  subscribe 订阅列表
 }

+ 91 - 0
jyBXBase/api/test/apitest.http

@@ -0,0 +1,91 @@
+// 接口测试用例
+
+### 搜索/订阅 列表模式保存
+POST http://localhost:8006/jybx/base/subscribe/saveListMode
+Content-Type: application/json
+UserId:test20130110
+
+{
+  "mode": 0
+}
+
+### 搜索/订阅 列表模式获取
+POST http://localhost:8006/jybx/base/subscribe/showListMode
+Content-Type: application/json
+UserId:test201301102
+
+
+
+### 校验筛选条件是否重复保存
+POST http://localhost:8006/jybx/base/checkSearchScreen
+Content-Type: application/json
+UserId:test20130110
+appId:10000
+
+{
+  "searchvalue": "景山公园 天坛 地坛 陶然亭 颐和园",
+  "selectType": "content,title,buyer",
+  "industry": "建筑工程_材料设备,建筑工程_工程施工,建筑工程_勘察设计,建筑工程_监理咨询,建筑工程_机电安装",
+  "minprice": "",
+  "maxprice": "",
+  "publishtime": "fiveyear",
+  "subtype": "",
+  "buyerclass": "交通",
+  "buyertel": "y",
+  "winnertel": "y",
+  "notkey": "医院",
+  "fileExists": "0",
+  "area": "北京",
+  "city": "",
+  "searchGroup": 0,
+  "searchMode": 1,
+  "wordsMode": 1,
+  "additionalWords": "九龙山 医院 "
+}
+### 筛选条件保存
+POST http://localhost:8006/jybx/base/addSearchScreen
+Content-Type: application/json
+UserId:test20130110
+appId:10000
+
+{
+  "searchvalue": "景山公园 天坛 地坛 陶然亭 颐和园",
+  "selectType": "content,title,buyer",
+  "industry": "建筑工程_材料设备,建筑工程_工程施工,建筑工程_勘察设计,建筑工程_监理咨询,建筑工程_机电安装",
+  "minprice": "",
+  "maxprice": "",
+  "publishtime": "fiveyear",
+  "subtype": "",
+  "buyerclass": "交通",
+  "buyertel": "y",
+  "winnertel": "y",
+  "notkey": "医院",
+  "fileExists": "0",
+  "area": "北京",
+  "city": "",
+  "inkey": "742c4bce4303dffdaa8ce3c0b99ee814",
+  "searchGroup": 0,
+  "searchMode": 1,
+  "wordsMode": 1,
+  "additionalWords": "九龙山 医院"
+}
+
+
+
+### 查看已保存的筛选条件
+POST http://localhost:8006/jybx/base/showSearchScreen
+Content-Type: application/json
+UserId:test20130110
+appId:10000
+
+
+### 删除已保存的筛选条件
+POST http://localhost:8006/jybx/base/delSearchScreen
+Content-Type: application/json
+UserId:test20130110
+appId:10000
+
+{
+"id": "63bcfd44d2d550dfc36773dd"
+}
+

+ 4 - 0
jyBXBase/entity/db.go

@@ -48,3 +48,7 @@ type EsStruct struct {
 	Addr string `json:"addr"`
 	Size int    `json:"size"`
 }
+
+const (
+	ListModeCollection = "list_mode" // 搜索/订阅 列表模式 集合
+)

+ 13 - 1
jyBXBase/rpc/bxbase.proto

@@ -276,7 +276,17 @@ message SaveListModeReq{
   string Type = 2 ; // 类型 search-搜索列表 subscribe-订阅列表
   int64  Mode = 3;  // 列表模式 0-精简模式 1-详细模式
 }
-
+// 搜索订阅列表模式获取
+message ShowListModeReq{
+  string UserId = 1; // 用户id
+  string Type = 2 ; // 类型 search-搜索列表 subscribe-订阅列表
+}
+// 搜索订阅列表模式获取结果
+message ShowListModeRes{
+  int64 err_code = 1;
+  string err_msg = 2;
+  int64 data = 3;
+}
 //servie
 service bxbase {
   //新增标签
@@ -308,6 +318,8 @@ service bxbase {
   rpc Included (AppIdReq) returns(IncludedResp);
   // 搜索/订阅 列表模式保存
   rpc saveListMode(SaveListModeReq) returns(CommonRes);
+  // 搜索/订阅 列表模式获取
+  rpc showListMode(ShowListModeReq) returns(ShowListModeRes);
 
 
 }

+ 19 - 0
jyBXBase/rpc/bxbase/bxbase.go

@@ -40,6 +40,9 @@ type (
 	NewestList        = bxbase.NewestList
 	NewsetBidding     = bxbase.NewsetBidding
 	NewsetBiddingResp = bxbase.NewsetBiddingResp
+	SaveListModeReq   = bxbase.SaveListModeReq
+	ShowListModeReq   = bxbase.ShowListModeReq
+	ShowListModeRes   = bxbase.ShowListModeRes
 	ShowSearchReq     = bxbase.ShowSearchReq
 	ShowSearchRes     = bxbase.ShowSearchRes
 
@@ -68,6 +71,10 @@ type (
 		NewestBidding(ctx context.Context, in *NewestBiddingReq, opts ...grpc.CallOption) (*NewsetBiddingResp, error)
 		// 剑鱼网站收录情况
 		Included(ctx context.Context, in *AppIdReq, opts ...grpc.CallOption) (*IncludedResp, error)
+		//  搜索/订阅 列表模式保存
+		SaveListMode(ctx context.Context, in *SaveListModeReq, opts ...grpc.CallOption) (*CommonRes, error)
+		//  搜索/订阅 列表模式获取
+		ShowListMode(ctx context.Context, in *ShowListModeReq, opts ...grpc.CallOption) (*ShowListModeRes, error)
 	}
 
 	defaultBxbase struct {
@@ -152,3 +159,15 @@ func (m *defaultBxbase) Included(ctx context.Context, in *AppIdReq, opts ...grpc
 	client := bxbase.NewBxbaseClient(m.cli.Conn())
 	return client.Included(ctx, in, opts...)
 }
+
+//  搜索/订阅 列表模式保存
+func (m *defaultBxbase) SaveListMode(ctx context.Context, in *SaveListModeReq, opts ...grpc.CallOption) (*CommonRes, error) {
+	client := bxbase.NewBxbaseClient(m.cli.Conn())
+	return client.SaveListMode(ctx, in, opts...)
+}
+
+//  搜索/订阅 列表模式获取
+func (m *defaultBxbase) ShowListMode(ctx context.Context, in *ShowListModeReq, opts ...grpc.CallOption) (*ShowListModeRes, error) {
+	client := bxbase.NewBxbaseClient(m.cli.Conn())
+	return client.ShowListMode(ctx, in, opts...)
+}

+ 3 - 5
jyBXBase/rpc/internal/logic/addsearchlogic.go

@@ -30,7 +30,6 @@ func NewAddSearchLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddSear
 // 添加搜索列表
 func (l *AddSearchLogic) AddSearch(in *bxbase.AddSearchReq) (res *bxbase.CommonRes, err error) {
 	res = new(bxbase.CommonRes)
-	// todo 待测试
 	newData := make(map[string]interface{})
 	if in.UserId == "" {
 		res.ErrCode = 1
@@ -64,11 +63,10 @@ func (l *AddSearchLogic) AddSearch(in *bxbase.AddSearchReq) (res *bxbase.CommonR
 	newData["creation_time"] = time.Now().Unix()
 	newData["user_id"] = in.UserId
 	newData["in_key"] = in.InKey
-	newData["searchGroup"] = in.SearchGroup
-	newData["searchMode"] = in.SearchMode
-	newData["wordsMode"] = in.WordsMode
+	newData["searchGroup"] = int(in.SearchGroup)
+	newData["searchMode"] = int(in.SearchMode)
+	newData["wordsMode"] = int(in.WordsMode)
 	newData["additionalWords"] = in.AdditionalWords
-
 	IC.Mgo.Save("search_condition", newData)
 	return
 }

+ 0 - 1
jyBXBase/rpc/internal/logic/checksearchlogic.go

@@ -34,7 +34,6 @@ func NewCheckSearchLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Check
 
 // 校验搜索列表
 func (l *CheckSearchLogic) CheckSearch(in *bxbase.AddSearchReq) (res *bxbase.CheckRes, err error) {
-	// todo 待测试
 	res = new(bxbase.CheckRes)
 	if in.UserId == "" {
 		res.ErrCode = 1

+ 13 - 29
jyBXBase/rpc/internal/logic/savelistmodelogic.go

@@ -3,6 +3,7 @@ package logic
 import (
 	"context"
 	"errors"
+	"jyBXBase/entity"
 	IC "jyBXBase/rpc/init"
 
 	"jyBXBase/rpc/internal/svc"
@@ -27,37 +28,20 @@ func NewSaveListModeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Save
 
 // SaveListMode 搜索/订阅 列表模式保存
 func (l *SaveListModeLogic) SaveListMode(in *bxbase.SaveListModeReq) (res *bxbase.CommonRes, err error) {
-	// todo 待测试
 	res = new(bxbase.CommonRes)
-
 	query := map[string]interface{}{
-		"userId": in.UserId,
-		"type":   in.Type,
+		"user_id": in.UserId,
+		"type":    in.Type, // 类型 search-标讯搜索列表 subscribe-订阅列表
 	}
-	if IC.Mgo.Count("list_mode", query) > 0 {
-		// 存在则更新
-		b := IC.Mgo.Update("list_mode", query, map[string]interface{}{
-			"$set": map[string]interface{}{
-				"mode": in.Mode},
-		}, false, false)
-		if !b {
-			res.ErrCode = 1
-			err = errors.New("更新失败")
-		}
-
-	} else {
-		// 保存
-		saveData := map[string]interface{}{
-			"type":   in.Type,
-			"mode":   in.Mode,
-			"userId": in.UserId,
-		}
-		rs := IC.Mgo.Save("list_mode", saveData)
-		if rs == "" {
-			res.ErrCode = 1
-			err = errors.New("保存失败")
-		}
+	updateInfo := map[string]interface{}{
+		"$set": map[string]interface{}{
+			"mode": int(in.Mode)}, // 列表模式 0-精简列表 1-详细列表
 	}
-
-	return res, nil
+	// 存在则更新 不存在则保存一条新数据
+	b := IC.Mgo.Update(entity.ListModeCollection, query, updateInfo, true, false)
+	if !b {
+		res.ErrCode = 1
+		err = errors.New("保存失败")
+	}
+	return res, err
 }

+ 47 - 0
jyBXBase/rpc/internal/logic/showlistmodelogic.go

@@ -0,0 +1,47 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"context"
+	"errors"
+	"jyBXBase/entity"
+	IC "jyBXBase/rpc/init"
+
+	"jyBXBase/rpc/internal/svc"
+	"jyBXBase/rpc/type/bxbase"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type ShowListModeLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewShowListModeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ShowListModeLogic {
+	return &ShowListModeLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// ShowListMode 搜索/订阅 列表模式获取
+func (l *ShowListModeLogic) ShowListMode(in *bxbase.ShowListModeReq) (res *bxbase.ShowListModeRes, err error) {
+	res = new(bxbase.ShowListModeRes)
+	query := map[string]interface{}{
+		"user_id": in.UserId,
+		"type":    in.Type, // 类型 search-标讯搜索列表 subscribe-订阅列表
+	}
+	rs, b := IC.Mgo.FindOne(entity.ListModeCollection, query)
+	if !b {
+		res.ErrCode = 1
+		err = errors.New("获取失败")
+	} else {
+		if rs != nil {
+			res.Data = common.Int64All((*rs)["mode"])
+		}
+	}
+	return res, err
+}

+ 6 - 0
jyBXBase/rpc/internal/server/bxbaseserver.go

@@ -99,3 +99,9 @@ func (s *BxbaseServer) SaveListMode(ctx context.Context, in *bxbase.SaveListMode
 	l := logic.NewSaveListModeLogic(ctx, s.svcCtx)
 	return l.SaveListMode(in)
 }
+
+//  搜索/订阅 列表模式获取
+func (s *BxbaseServer) ShowListMode(ctx context.Context, in *bxbase.ShowListModeReq) (*bxbase.ShowListModeRes, error) {
+	l := logic.NewShowListModeLogic(ctx, s.svcCtx)
+	return l.ShowListMode(in)
+}

+ 227 - 65
jyBXBase/rpc/type/bxbase/bxbase.pb.go

@@ -2740,6 +2740,126 @@ func (x *SaveListModeReq) GetMode() int64 {
 	return 0
 }
 
+// 搜索订阅列表模式获取
+type ShowListModeReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` // 用户id
+	Type   string `protobuf:"bytes,2,opt,name=Type,proto3" json:"Type,omitempty"`     // 类型 search-搜索列表 subscribe-订阅列表
+}
+
+func (x *ShowListModeReq) Reset() {
+	*x = ShowListModeReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_bxbase_proto_msgTypes[30]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ShowListModeReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowListModeReq) ProtoMessage() {}
+
+func (x *ShowListModeReq) ProtoReflect() protoreflect.Message {
+	mi := &file_bxbase_proto_msgTypes[30]
+	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 ShowListModeReq.ProtoReflect.Descriptor instead.
+func (*ShowListModeReq) Descriptor() ([]byte, []int) {
+	return file_bxbase_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *ShowListModeReq) GetUserId() string {
+	if x != nil {
+		return x.UserId
+	}
+	return ""
+}
+
+func (x *ShowListModeReq) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+// 搜索订阅列表模式获取结果
+type ShowListModeRes 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    int64  `protobuf:"varint,3,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *ShowListModeRes) Reset() {
+	*x = ShowListModeRes{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_bxbase_proto_msgTypes[31]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ShowListModeRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowListModeRes) ProtoMessage() {}
+
+func (x *ShowListModeRes) ProtoReflect() protoreflect.Message {
+	mi := &file_bxbase_proto_msgTypes[31]
+	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 ShowListModeRes.ProtoReflect.Descriptor instead.
+func (*ShowListModeRes) Descriptor() ([]byte, []int) {
+	return file_bxbase_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *ShowListModeRes) GetErrCode() int64 {
+	if x != nil {
+		return x.ErrCode
+	}
+	return 0
+}
+
+func (x *ShowListModeRes) GetErrMsg() string {
+	if x != nil {
+		return x.ErrMsg
+	}
+	return ""
+}
+
+func (x *ShowListModeRes) GetData() int64 {
+	if x != nil {
+		return x.Data
+	}
+	return 0
+}
+
 var File_bxbase_proto protoreflect.FileDescriptor
 
 var file_bxbase_proto_rawDesc = []byte{
@@ -3105,55 +3225,69 @@ var file_bxbase_proto_rawDesc = []byte{
 	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65,
 	0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
 	0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x32, 0xe5, 0x05, 0x0a, 0x06,
-	0x62, 0x78, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x6c, 0x61, 0x62,
-	0x65, 0x6c, 0x12, 0x12, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x6c, 0x61,
-	0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41,
-	0x64, 0x64, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x47, 0x65,
-	0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x62,
-	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74,
-	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x47,
-	0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
-	0x12, 0x3b, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x15, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74,
-	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c,
-	0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x35, 0x0a,
-	0x08, 0x42, 0x43, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x62, 0x78, 0x63, 0x6f,
-	0x6c, 0x2e, 0x42, 0x43, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e,
-	0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x49, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x41, 0x63,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x73, 0x43,
-	0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x62,
-	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x2e, 0x62,
-	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62,
-	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0a,
-	0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x14, 0x2e, 0x62, 0x78, 0x63,
-	0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71,
-	0x1a, 0x14, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x61,
-	0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, 0x65, 0x61,
+	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3d, 0x0a, 0x0f, 0x53,
+	0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16,
+	0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x53, 0x68,
+	0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 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, 0x03, 0x52,
+	0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xa5, 0x06, 0x0a, 0x06, 0x62, 0x78, 0x62, 0x61, 0x73, 0x65,
+	0x12, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x2e, 0x62,
+	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71,
+	0x1a, 0x12, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x6c, 0x61, 0x62, 0x65,
+	0x6c, 0x52, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x47,
+	0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+	0x1a, 0x18, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65,
+	0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x4c, 0x61,
+	0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x62, 0x78, 0x63, 0x6f,
+	0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+	0x1a, 0x15, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x42, 0x43, 0x41, 0x63, 0x74,
+	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x43, 0x41, 0x63,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e,
+	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x3e,
+	0x0a, 0x0c, 0x49, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16,
+	0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74,
+	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49,
+	0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x26,
+	0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c,
+	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4c,
+	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65,
+	0x61, 0x72, 0x63, 0x68, 0x12, 0x14, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f,
+	0x77, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x62, 0x78, 0x63,
+	0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
+	0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x13, 0x2e,
+	0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52,
+	0x65, 0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x52, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x61,
 	0x72, 0x63, 0x68, 0x12, 0x13, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53,
-	0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c,
-	0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x43, 0x68,
-	0x65, 0x63, 0x6b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x13, 0x2e, 0x62, 0x78, 0x63, 0x6f,
-	0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x0f,
-	0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x12,
-	0x32, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x13, 0x2e, 0x62,
-	0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65,
-	0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x52, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x4e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x42, 0x69, 0x64,
-	0x64, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77,
-	0x65, 0x73, 0x74, 0x42, 0x69, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e,
-	0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x73, 0x65, 0x74, 0x42, 0x69, 0x64, 0x64,
-	0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x08, 0x49, 0x6e, 0x63, 0x6c, 0x75,
-	0x64, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x49,
-	0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63,
-	0x6c, 0x75, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x61, 0x76,
-	0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x62, 0x78, 0x63, 0x6f,
-	0x6c, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65,
-	0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x52, 0x65, 0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x78, 0x62, 0x61, 0x73, 0x65, 0x62,
-	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c,
+	0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x44, 0x65, 0x6c,
+	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x13, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x44,
+	0x65, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78,
+	0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x42, 0x0a,
+	0x0d, 0x4e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x42, 0x69, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x17,
+	0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x42, 0x69, 0x64,
+	0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e,
+	0x4e, 0x65, 0x77, 0x73, 0x65, 0x74, 0x42, 0x69, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x30, 0x0a, 0x08, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x12, 0x0f, 0x2e,
+	0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13,
+	0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x52,
+	0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+	0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x61, 0x76, 0x65,
+	0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x62, 0x78,
+	0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x3e, 0x0a,
+	0x0c, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e,
+	0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f,
+	0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x62, 0x78, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68,
+	0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x42, 0x0a, 0x5a,
+	0x08, 0x2e, 0x2f, 0x62, 0x78, 0x62, 0x61, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x33,
 }
 
 var (
@@ -3168,7 +3302,7 @@ func file_bxbase_proto_rawDescGZIP() []byte {
 	return file_bxbase_proto_rawDescData
 }
 
-var file_bxbase_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
+var file_bxbase_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
 var file_bxbase_proto_goTypes = []interface{}{
 	(*AddlabelReq)(nil),       // 0: bxcol.AddlabelReq
 	(*AddlabelRes)(nil),       // 1: bxcol.AddlabelRes
@@ -3200,6 +3334,8 @@ var file_bxbase_proto_goTypes = []interface{}{
 	(*AppIdReq)(nil),          // 27: bxcol.AppIdReq
 	(*IncludedResp)(nil),      // 28: bxcol.IncludedResp
 	(*SaveListModeReq)(nil),   // 29: bxcol.SaveListModeReq
+	(*ShowListModeReq)(nil),   // 30: bxcol.ShowListModeReq
+	(*ShowListModeRes)(nil),   // 31: bxcol.ShowListModeRes
 }
 var file_bxbase_proto_depIdxs = []int32{
 	4,  // 0: bxcol.GetLabelActionRes.labels:type_name -> bxcol.LabelByUser
@@ -3223,21 +3359,23 @@ var file_bxbase_proto_depIdxs = []int32{
 	21, // 18: bxcol.bxbase.NewestBidding:input_type -> bxcol.NewestBiddingReq
 	27, // 19: bxcol.bxbase.Included:input_type -> bxcol.AppIdReq
 	29, // 20: bxcol.bxbase.saveListMode:input_type -> bxcol.SaveListModeReq
-	1,  // 21: bxcol.bxbase.Addlabel:output_type -> bxcol.AddlabelRes
-	3,  // 22: bxcol.bxbase.GetLabelAction:output_type -> bxcol.GetLabelActionRes
-	6,  // 23: bxcol.bxbase.LabelAction:output_type -> bxcol.LabelActionRes
-	6,  // 24: bxcol.bxbase.BCAction:output_type -> bxcol.LabelActionRes
-	9,  // 25: bxcol.bxbase.IsCollAction:output_type -> bxcol.IsCollActionRes
-	13, // 26: bxcol.bxbase.List:output_type -> bxcol.ListRes
-	17, // 27: bxcol.bxbase.ShowSearch:output_type -> bxcol.ShowSearchRes
-	25, // 28: bxcol.bxbase.AddSearch:output_type -> bxcol.CommonRes
-	26, // 29: bxcol.bxbase.CheckSearch:output_type -> bxcol.CheckRes
-	25, // 30: bxcol.bxbase.DelSearch:output_type -> bxcol.CommonRes
-	22, // 31: bxcol.bxbase.NewestBidding:output_type -> bxcol.NewsetBiddingResp
-	28, // 32: bxcol.bxbase.Included:output_type -> bxcol.IncludedResp
-	25, // 33: bxcol.bxbase.saveListMode:output_type -> bxcol.CommonRes
-	21, // [21:34] is the sub-list for method output_type
-	8,  // [8:21] is the sub-list for method input_type
+	30, // 21: bxcol.bxbase.showListMode:input_type -> bxcol.ShowListModeReq
+	1,  // 22: bxcol.bxbase.Addlabel:output_type -> bxcol.AddlabelRes
+	3,  // 23: bxcol.bxbase.GetLabelAction:output_type -> bxcol.GetLabelActionRes
+	6,  // 24: bxcol.bxbase.LabelAction:output_type -> bxcol.LabelActionRes
+	6,  // 25: bxcol.bxbase.BCAction:output_type -> bxcol.LabelActionRes
+	9,  // 26: bxcol.bxbase.IsCollAction:output_type -> bxcol.IsCollActionRes
+	13, // 27: bxcol.bxbase.List:output_type -> bxcol.ListRes
+	17, // 28: bxcol.bxbase.ShowSearch:output_type -> bxcol.ShowSearchRes
+	25, // 29: bxcol.bxbase.AddSearch:output_type -> bxcol.CommonRes
+	26, // 30: bxcol.bxbase.CheckSearch:output_type -> bxcol.CheckRes
+	25, // 31: bxcol.bxbase.DelSearch:output_type -> bxcol.CommonRes
+	22, // 32: bxcol.bxbase.NewestBidding:output_type -> bxcol.NewsetBiddingResp
+	28, // 33: bxcol.bxbase.Included:output_type -> bxcol.IncludedResp
+	25, // 34: bxcol.bxbase.saveListMode:output_type -> bxcol.CommonRes
+	31, // 35: bxcol.bxbase.showListMode:output_type -> bxcol.ShowListModeRes
+	22, // [22:36] is the sub-list for method output_type
+	8,  // [8:22] is the sub-list for method input_type
 	8,  // [8:8] is the sub-list for extension type_name
 	8,  // [8:8] is the sub-list for extension extendee
 	0,  // [0:8] is the sub-list for field type_name
@@ -3609,6 +3747,30 @@ func file_bxbase_proto_init() {
 				return nil
 			}
 		}
+		file_bxbase_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ShowListModeReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_bxbase_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ShowListModeRes); 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{
@@ -3616,7 +3778,7 @@ func file_bxbase_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_bxbase_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   30,
+			NumMessages:   32,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 38 - 0
jyBXBase/rpc/type/bxbase/bxbase_grpc.pb.go

@@ -48,6 +48,8 @@ type BxbaseClient interface {
 	Included(ctx context.Context, in *AppIdReq, opts ...grpc.CallOption) (*IncludedResp, error)
 	// 搜索/订阅 列表模式保存
 	SaveListMode(ctx context.Context, in *SaveListModeReq, opts ...grpc.CallOption) (*CommonRes, error)
+	// 搜索/订阅 列表模式获取
+	ShowListMode(ctx context.Context, in *ShowListModeReq, opts ...grpc.CallOption) (*ShowListModeRes, error)
 }
 
 type bxbaseClient struct {
@@ -175,6 +177,15 @@ func (c *bxbaseClient) SaveListMode(ctx context.Context, in *SaveListModeReq, op
 	return out, nil
 }
 
+func (c *bxbaseClient) ShowListMode(ctx context.Context, in *ShowListModeReq, opts ...grpc.CallOption) (*ShowListModeRes, error) {
+	out := new(ShowListModeRes)
+	err := c.cc.Invoke(ctx, "/bxcol.bxbase/showListMode", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // BxbaseServer is the server API for Bxbase service.
 // All implementations must embed UnimplementedBxbaseServer
 // for forward compatibility
@@ -205,6 +216,8 @@ type BxbaseServer interface {
 	Included(context.Context, *AppIdReq) (*IncludedResp, error)
 	// 搜索/订阅 列表模式保存
 	SaveListMode(context.Context, *SaveListModeReq) (*CommonRes, error)
+	// 搜索/订阅 列表模式获取
+	ShowListMode(context.Context, *ShowListModeReq) (*ShowListModeRes, error)
 	mustEmbedUnimplementedBxbaseServer()
 }
 
@@ -251,6 +264,9 @@ func (UnimplementedBxbaseServer) Included(context.Context, *AppIdReq) (*Included
 func (UnimplementedBxbaseServer) SaveListMode(context.Context, *SaveListModeReq) (*CommonRes, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SaveListMode not implemented")
 }
+func (UnimplementedBxbaseServer) ShowListMode(context.Context, *ShowListModeReq) (*ShowListModeRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShowListMode not implemented")
+}
 func (UnimplementedBxbaseServer) mustEmbedUnimplementedBxbaseServer() {}
 
 // UnsafeBxbaseServer may be embedded to opt out of forward compatibility for this service.
@@ -498,6 +514,24 @@ func _Bxbase_SaveListMode_Handler(srv interface{}, ctx context.Context, dec func
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Bxbase_ShowListMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShowListModeReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BxbaseServer).ShowListMode(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bxcol.bxbase/showListMode",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BxbaseServer).ShowListMode(ctx, req.(*ShowListModeReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // Bxbase_ServiceDesc is the grpc.ServiceDesc for Bxbase service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -557,6 +591,10 @@ var Bxbase_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "saveListMode",
 			Handler:    _Bxbase_SaveListMode_Handler,
 		},
+		{
+			MethodName: "showListMode",
+			Handler:    _Bxbase_ShowListMode_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "bxbase.proto",