yuelujie 4 ماه پیش
والد
کامیت
6b7319f25d

+ 11 - 0
api/biService.api

@@ -154,6 +154,13 @@ type (
 	FindClueInfoReq {
 		UserId     string `header:"userId,optional"`
 		PositionId int64  `header:"positionId,optional"`
+		Phone      string `header:"phone,optional"`
+	}
+	ClueInfoReq {
+		SearchTxt  string `json:"searchTxt"`
+		SearchType string `json:"searchType"` // 0: 线索名称,1: 联系方式,2: 联系人
+		PageSize   int64  `json:"pageSize"`
+		PageNum    int64  `json:"pageNum"`
 	}
 )
 
@@ -250,4 +257,8 @@ service biService-api {
 	@doc "线索查询"
 	@handler findClueInfo
 	post /biService/findClueInfo (FindClueInfoReq) returns (biResp)
+
+	@doc "线索验重 列表"
+	@handler getClueInfoList
+	post /biService/getClueInfoList (ClueInfoReq) returns (biResp)
 }

+ 20 - 117
api/etc/biservice-api.yaml

@@ -1,120 +1,23 @@
-Name: biservice.rpc
-ListenOn: 0.0.0.0:9998
-Etcd:
-  Hosts:
-    - 192.168.3.240:2379
-  Key: biservice.rpc
-Mode: test
-Mysql:
-  JianYu:
-    DBName: jianyu
-    Address: 192.168.3.149:3306
-    UserName: root
-    PassWord: Topnet123
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  JyDoc:
-    DBName: jydocs
-    Address: 192.168.3.149:3306
-    UserName: root
-    PassWord: Topnet123
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  Bi:
-    DBName: jianyu_subjectdb_test
-    Address: 192.168.3.149:4000
-    UserName: xuzhiheng
-    PassWord: "Xzh#20221122K"
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  Tidb:
-    DBName: base_service
-    Address: 192.168.3.217:4000
-    UserName: root
-    PassWord: "=PDT49#80Z!RVv52_z"
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  BiTidb:
-    DBName: jianyu_subjectdb_test
-    Address: 192.168.3.149:4000
-    UserName: xuzhiheng
-    PassWord: "Xzh#20221122K"
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  CallTidb:
-    DBName: Call_Accounting
-    Address: 192.168.3.149:4000
-    UserName: xuzhiheng
-    PassWord: "Xzh#20221122K"
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-  BiService:
-    DBName: bi_service
-    Address: 192.168.3.217:4000
-    UserName: root
-    PassWord: "=PDT49#80Z!RVv52_z"
-    MaxOpenConns: 5
-    MaxIdleConns: 5
-Mongo:
-  Qfw:
-    MongodbAddr: 192.168.3.206:27080
-    DbName: qfw
-    Size: 10
-  Bidding:
-    MongodbAddr: 192.168.3.206:27080
-    DbName: qfw
-    UserName:
-    Password:
-    Size: 10
-Es:
-  Address: http://192.168.3.241:9205
-  DbSize: 5
-  Version: v7
-  UserName:
-  Password:
-  Index: projectset
-  IType: projectset
-EntEs:
-  Address: http://192.168.3.241:9205
-  DbSize: 5
-  Version: v7
-  UserName:
-  Password:
+Name: biService-api
+Host: 0.0.0.0
+Port: 9995
+BiServiceRpc:
+  Etcd:
+    Hosts:
+      - 127.0.0.1:2379
+    Key: biservice.rpc
+  Timeout: 100000
+Timeout: 100000
+GatewayRpcConf:
+  Etcd:
+    Hosts:
+      - 172.31.31.203:2379
+    Key: gatewayDemo.rpc
+  Timeout: 300000
 Logx:
   Mode: console #console|file|volume
-  Path: logs
+  Path: ./logs
   Level: info #info|error|severe
-  KeepDays: 100
-CustomerCol: customer_test
-AddCountLimit: 500
-DrawCountLimit: 1000
-TopicName: jy_position_sync
-NsqUrl: 192.168.3.240:4161
-#合力亿捷account_token存储
-RedisAddress:
-  - newother=192.168.3.149:1712
-  - session=192.168.3.149:1713
-#合力亿捷相关调用参数
-Hlyj:
-  Appid: w4w2ex0bnt1n61or
-  Account: N000000029739
-  Secret: 3c8f7dd04d2c11edb786132b38c4d48a
-  TokenUrl: https://a1.7x24cc.com/accessToken #获取token接口
-  CallFlag: 104 #外呼集成的接口号
-  CallUrl: https://a1.7x24cc.com/commonInte #外呼集成接口
-  Integratedid: "8546"
-PublicKey: "791c521fec164e6c"
-Mail:
-  - Addr: smtp.exmail.qq.com
-    Port: 465
-    Pwd: "ue9Rg9Sf4CVtdm5a"
-    User: "public03@topnet.net.cn"
-  - Addr: smtp.exmail.qq.com
-    Port: 465
-    Pwd: "ue9Rg9Sf4CVtdm5a"
-    User: "public03@topnet.net.cn"
-UpdateProjectUrl: "http://192.168.3.206:7778/updateProject"
-ExportDirectory: "D:/top_git_projects/biService"
-CommonExportDir: "D:/top_git_projects/biComFileRes"
-ExportUrl: "https://jybx-webtest.jydev.jianyu360.com/tietaRes"
-ExportCount: 15000
+  KeepDays: 10
+ResourceCenterKey: "resource.rpc" #资源中台rpc
+UserCenterKey: "usercenter.rpc" #用户中台rpc

+ 29 - 0
api/internal/handler/getclueinfolisthandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"bp.jydev.jianyu360.cn/BaseService/biService/api/internal/logic"
+	"bp.jydev.jianyu360.cn/BaseService/biService/api/internal/svc"
+	"bp.jydev.jianyu360.cn/BaseService/biService/api/internal/types"
+	"github.com/zeromicro/go-zero/rest/httpx"
+)
+
+// 线索验重 列表
+func getClueInfoListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.ClueInfoReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+			return
+		}
+
+		l := logic.NewGetClueInfoListLogic(r.Context(), svcCtx)
+		resp, err := l.GetClueInfoList(&req)
+		if err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+		} else {
+			httpx.OkJsonCtx(r.Context(), w, resp)
+		}
+	}
+}

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

@@ -137,6 +137,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/biService/findClueInfo",
 				Handler: findClueInfoHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/biService/getClueInfoList",
+				Handler: getClueInfoListHandler(serverCtx),
+			},
 		},
 		rest.WithMaxBytes(104857600),
 	)

+ 49 - 0
api/internal/logic/getclueinfolistlogic.go

@@ -0,0 +1,49 @@
+package logic
+
+import (
+	"bp.jydev.jianyu360.cn/BaseService/biService/api/internal/svc"
+	"bp.jydev.jianyu360.cn/BaseService/biService/api/internal/types"
+	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/biservice"
+	"context"
+	"github.com/gogf/gf/v2/util/gconv"
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetClueInfoListLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+// 线索验重 列表
+func NewGetClueInfoListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetClueInfoListLogic {
+	return &GetClueInfoListLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *GetClueInfoListLogic) GetClueInfoList(req *types.ClueInfoReq) (resp *types.BiResp, err error) {
+	if req.SearchTxt == "" {
+		return &types.BiResp{
+			Error_code: 0,
+			Error_msg:  "搜索字段不能为空",
+			Data:       nil,
+		}, nil
+	}
+	res, err := l.svcCtx.BiServiceRpc.GetClueInfoList(l.ctx, &biservice.ClueInfoReq{
+		SearchTxt:  req.SearchTxt,
+		SearchType: req.SearchType,
+		PageSize:   req.PageSize,
+		PageNum:    req.PageNum,
+	})
+	if err != nil || res.Data == nil {
+		return &types.BiResp{
+			Error_code: -1,
+			Error_msg:  "严重错误!",
+		}, err
+	}
+	data := gconv.Map(gconv.UnsafeBytesToStr(res.Data))
+	return &types.BiResp{Data: data}, err
+}

+ 8 - 1
api/internal/types/types.go

@@ -176,5 +176,12 @@ type TransferClueReq struct {
 type FindClueInfoReq struct {
 	UserId     string `header:"userId,optional"`
 	PositionId int64  `header:"positionId,optional"`
-	Phone      string `json:"phone"`
+	Phone      string `header:"phone,optional"`
+}
+
+type ClueInfoReq struct {
+	SearchTxt  string `json:"searchTxt"`
+	SearchType string `json:"searchType"` // 0: 线索名称,1: 联系方式,2: 联系人
+	PageSize   int64  `json:"pageSize"`
+	PageNum    int64  `json:"pageNum"`
 }

+ 2 - 2
go.mod

@@ -1,6 +1,6 @@
 module bp.jydev.jianyu360.cn/BaseService/biService
 
-go 1.19
+go 1.20
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20
@@ -14,6 +14,7 @@ require (
 	github.com/tjfoc/gmsm v1.4.1
 	github.com/xuri/excelize/v2 v2.8.0
 	github.com/zeromicro/go-zero v1.6.1
+	go.mongodb.org/mongo-driver v1.13.1
 	google.golang.org/grpc v1.60.0
 	google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1
 )
@@ -96,7 +97,6 @@ require (
 	go.etcd.io/etcd/api/v3 v3.5.11 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.11 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.11 // indirect
-	go.mongodb.org/mongo-driver v1.13.1 // indirect
 	go.opentelemetry.io/otel v1.19.0 // indirect
 	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect

+ 0 - 7
go.sum

@@ -1,6 +1,5 @@
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+jPzpnsDe/OvcshDUUtOTZPYGSJ8=
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
-app.yhyue.com/moapp/jyInfo v1.0.0/go.mod h1:+RjyGNvk7PT1P8cglkVlaj1lLlBXuPB+f5LipoOtgPs=
 app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 h1:cCmWQW8DUBD2nuZNDz9aIe6MrlioxTbdaA2YiJhlzjY=
 app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547/go.mod h1:JvIs8uKjdT963+7JnZGIEcL4ctBiBjwkoz0kNyigE78=
 app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736 h1:7Vl3qq1nJZyRQNyMDoCTC14ScKABZqbUmJP0WpOLnIQ=
@@ -10,8 +9,6 @@ app.yhyue.com/moapp/jybase v0.0.0-20220418104200-46c3fff161c7/go.mod h1:qNRA0sHu
 app.yhyue.com/moapp/jybase v0.0.0-20220420032112-668025915ee4/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20220421060131-a1001013ba46/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jybase v0.0.0-20240205092729-2959d78b7619 h1:rzjJ4pK1P+DcoOYA4+hCOJUoLdSInQa3EHsYY2DKWqA=
-app.yhyue.com/moapp/jybase v0.0.0-20240205092729-2959d78b7619/go.mod h1:fjaD11Z3FIk9EyfOpdKAMQNs7nPZCpT/qKIw1oVsb9w=
 app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20 h1:F1ZHkzo7yHp5eNrZDqQxaXMIKFQU72bsI1dMq3ztJLA=
 app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20/go.mod h1:XHNATN6tsJKHdCB0DbUtFdPPHXexTUFyB3RlO+lUUoM=
 app.yhyue.com/moapp/jypkg v1.13.3 h1:qJdzwbjoddEZW2e96OqUypUz356/aVXlAqJn2kmeksE=
@@ -196,7 +193,6 @@ github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGE
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
 github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
-github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw=
 github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
@@ -224,7 +220,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
 github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
@@ -385,7 +380,6 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y=
-github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -1202,7 +1196,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=

+ 14 - 0
rpc/biService.proto

@@ -258,12 +258,22 @@ message FindClueInfoReq {
 	int64 positionId = 1;
 	string phone=3;
 }
+<<<<<<< HEAD
 message MakeEntRelationReq {
 	string entName = 1;
 }
 message MakeEntRelationResp {
 	int64 status = 1;
 }
+=======
+message ClueInfoReq {
+	string searchTxt = 1;
+	string searchType = 2; // 0: 线索名称,1: 联系方式,2: 联系人
+	int64 pageSize = 3;
+	int64 pageNum = 4;
+}
+
+>>>>>>> master
 service BiService {
 	rpc myDataAsset (MyDataAssetReq) returns (MyDataAssetResp); //我的数据资产
 	rpc addProject (AddProjectReq) returns (AddProjectResp); //添加项目
@@ -289,5 +299,9 @@ service BiService {
 	rpc createClueByPhone(CreateCuleReq) returns(BiReply);
 	rpc transferClueByPhone(TransferClueReq) returns(BiReply);
 	rpc findClueInfo(FindClueInfoReq) returns(BiReply);
+<<<<<<< HEAD
 	rpc makeEntRelation(MakeEntRelationReq) returns(MakeEntRelationResp);
+=======
+	rpc getClueInfoList(ClueInfoReq) returns(BiReply);
+>>>>>>> master
 }

+ 11 - 0
rpc/biservice/biservice.go

@@ -26,6 +26,7 @@ type (
 	ClueImport             = pb.ClueImport
 	ClueImportReq          = pb.ClueImportReq
 	ClueImportResp         = pb.ClueImportResp
+	ClueInfoReq            = pb.ClueInfoReq
 	CompanyReq             = pb.CompanyReq
 	CompanyResp            = pb.CompanyResp
 	CreateCuleReq          = pb.CreateCuleReq
@@ -79,7 +80,11 @@ type (
 		CreateClueByPhone(ctx context.Context, in *CreateCuleReq, opts ...grpc.CallOption) (*BiReply, error)
 		TransferClueByPhone(ctx context.Context, in *TransferClueReq, opts ...grpc.CallOption) (*BiReply, error)
 		FindClueInfo(ctx context.Context, in *FindClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
+<<<<<<< HEAD
 		MakeEntRelation(ctx context.Context, in *MakeEntRelationReq, opts ...grpc.CallOption) (*MakeEntRelationResp, error)
+=======
+		GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
+>>>>>>> master
 	}
 
 	defaultBiService struct {
@@ -213,7 +218,13 @@ func (m *defaultBiService) FindClueInfo(ctx context.Context, in *FindClueInfoReq
 	return client.FindClueInfo(ctx, in, opts...)
 }
 
+<<<<<<< HEAD
 func (m *defaultBiService) MakeEntRelation(ctx context.Context, in *MakeEntRelationReq, opts ...grpc.CallOption) (*MakeEntRelationResp, error) {
 	client := pb.NewBiServiceClient(m.cli.Conn())
 	return client.MakeEntRelation(ctx, in, opts...)
+=======
+func (m *defaultBiService) GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error) {
+	client := pb.NewBiServiceClient(m.cli.Conn())
+	return client.GetClueInfoList(ctx, in, opts...)
+>>>>>>> master
 }

+ 23 - 23
rpc/etc/biservice.yaml

@@ -9,85 +9,89 @@ Mode: test
 Mysql:
   JianYu:
     DBName: jianyu
-    Address: 192.168.3.14:4000
+    Address: 172.20.45.129:4000
     UserName: root
     PassWord: =PDT49#80Z!RVv52_z
     MaxOpenConns: 5
     MaxIdleConns: 5
   JyDoc:
     DBName: jydocs
-    Address: 192.168.3.14:4000
+    Address: 172.20.45.129:4000
     UserName: root
     PassWord: =PDT49#80Z!RVv52_z
     MaxOpenConns: 5
     MaxIdleConns: 5
   Bi:
     DBName: jianyu_subjectdb_test
-    Address: 192.168.3.149:4000
-    UserName: xuzhiheng
-    PassWord: Xzh#20221122K
+    Address: 127.0.0.1:4001
+    UserName: root
+    PassWord: "Tibi#20211222"
     MaxOpenConns: 30
     MaxIdleConns: 30
   Tidb:
     DBName: base_service
-    Address: 192.168.3.217:4000
+    Address: 172.20.45.129:4000
     UserName: root
     PassWord: =PDT49#80Z!RVv52_z
     MaxOpenConns: 5
     MaxIdleConns: 5
   BiTidb:
     DBName: jianyu_subjectdb_test
-    Address: 192.168.3.149:4000
+    Address: 127.0.0.1:4001
     UserName: root
     PassWord: "Tibi#20211222"
     MaxOpenConns: 20
     MaxIdleConns: 20
   CallTidb:
     DBName: Call_Accounting
-    Address: 192.168.3.149:4000
+    Address: 127.0.0.1:4001
     UserName: root
     PassWord: Tibi#20211222
     MaxOpenConns: 5
     MaxIdleConns: 5
   BiService:
     DBName: bi_service
-    Address: 192.168.3.217:4000
+    Address: 172.20.45.129:4000
     UserName: root
     PassWord: =PDT49#80Z!RVv52_z
     MaxOpenConns: 5
     MaxIdleConns: 5
   WorkOrder:
     DBName: work_order
-    Address: 192.168.3.14:4000
+    Address: 172.20.45.129:4000
     UserName: root
     PassWord: =PDT49#80Z!RVv52_z
     MaxOpenConns: 5
     MaxIdleConns: 5
 Mongo:
   Qfw:
-    MongodbAddr: 192.168.3.206:27080
+    MongodbAddr: 172.20.45.129:27002
     DbName: qfw
     Size: 10
   Bidding:
-    MongodbAddr: 192.168.3.206:27080
+    MongodbAddr: 172.20.45.129:27002
     DbName: qfw
     UserName:
     Password:
     Size: 10
   Qyxy:
-    MongodbAddr: 192.168.3.206:27002
+    MongodbAddr: 172.20.45.129:27002
     DbName: mixdata
     UserName: jyDevGroup
     Password: jy@DevGroup
     Size: 10
   PingAn:
+<<<<<<< HEAD
     MongodbAddr: 192.168.3.206:27002
+=======
+    MongodbAddr: 172.20.45.129:27002
+>>>>>>> master
     UserName: root
     DbName: mixdata
     Password: jy@DevGroup
     Size: 4
 Es:
-  Address: http://192.168.3.241:9205,http://192.168.3.149:9200
+  Address: http://172.20.45.129:9206,http://172.20.45.130:9306
   DbSize: 10
   Version: v7
   UserName: ""
@@ -95,7 +99,7 @@ Es:
   Index: bidding
   IType: bidding
 EntEs:
-  Address: http://192.168.3.241:9205,http://192.168.3.149:9200
+  Address: http://172.20.45.129:9206,http://172.20.45.130:9306
   DbSize: 10
   Version: v7
   UserName: ""
@@ -112,8 +116,8 @@ TopicName: jy_position_sync
 NsqUrl: 192.168.3.240:4161
 #合力亿捷account_token存储
 RedisAddress:
-  - newother=192.168.3.149:1712
-  - session=192.168.3.149:1713
+  - newother=172.20.45.129:1712
+  - session=172.20.45.129:1713
 #合力亿捷相关调用参数
 Hlyj:
   Appid: w4w2ex0bnt1n61or
@@ -144,7 +148,7 @@ ResourceCenterKey: resource.rpc
 FileCenterRpc:
   Etcd:
     Hosts:
-      - 192.168.3.206:2379
+      - 172.31.31.203:2379
     Key: filecenter.rpc
 ossBucketName: jytest2022
 ossUrl: https://jytest2022.oss-cn-beijing.aliyuncs.com
@@ -171,8 +175,4 @@ productArr:
     productCode: zx
     personArr:
       - name: 张鹏
-        phone: '13027770072'
-
-
-
-
+        phone: '13027770072'

+ 30 - 0
rpc/internal/logic/getclueinfolistlogic.go

@@ -0,0 +1,30 @@
+package logic
+
+import (
+	"bp.jydev.jianyu360.cn/BaseService/biService/service"
+	"context"
+
+	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/svc"
+	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetClueInfoListLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetClueInfoListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetClueInfoListLogic {
+	return &GetClueInfoListLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+func (l *GetClueInfoListLogic) GetClueInfoList(in *pb.ClueInfoReq) (*pb.BiReply, error) {
+	res := service.CheckingList(in)
+	return res, nil
+}

+ 6 - 0
rpc/internal/server/biserviceserver.go

@@ -142,7 +142,13 @@ func (s *BiServiceServer) FindClueInfo(ctx context.Context, in *pb.FindClueInfoR
 	return l.FindClueInfo(in)
 }
 
+<<<<<<< HEAD
 func (s *BiServiceServer) MakeEntRelation(ctx context.Context, in *pb.MakeEntRelationReq) (*pb.MakeEntRelationResp, error) {
 	l := logic.NewMakeEntRelationLogic(ctx, s.svcCtx)
 	return l.MakeEntRelation(in)
+=======
+func (s *BiServiceServer) GetClueInfoList(ctx context.Context, in *pb.ClueInfoReq) (*pb.BiReply, error) {
+	l := logic.NewGetClueInfoListLogic(ctx, s.svcCtx)
+	return l.GetClueInfoList(in)
+>>>>>>> master
 }

+ 296 - 0
rpc/pb/biService.pb.go

@@ -2686,16 +2686,31 @@ func (x *FindClueInfoReq) GetPhone() string {
 	return ""
 }
 
+<<<<<<< HEAD
 type MakeEntRelationReq struct {
+=======
+type ClueInfoReq struct {
+>>>>>>> master
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
+<<<<<<< HEAD
 	EntName string `protobuf:"bytes,1,opt,name=entName,proto3" json:"entName,omitempty"`
 }
 
 func (x *MakeEntRelationReq) Reset() {
 	*x = MakeEntRelationReq{}
+=======
+	SearchTxt  string `protobuf:"bytes,1,opt,name=searchTxt,proto3" json:"searchTxt,omitempty"`
+	SearchType string `protobuf:"bytes,2,opt,name=searchType,proto3" json:"searchType,omitempty"` // 0: 线索名称,1: 联系方式,2: 联系人
+	PageSize   int64  `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
+	PageNum    int64  `protobuf:"varint,4,opt,name=pageNum,proto3" json:"pageNum,omitempty"`
+}
+
+func (x *ClueInfoReq) Reset() {
+	*x = ClueInfoReq{}
+>>>>>>> master
 	if protoimpl.UnsafeEnabled {
 		mi := &file_biService_proto_msgTypes[38]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -2703,6 +2718,7 @@ func (x *MakeEntRelationReq) Reset() {
 	}
 }
 
+<<<<<<< HEAD
 func (x *MakeEntRelationReq) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
@@ -2710,6 +2726,15 @@ func (x *MakeEntRelationReq) String() string {
 func (*MakeEntRelationReq) ProtoMessage() {}
 
 func (x *MakeEntRelationReq) ProtoReflect() protoreflect.Message {
+=======
+func (x *ClueInfoReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ClueInfoReq) ProtoMessage() {}
+
+func (x *ClueInfoReq) ProtoReflect() protoreflect.Message {
+>>>>>>> master
 	mi := &file_biService_proto_msgTypes[38]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -2721,6 +2746,7 @@ func (x *MakeEntRelationReq) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
+<<<<<<< HEAD
 // Deprecated: Use MakeEntRelationReq.ProtoReflect.Descriptor instead.
 func (*MakeEntRelationReq) Descriptor() ([]byte, []int) {
 	return file_biService_proto_rawDescGZIP(), []int{38}
@@ -2729,10 +2755,21 @@ func (*MakeEntRelationReq) Descriptor() ([]byte, []int) {
 func (x *MakeEntRelationReq) GetEntName() string {
 	if x != nil {
 		return x.EntName
+=======
+// Deprecated: Use ClueInfoReq.ProtoReflect.Descriptor instead.
+func (*ClueInfoReq) Descriptor() ([]byte, []int) {
+	return file_biService_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *ClueInfoReq) GetSearchTxt() string {
+	if x != nil {
+		return x.SearchTxt
+>>>>>>> master
 	}
 	return ""
 }
 
+<<<<<<< HEAD
 type MakeEntRelationResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2776,6 +2813,25 @@ func (*MakeEntRelationResp) Descriptor() ([]byte, []int) {
 func (x *MakeEntRelationResp) GetStatus() int64 {
 	if x != nil {
 		return x.Status
+=======
+func (x *ClueInfoReq) GetSearchType() string {
+	if x != nil {
+		return x.SearchType
+	}
+	return ""
+}
+
+func (x *ClueInfoReq) GetPageSize() int64 {
+	if x != nil {
+		return x.PageSize
+	}
+	return 0
+}
+
+func (x *ClueInfoReq) GetPageNum() int64 {
+	if x != nil {
+		return x.PageNum
+>>>>>>> master
 	}
 	return 0
 }
@@ -2958,6 +3014,7 @@ var file_biService_proto_rawDesc = []byte{
 	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79,
 	0x4e, 0x61, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x52,
 	0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
+<<<<<<< HEAD
 	0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63,
 	0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
 	0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
@@ -3172,6 +3229,221 @@ var file_biService_proto_rawDesc = []byte{
 	0x1a, 0x14, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69,
 	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06,
 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+=======
+	0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe3, 0x01, 0x0a, 0x15,
+	0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x53, 0x68,
+	0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x65, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x65, 0x49, 0x64, 0x4c, 0x69, 0x73,
+	0x74, 0x12, 0x2a, 0x0a, 0x05, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x14, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75,
+	0x65, 0x53, 0x68, 0x6f, 0x77, 0x73, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x16, 0x0a,
+	0x06, 0x49, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x49,
+	0x73, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
+	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+	0x44, 0x22, 0x61, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43,
+	0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69,
+	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f,
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x74,
+	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x10, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x43,
+	0x6f, 0x75, 0x6e, 0x74, 0x22, 0x80, 0x02, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
+	0x75, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x73, 0x73, 0x12, 0x1e, 0x0a,
+	0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a,
+	0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x43, 0x6f, 0x75, 0x6e,
+	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+	0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63,
+	0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+	0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75,
+	0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69,
+	0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x46, 0x75, 0x6c,
+	0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7f, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x74, 0x72,
+	0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a,
+	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x69,
+	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77,
+	0x73, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70,
+	0x6f, 0x72, 0x74, 0x42, 0x79, 0x44, 0x62, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
+	0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
+	0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x05, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61,
+	0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61,
+	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64,
+	0x61, 0x74, 0x61, 0x73, 0x22, 0x3b, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x44, 0x61, 0x74,
+	0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+	0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x71,
+	0x6c, 0x22, 0xef, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x46, 0x69, 0x6c, 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, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a,
+	0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a,
+	0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65,
+	0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49,
+	0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x05, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18,
+	0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66,
+	0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
+	0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53,
+	0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53,
+	0x69, 0x7a, 0x65, 0x22, 0xdc, 0x02, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e,
+	0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65,
+	0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x70,
+	0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f,
+	0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50,
+	0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68,
+	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61,
+	0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e,
+	0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x41,
+	0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
+	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x4f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69,
+	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69,
+	0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6f,
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
+	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x65,
+	0x70, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x65, 0x70, 0x74,
+	0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74,
+	0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x44, 0x61,
+	0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
+	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43,
+	0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67,
+	0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
+	0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74,
+	0x61, 0x22, 0x30, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12,
+	0x22, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x6f, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63,
+	0x65, 0x4e, 0x6f, 0x22, 0x53, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x52,
+	0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,
+	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+	0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x05, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x73, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61,
+	0x74, 0x65, 0x43, 0x75, 0x6c, 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,
+	0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
+	0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x79, 0x0a,
+	0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71,
+	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 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, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x5f, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64,
+	0x43, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75,
+	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
+	0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0b, 0x43, 0x6c,
+	0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x61,
+	0x72, 0x63, 0x68, 0x54, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65,
+	0x61, 0x72, 0x63, 0x68, 0x54, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63,
+	0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61,
+	0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
+	0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
+	0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x04,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x32, 0xd4, 0x08,
+	0x0a, 0x09, 0x42, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x6d,
+	0x79, 0x44, 0x61, 0x74, 0x61, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x0f, 0x2e, 0x4d, 0x79, 0x44,
+	0x61, 0x74, 0x61, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x4d, 0x79,
+	0x44, 0x61, 0x74, 0x61, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a,
+	0x0a, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x2e, 0x41, 0x64,
+	0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x41, 0x64,
+	0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x09,
+	0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x12, 0x0e, 0x2e, 0x41, 0x64, 0x64, 0x50,
+	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x49,
+	0x6e, 0x66, 0x6f, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x08, 0x64, 0x72, 0x61,
+	0x77, 0x43, 0x6c, 0x75, 0x65, 0x12, 0x0c, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x43, 0x6c, 0x75, 0x65,
+	0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x12, 0x19, 0x0a, 0x04, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x08, 0x2e, 0x43,
+	0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x07, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x35, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75,
+	0x65, 0x12, 0x12, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c,
+	0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65,
+	0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x65, 0x49, 0x6d,
+	0x70, 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72,
+	0x74, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64,
+	0x12, 0x0b, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e,
+	0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f,
+	0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x74, 0x12, 0x0e,
+	0x2e, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0f,
+	0x2e, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x27, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x08, 0x2e,
+	0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6d,
+	0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x09, 0x73, 0x71, 0x6c, 0x4d,
+	0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x0d, 0x2e, 0x53, 0x71, 0x6c, 0x4d, 0x61, 0x6e, 0x61, 0x67,
+	0x65, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e,
+	0x0a, 0x06, 0x6d, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0a, 0x2e, 0x4d, 0x79, 0x49, 0x6e, 0x66,
+	0x6f, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25,
+	0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12,
+	0x0a, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69,
+	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x6a,
+	0x65, 0x63, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x0a, 0x2e, 0x45, 0x78, 0x70, 0x6f,
+	0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
+	0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x66, 0x6f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x0b,
+	0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69,
+	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x0e, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70,
+	0x61, 0x6e, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
+	0x79, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x45, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+	0x43, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x16, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72,
+	0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71,
+	0x1a, 0x17, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6c, 0x75,
+	0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x65, 0x6e,
+	0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x79,
+	0x44, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
+	0x1e, 0x0a, 0x06, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0a, 0x2e, 0x55, 0x70, 0x46, 0x69,
+	0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
+	0x28, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4d, 0x61, 0x69,
+	0x6c, 0x12, 0x0c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a,
+	0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x0d, 0x61, 0x64, 0x64,
+	0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x2e, 0x41, 0x63, 0x63,
+	0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x41, 0x63, 0x63,
+	0x65, 0x70, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x11, 0x63,
+	0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x65, 0x42, 0x79, 0x50, 0x68, 0x6f, 0x6e, 0x65,
+	0x12, 0x0e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71,
+	0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x13, 0x74, 0x72,
+	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x65, 0x42, 0x79, 0x50, 0x68, 0x6f, 0x6e,
+	0x65, 0x12, 0x10, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x65,
+	0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a,
+	0x0c, 0x66, 0x69, 0x6e, 0x64, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e,
+	0x46, 0x69, 0x6e, 0x64, 0x43, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a,
+	0x08, 0x2e, 0x42, 0x69, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x67, 0x65, 0x74,
+	0x43, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0c, 0x2e, 0x43,
+	0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x08, 0x2e, 0x42, 0x69, 0x52,
+	0x65, 0x70, 0x6c, 0x79, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x33,
+>>>>>>> master
 }
 
 var (
@@ -3186,7 +3458,11 @@ func file_biService_proto_rawDescGZIP() []byte {
 	return file_biService_proto_rawDescData
 }
 
+<<<<<<< HEAD
 var file_biService_proto_msgTypes = make([]protoimpl.MessageInfo, 40)
+=======
+var file_biService_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
+>>>>>>> master
 var file_biService_proto_goTypes = []interface{}{
 	(*MyDataAssetReq)(nil),         // 0: MyDataAssetReq
 	(*MyDataAssetResp)(nil),        // 1: MyDataAssetResp
@@ -3226,8 +3502,12 @@ var file_biService_proto_goTypes = []interface{}{
 	(*CreateCuleReq)(nil),          // 35: CreateCuleReq
 	(*TransferClueReq)(nil),        // 36: TransferClueReq
 	(*FindClueInfoReq)(nil),        // 37: FindClueInfoReq
+<<<<<<< HEAD
 	(*MakeEntRelationReq)(nil),     // 38: MakeEntRelationReq
 	(*MakeEntRelationResp)(nil),    // 39: MakeEntRelationResp
+=======
+	(*ClueInfoReq)(nil),            // 38: ClueInfoReq
+>>>>>>> master
 }
 var file_biService_proto_depIdxs = []int32{
 	2,  // 0: MyDataAssetResp.data:type_name -> MyDataAsset
@@ -3263,7 +3543,11 @@ var file_biService_proto_depIdxs = []int32{
 	35, // 30: BiService.createClueByPhone:input_type -> CreateCuleReq
 	36, // 31: BiService.transferClueByPhone:input_type -> TransferClueReq
 	37, // 32: BiService.findClueInfo:input_type -> FindClueInfoReq
+<<<<<<< HEAD
 	38, // 33: BiService.makeEntRelation:input_type -> MakeEntRelationReq
+=======
+	38, // 33: BiService.getClueInfoList:input_type -> ClueInfoReq
+>>>>>>> master
 	1,  // 34: BiService.myDataAsset:output_type -> MyDataAssetResp
 	4,  // 35: BiService.addProject:output_type -> AddProjectResp
 	6,  // 36: BiService.getInfoId:output_type -> GetInfoIdResp
@@ -3288,7 +3572,11 @@ var file_biService_proto_depIdxs = []int32{
 	10, // 55: BiService.createClueByPhone:output_type -> BiReply
 	10, // 56: BiService.transferClueByPhone:output_type -> BiReply
 	10, // 57: BiService.findClueInfo:output_type -> BiReply
+<<<<<<< HEAD
 	39, // 58: BiService.makeEntRelation:output_type -> MakeEntRelationResp
+=======
+	10, // 58: BiService.getClueInfoList:output_type -> BiReply
+>>>>>>> master
 	34, // [34:59] is the sub-list for method output_type
 	9,  // [9:34] is the sub-list for method input_type
 	9,  // [9:9] is the sub-list for extension type_name
@@ -3759,6 +4047,7 @@ func file_biService_proto_init() {
 			}
 		}
 		file_biService_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
+<<<<<<< HEAD
 			switch v := v.(*MakeEntRelationReq); i {
 			case 0:
 				return &v.state
@@ -3772,6 +4061,9 @@ func file_biService_proto_init() {
 		}
 		file_biService_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*MakeEntRelationResp); i {
+=======
+			switch v := v.(*ClueInfoReq); i {
+>>>>>>> master
 			case 0:
 				return &v.state
 			case 1:
@@ -3789,7 +4081,11 @@ func file_biService_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_biService_proto_rawDesc,
 			NumEnums:      0,
+<<<<<<< HEAD
 			NumMessages:   40,
+=======
+			NumMessages:   39,
+>>>>>>> master
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 44 - 0
rpc/pb/biService_grpc.pb.go

@@ -43,7 +43,11 @@ const (
 	BiService_CreateClueByPhone_FullMethodName   = "/BiService/createClueByPhone"
 	BiService_TransferClueByPhone_FullMethodName = "/BiService/transferClueByPhone"
 	BiService_FindClueInfo_FullMethodName        = "/BiService/findClueInfo"
+<<<<<<< HEAD
 	BiService_MakeEntRelation_FullMethodName     = "/BiService/makeEntRelation"
+=======
+	BiService_GetClueInfoList_FullMethodName     = "/BiService/getClueInfoList"
+>>>>>>> master
 )
 
 // BiServiceClient is the client API for BiService service.
@@ -74,7 +78,11 @@ type BiServiceClient interface {
 	CreateClueByPhone(ctx context.Context, in *CreateCuleReq, opts ...grpc.CallOption) (*BiReply, error)
 	TransferClueByPhone(ctx context.Context, in *TransferClueReq, opts ...grpc.CallOption) (*BiReply, error)
 	FindClueInfo(ctx context.Context, in *FindClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
+<<<<<<< HEAD
 	MakeEntRelation(ctx context.Context, in *MakeEntRelationReq, opts ...grpc.CallOption) (*MakeEntRelationResp, error)
+=======
+	GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
+>>>>>>> master
 }
 
 type biServiceClient struct {
@@ -301,9 +309,15 @@ func (c *biServiceClient) FindClueInfo(ctx context.Context, in *FindClueInfoReq,
 	return out, nil
 }
 
+<<<<<<< HEAD
 func (c *biServiceClient) MakeEntRelation(ctx context.Context, in *MakeEntRelationReq, opts ...grpc.CallOption) (*MakeEntRelationResp, error) {
 	out := new(MakeEntRelationResp)
 	err := c.cc.Invoke(ctx, BiService_MakeEntRelation_FullMethodName, in, out, opts...)
+=======
+func (c *biServiceClient) GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error) {
+	out := new(BiReply)
+	err := c.cc.Invoke(ctx, BiService_GetClueInfoList_FullMethodName, in, out, opts...)
+>>>>>>> master
 	if err != nil {
 		return nil, err
 	}
@@ -338,7 +352,11 @@ type BiServiceServer interface {
 	CreateClueByPhone(context.Context, *CreateCuleReq) (*BiReply, error)
 	TransferClueByPhone(context.Context, *TransferClueReq) (*BiReply, error)
 	FindClueInfo(context.Context, *FindClueInfoReq) (*BiReply, error)
+<<<<<<< HEAD
 	MakeEntRelation(context.Context, *MakeEntRelationReq) (*MakeEntRelationResp, error)
+=======
+	GetClueInfoList(context.Context, *ClueInfoReq) (*BiReply, error)
+>>>>>>> master
 	mustEmbedUnimplementedBiServiceServer()
 }
 
@@ -418,8 +436,13 @@ func (UnimplementedBiServiceServer) TransferClueByPhone(context.Context, *Transf
 func (UnimplementedBiServiceServer) FindClueInfo(context.Context, *FindClueInfoReq) (*BiReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindClueInfo not implemented")
 }
+<<<<<<< HEAD
 func (UnimplementedBiServiceServer) MakeEntRelation(context.Context, *MakeEntRelationReq) (*MakeEntRelationResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method MakeEntRelation not implemented")
+=======
+func (UnimplementedBiServiceServer) GetClueInfoList(context.Context, *ClueInfoReq) (*BiReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetClueInfoList not implemented")
+>>>>>>> master
 }
 func (UnimplementedBiServiceServer) mustEmbedUnimplementedBiServiceServer() {}
 
@@ -866,12 +889,18 @@ func _BiService_FindClueInfo_Handler(srv interface{}, ctx context.Context, dec f
 	return interceptor(ctx, in, info, handler)
 }
 
+<<<<<<< HEAD
 func _BiService_MakeEntRelation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(MakeEntRelationReq)
+=======
+func _BiService_GetClueInfoList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ClueInfoReq)
+>>>>>>> master
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
+<<<<<<< HEAD
 		return srv.(BiServiceServer).MakeEntRelation(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
@@ -880,6 +909,16 @@ func _BiService_MakeEntRelation_Handler(srv interface{}, ctx context.Context, de
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(BiServiceServer).MakeEntRelation(ctx, req.(*MakeEntRelationReq))
+=======
+		return srv.(BiServiceServer).GetClueInfoList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: BiService_GetClueInfoList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BiServiceServer).GetClueInfoList(ctx, req.(*ClueInfoReq))
+>>>>>>> master
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -988,8 +1027,13 @@ var BiService_ServiceDesc = grpc.ServiceDesc{
 			Handler:    _BiService_FindClueInfo_Handler,
 		},
 		{
+<<<<<<< HEAD
 			MethodName: "makeEntRelation",
 			Handler:    _BiService_MakeEntRelation_Handler,
+=======
+			MethodName: "getClueInfoList",
+			Handler:    _BiService_GetClueInfoList_Handler,
+>>>>>>> master
 		},
 	},
 	Streams:  []grpc.StreamDesc{},

+ 174 - 0
service/clueInfoList.go

@@ -0,0 +1,174 @@
+package service
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"bp.jydev.jianyu360.cn/BaseService/biService/entity"
+	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
+	"fmt"
+	"github.com/gogf/gf/v2/util/gconv"
+	"math"
+)
+
+type ClueInfo struct {
+	Id                  int64  `json:"id"`
+	Uid                 string `json:"uid"`
+	ClueName            string `json:"cluename"`
+	PositionId          int64  `json:"position_id"`
+	SeatNumber          string `json:"seatNumber"`
+	CompanyNature       int    `json:"company_natural"`     // 公司性质  集团/非集团
+	CompanyNatureStr    string `json:"company_natural_str"` // 公司性质  集团/非集团
+	LockStatus          int    `json:"lock_status"`         // 锁定状态
+	LockStatusStr       string `json:"lock_status_str"`
+	LockPerson          string `json:"lock_person"` // 锁定人
+	LockTime            string `json:"lock_time"`   // 锁定时间
+	LockPositionId      int64  `json:"lock_position_id"`
+	Name                string `json:"name"`              // 联系人
+	SalesPeople         string `json:"sales_people"`      // 销售人员
+	IsAssign            int    `json:"is_assign"`         // 线索池
+	IsAssignStr         string `json:"is_assign_str"`     // 线索池
+	CustomerDemand      string `json:"customer_demand"`   // 客户需求
+	IntendedProducts    string `json:"intended_products"` // 意向产品
+	CustomerBudget      int64  `json:"customer_budget"`   // 客户预算
+	Content             string `json:"content"`           // 最近跟进内容
+	TrailTime           string `json:"trail_time"`        // 最近跟进时间
+	StartTrailTime      string `json:"start_trail_time"`  // 开始跟进时间
+	ClueStatus          string `json:"clue_status"`       // 线索状态
+	IsTransfer          int    `json:"is_transfer"`
+	CompanyVerification int    `json:"company_verification"`
+	//客成
+	SucManager string `json:"suc_manager"` // 客成经理
+	// 企业
+	LegalPerson string `json:"legal_person"` // 法人
+
+	ClueOwn string `json:"clue_own"` // 线索归属
+
+}
+
+func CheckingList(in *pb.ClueInfoReq) *pb.BiReply {
+	sql0 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id 
+	    WHERE a1.cluename LIKE '%%%s%%' ORDER BY a1.lock_status ASC, a1.trail_time DESC, a1.id ASC limit ? offset ?`
+	cq0 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 WHERE a1.cluename LIKE '%%%s%%'`
+
+	sql1 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code 
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id 
+		WHERE a1.name = '%s' ORDER BY a1.lock_status ASC, a1.trail_time DESC, a1.id ASC limit ? offset ?`
+	cq1 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 WHERE a1.name = '%s'`
+
+	sql2 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id 
+		WHERE a1.phone = '%s' ORDER BY a1.lock_status ASC, a1.trail_time DESC, a1.id ASC limit ? offset ?`
+	cq2 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 WHERE a1.phone = '%s'`
+
+	sql, cq := "", ""
+	if in.SearchType == "0" {
+		sql = sql0
+		cq = cq0
+	} else if in.SearchType == "1" {
+		sql = sql1
+		cq = cq1
+	} else if in.SearchType == "2" {
+		sql = sql2
+		cq = cq2
+	}
+
+	if in.PageSize == 0 {
+		in.PageSize = 10
+	}
+	rows := entity.JyBiTidb.Query(fmt.Sprintf(sql, in.SearchTxt), in.PageSize, (in.PageNum-1)*in.PageSize)
+	var resultList []*ClueInfo
+	for _, m := range *rows {
+		resultList = append(resultList, getClueInfo(m))
+	}
+	count := entity.JyBiTidb.CountBySql(fmt.Sprintf(cq, in.SearchTxt))
+	totalPage := int64(math.Ceil(float64(count) / float64(in.PageSize)))
+	result := map[string]interface{}{
+		"list":  resultList,
+		"count": count,
+	}
+	if totalPage > in.PageNum {
+		result["hasNextPage"] = true
+	} else {
+		result["hasNextPage"] = false
+	}
+	return &pb.BiReply{
+		Data: gconv.Bytes(result),
+	}
+}
+
+func getClueInfo(tmp map[string]interface{}) *ClueInfo {
+	clueInfo := &ClueInfo{
+		Id:                  common.Int64All(tmp["id"]),
+		Uid:                 common.ObjToString(tmp["uid"]),
+		ClueName:            common.ObjToString(tmp["cluename"]),
+		SeatNumber:          common.ObjToString(tmp["seatNumber"]),
+		PositionId:          common.Int64All(tmp["position_id"]),
+		CompanyNature:       common.IntAll(tmp["company_nature"]),
+		CompanyNatureStr:    common.ObjToString(common.If(common.IntAll(tmp["company_nature"]) == 0, "非集团公司", "集团公司")),
+		LockStatus:          common.IntAll(tmp["lock_status"]),
+		LockTime:            common.ObjToString(tmp["lock_time"]),
+		LockPositionId:      common.Int64All(tmp["lock_position_id"]),
+		Name:                common.ObjToString(tmp["name"]),
+		IsAssign:            common.IntAll(tmp["is_assign"]),
+		CustomerDemand:      common.ObjToString(tmp["customer_demand"]),
+		IntendedProducts:    common.ObjToString(tmp["intended_products"]),
+		CustomerBudget:      common.Int64All(tmp["customer_budget"]),
+		Content:             common.ObjToString(tmp["content"]),
+		TrailTime:           common.ObjToString(tmp["trail_time"]),
+		SalesPeople:         common.ObjToString(tmp["sales_people"]),
+		SucManager:          common.ObjToString(common.If(common.ObjToString(tmp["customer"]) != "", common.ObjToString(tmp["customer"]), "/")),
+		ClueStatus:          common.ObjToString(tmp["trailstatus_name"]),
+		IsTransfer:          common.IntAll(tmp["is_transfer"]),
+		CompanyVerification: common.IntAll(tmp["company_verification"]),
+	}
+	switch clueInfo.IsAssign {
+	case 0:
+		clueInfo.IsAssignStr = "公海"
+	case 1:
+		clueInfo.IsAssignStr = "私海"
+	case -1:
+		clueInfo.IsAssignStr = "退出公海"
+	case -2:
+		clueInfo.IsAssignStr = "域外"
+	case -3:
+		clueInfo.IsAssignStr = "冻结池"
+	case -4:
+		clueInfo.IsAssignStr = "内部员工"
+	case -5:
+		clueInfo.IsAssignStr = "存在大会员子账号权益,临时处理"
+	case -6:
+		clueInfo.IsAssignStr = "特殊原因,不允许销售进行跟进"
+	}
+	switch clueInfo.LockStatus {
+	case 1:
+		clueInfo.LockStatusStr = "已锁定"
+	case 2:
+		clueInfo.LockStatusStr = "未锁定"
+	case 3:
+		clueInfo.LockStatusStr = "无需锁定"
+	}
+	clueInfo.LockPerson, _ = getSeatNumber(common.Int64All(tmp["lock_position_id"]))
+	if common.IntAll(tmp["company_verification"]) == 1 {
+		ent, b := entity.MgoQyxy.FindOneByField("qyxy_std", map[string]interface{}{"company_name": clueInfo.ClueName},
+			map[string]interface{}{"legal_person": 1})
+		if b && len(*ent) > 0 {
+			clueInfo.LegalPerson = common.ObjToString((*ent)["legal_person"])
+		}
+	}
+	if common.IntAll(tmp["is_transfer"]) == 1 {
+		clueInfo.ClueOwn = "客户成功组"
+	} else if clueInfo.IsAssign == 0 && clueInfo.PositionId == 0 {
+		clueInfo.ClueOwn = "销售一部、三部"
+	} else if clueInfo.IsAssign == -4 && clueInfo.PositionId == 0 {
+		clueInfo.ClueOwn = "/"
+	} else if clueInfo.PositionId != 0 {
+		info := entity.JyBiTidb.FindOne("dwd_d_crm_department_level_succbi", map[string]interface{}{"position_id": clueInfo.PositionId}, "dept_name", "")
+		if info != nil && len(*info) > 0 {
+			clueInfo.ClueOwn = common.ObjToString((*info)["dept_name"])
+		}
+	}
+	return clueInfo
+}