Jelajahi Sumber

线索验重列表

jianghan 5 bulan lalu
induk
melakukan
6b5d70ba57

+ 13 - 2
api/biService.api

@@ -3,7 +3,7 @@ syntax = "v1"
 type (
 	biResp {
 		Error_code int64       `json:"error_code"` //响应代码
-		Error_msg  string      `json:"error_msg"`  //响应消息
+		Error_msg  string      `json:"error_msg"` //响应消息
 		Data       interface{} `json:"data"`
 	}
 	myDataAssetReq {
@@ -154,6 +154,12 @@ type (
 		UserId     string `header:"userId,optional"`
 		PositionId int64  `header:"positionId,optional"`
 	}
+	ClueInfoReq {
+		SearchTxt  string `json:"searchTxt"`
+		SearchType int    `json:"searchType"` // 0: 线索名称,1: 联系方式,2: 联系人
+		PageSize   int64  `json:"pageSize"`
+		PageNum    int64  `json:"pageNum"`
+	}
 )
 
 @server (
@@ -249,4 +255,9 @@ 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)
+		}
+	}
+}

+ 64 - 42
api/internal/handler/routes.go

@@ -1,4 +1,6 @@
 // Code generated by goctl. DO NOT EDIT.
+// goctl 1.7.6
+
 package handler
 
 import (
@@ -14,38 +16,41 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 		[]rest.Route{
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/myDataAsset",
-				Handler: MyDataAssetHandler(serverCtx),
+				Path:    "/biService/ClueAdd",
+				Handler: ClueAddHandler(serverCtx),
 			},
 			{
+				// 新增受理单
 				Method:  http.MethodPost,
-				Path:    "/biService/addProject",
-				Handler: AddProjectReqHandler(serverCtx),
+				Path:    "/biService/addAcceptance",
+				Handler: addAcceptanceHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/getInfoId",
-				Handler: GetInfoIdHandler(serverCtx),
+				Path:    "/biService/addProject",
+				Handler: AddProjectReqHandler(serverCtx),
 			},
 			{
+				// 资讯全量导出
 				Method:  http.MethodPost,
-				Path:    "/biService/drawClue",
-				Handler: DrawClueHandler(serverCtx),
+				Path:    "/biService/allInfoExport",
+				Handler: allInfoExportHandler(serverCtx),
 			},
 			{
+				// 项目全量导出
 				Method:  http.MethodPost,
-				Path:    "/biService/call",
-				Handler: CallHandler(serverCtx),
+				Path:    "/biService/allProjectExport",
+				Handler: allProjectExportHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/distributeClue",
-				Handler: DistributeClueHandler(serverCtx),
+				Path:    "/biService/autoFollow",
+				Handler: AutoFollowHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/distributeClueShow",
-				Handler: DistributeClueShowHandler(serverCtx),
+				Path:    "/biService/call",
+				Handler: CallHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
@@ -54,88 +59,105 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/ClueAdd",
-				Handler: ClueAddHandler(serverCtx),
+				Path:    "/biService/clueImportTt",
+				Handler: ClueImportTlHandler(serverCtx),
 			},
 			{
+				// 创建线索
 				Method:  http.MethodPost,
-				Path:    "/biService/clueImportTt",
-				Handler: ClueImportTlHandler(serverCtx),
+				Path:    "/biService/createClueByPhone",
+				Handler: createClueHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/autoFollow",
-				Handler: AutoFollowHandler(serverCtx),
+				Path:    "/biService/distributeClue",
+				Handler: DistributeClueHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/sqlManage",
-				Handler: sqlManageHandler(serverCtx),
+				Path:    "/biService/distributeClueShow",
+				Handler: DistributeClueShowHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/myInfo",
-				Handler: MyinfoHandler(serverCtx),
+				Path:    "/biService/drawClue",
+				Handler: DrawClueHandler(serverCtx),
 			},
 			{
+				// 线索查询
 				Method:  http.MethodPost,
-				Path:    "/biService/resEmpower",
-				Handler: ResEmpowerHandler(serverCtx),
+				Path:    "/biService/findClueInfo",
+				Handler: findClueInfoHandler(serverCtx),
 			},
 			{
+				// 线索验重 列表
 				Method:  http.MethodPost,
-				Path:    "/biService/allProjectExport",
-				Handler: allProjectExportHandler(serverCtx),
+				Path:    "/biService/getClueInfoList",
+				Handler: getClueInfoListHandler(serverCtx),
 			},
 			{
+				// 公司类型
 				Method:  http.MethodPost,
-				Path:    "/biService/allInfoExport",
-				Handler: allInfoExportHandler(serverCtx),
+				Path:    "/biService/getCompanyType",
+				Handler: getCompanyTypeHandler(serverCtx),
 			},
 			{
+				Method:  http.MethodPost,
+				Path:    "/biService/getInfoId",
+				Handler: GetInfoIdHandler(serverCtx),
+			},
+			{
+				// 资讯操作
 				Method:  http.MethodPost,
 				Path:    "/biService/infoOperate",
 				Handler: infoOperateHandler(serverCtx),
 			},
 			{
 				Method:  http.MethodPost,
-				Path:    "/biService/getCompanyType",
-				Handler: getCompanyTypeHandler(serverCtx),
+				Path:    "/biService/myDataAsset",
+				Handler: MyDataAssetHandler(serverCtx),
 			},
 			{
+				// 用户身份
 				Method:  http.MethodPost,
-				Path:    "/biService/sendMail",
-				Handler: sendMailHandler(serverCtx),
+				Path:    "/biService/myInfo",
+				Handler: MyinfoHandler(serverCtx),
 			},
 			{
+				// 资源中台授权
 				Method:  http.MethodPost,
-				Path:    "/biService/upFile",
-				Handler: upFileHandler(serverCtx),
+				Path:    "/biService/resEmpower",
+				Handler: ResEmpowerHandler(serverCtx),
 			},
 			{
+				// 发送邮件
 				Method:  http.MethodPost,
 				Path:    "/biService/sendCommonndMail",
 				Handler: sendComMailHandler(serverCtx),
 			},
 			{
+				// 数据导出(通用),发邮件
 				Method:  http.MethodPost,
-				Path:    "/biService/addAcceptance",
-				Handler: addAcceptanceHandler(serverCtx),
+				Path:    "/biService/sendMail",
+				Handler: sendMailHandler(serverCtx),
 			},
 			{
+				// bi通用接口
 				Method:  http.MethodPost,
-				Path:    "/biService/createClueByPhone",
-				Handler: createClueHandler(serverCtx),
+				Path:    "/biService/sqlManage",
+				Handler: sqlManageHandler(serverCtx),
 			},
 			{
+				// 客成线索移交
 				Method:  http.MethodPost,
 				Path:    "/biService/transferClueByPhone",
 				Handler: transferClueSuccHandler(serverCtx),
 			},
 			{
+				// 附件上传
 				Method:  http.MethodPost,
-				Path:    "/biService/findClueInfo",
-				Handler: findClueInfoHandler(serverCtx),
+				Path:    "/biService/upFile",
+				Handler: upFileHandler(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: int64(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
+}

+ 14 - 15
api/internal/svc/servicecontext.go

@@ -5,7 +5,6 @@ import (
 	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/biservice"
 	"bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/resource"
 	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
-	"github.com/zeromicro/go-zero/core/discov"
 	"github.com/zeromicro/go-zero/zrpc"
 )
 
@@ -20,19 +19,19 @@ func NewServiceContext(c config.Config) *ServiceContext {
 	return &ServiceContext{
 		Config:       c,
 		BiServiceRpc: biservice.NewBiService(zrpc.MustNewClient(c.BiServiceRpc)),
-		ResourceCenterRpc: resource.NewResource(zrpc.MustNewClient(zrpc.RpcClientConf{
-			Etcd: discov.EtcdConf{
-				Hosts: c.BiServiceRpc.Etcd.Hosts,
-				//Hosts: []string{"192.168.3.149:2379"},
-				Key: c.ResourceCenterKey,
-			},
-		})),
-		UserCenterRpc: usercenter.NewUserCenter(zrpc.MustNewClient(zrpc.RpcClientConf{
-			Etcd: discov.EtcdConf{
-				Hosts: c.BiServiceRpc.Etcd.Hosts,
-				//Hosts: []string{"192.168.3.149:2379"},
-				Key: c.UserCenterKey,
-			},
-		})),
+		//ResourceCenterRpc: resource.NewResource(zrpc.MustNewClient(zrpc.RpcClientConf{
+		//	Etcd: discov.EtcdConf{
+		//		Hosts: c.BiServiceRpc.Etcd.Hosts,
+		//		//Hosts: []string{"192.168.3.149:2379"},
+		//		Key: c.ResourceCenterKey,
+		//	},
+		//})),
+		//UserCenterRpc: usercenter.NewUserCenter(zrpc.MustNewClient(zrpc.RpcClientConf{
+		//	Etcd: discov.EtcdConf{
+		//		Hosts: c.BiServiceRpc.Etcd.Hosts,
+		//		//Hosts: []string{"192.168.3.149:2379"},
+		//		Key: c.UserCenterKey,
+		//	},
+		//})),
 	}
 }

+ 111 - 102
api/internal/types/types.go

@@ -1,42 +1,57 @@
 // Code generated by goctl. DO NOT EDIT.
-package types
+// goctl 1.7.6
 
-type BiResp struct {
-	Error_code int64       `json:"error_code"` //响应代码
-	Error_msg  string      `json:"error_msg"`  //响应消息
-	Data       interface{} `json:"data"`
-}
+package types
 
-type MyDataAssetReq struct {
-	UserId    string `header:"userId,optional"`
-	NewUserId int64  `header:"newUserId,optional"`
-	EntUserId int64  `header:"entUserId,optional"`
+type AcceptanceReq struct {
+	ProposeType     int64  `json:"proposeType,optional"`
+	Propose_time    string `json:"proposeTime,optional"`
+	Channel         string `json:"channel,optional"`
+	Acceptance_type int64  `json:"acceptanceType,optional"`
+	Status          int64  `json:"status,optional"`
+	Over_time       string `json:"overTime,optional"`
+	Remark          string `json:"remark,optional"`
+	PositionId      int64  `header:"positionId,optional"`
+	DeptId          string `header:"entDeptId,optional"` //部门id
+	EntUserName     string `header:"entUserName,optional"`
+	ParamData       string `json:"paramData,optional"`
 }
 
-type AddProjectReq struct {
-	PositionId   int64  `header:"positionId,optional"`
-	Source       int64  `json:"source,optional"`
-	InfoId       string `json:"info_id,optional"`
-	PositionType int64  `header:"positionType,optional"`
-	AccountId    int64  `header:"accountId,optional"`
-	CompanyName  string `header:"entName,optional"`
-	UserName     string `header:"userName,optional"`
-	UserId       int64  `header:"newUserId,optional"`
-	EntId        int64  `header:"entId,optional"`
-	EntUserName  string `header:"entUserName,optional"`
+type ClueAddReq struct {
+	Phone            string `json:"phone"`
+	Username         string `json:"username,optional"`
+	Source           string `json:"source"`
+	Status999        string `json:"status999"`
+	Owner            string `json:"owner"`
+	EmpNo            string `json:"empNo"`
+	Company          string `json:"company,optional"`
+	IsPolicymaker    string `json:"isPolicymaker,optional"`
+	BelongToIndustry string `json:"belongToIndustry,optional"`
+	Job              string `json:"job,optional"`
+	CustomerNeeds    string `json:"customerNeeds,optional"`
+	BelongTo         string `json:"belongTo,optional"`
+	WantGoods        string `json:"wantGoods,optional"`
+	CustomerBudget   string `json:"customerBudget,optional"`
 }
 
-type GetInfoIdReq struct {
-	PositionId int64 `header:"positionId,optional"`
+type ClueImportReq struct {
+	PositionId int64  `header:"positionId,optional"`
+	Pcbh       string `json:"pcbh"`
 }
 
-type DrawClueReq struct {
-	PositionId int64 `header:"positionId,optional"`
-	Count      int64 `json:"count,optional"`
+type ClueInfoReq struct {
+	SearchTxt  string `json:"searchTxt"`
+	SearchType int    `json:"searchType"` // 0: 线索名称,1: 联系方式,2: 联系人
+	PageSize   int64  `json:"pageSize"`
+	PageNum    int64  `json:"pageNum"`
 }
 
-type CallReq struct {
+type CreateClueReq struct {
+	AppId      string `header:"appId,default=10000"`
+	UserId     string `header:"userId,optional"`
+	BaseUserId int64  `header:"newUserId"`
 	PositionId int64  `header:"positionId,optional"`
+	EntUserId  int64  `header:"entUserId,optional"`
 	Phone      string `json:"phone"`
 }
 
@@ -57,31 +72,35 @@ type DistributeClueShowReq struct {
 	UpdatePositionID int64                    `json:"updatePositionID"`
 }
 
-type ClueImportReq struct {
+type ExportByDbReq struct {
+	Token    string                   `json:"token"`
+	Title    string                   `json:"title"`
+	Content  string                   `json:"content"`
+	Mails    string                   `json:"mails"`
+	FileName string                   `json:"filename"`
+	Datas    []map[string]interface{} `json:"datas"`
+}
+
+type ExportReq struct {
+	Mail       string   `json:"mail"`
+	Mapping    []string `json:"mapping"`
+	PositionId int64    `header:"positionId,optional"`
+}
+
+type FindClueInfoReq struct {
+	UserId     string `header:"userId,optional"`
+	Phone      string `header:"phone,optional"`
 	PositionId int64  `header:"positionId,optional"`
-	Pcbh       string `json:"pcbh"`
 }
 
-type ClueAddReq struct {
-	Phone            string `json:"phone"`
-	Username         string `json:"username,optional"`
-	Source           string `json:"source"`
-	Status999        string `json:"status999"`
-	Owner            string `json:"owner"`
-	EmpNo            string `json:"empNo"`
-	Company          string `json:"company,optional"`
-	IsPolicymaker    string `json:"isPolicymaker,optional"`
-	BelongToIndustry string `json:"belongToIndustry,optional"`
-	Job              string `json:"job,optional"`
-	CustomerNeeds    string `json:"customerNeeds,optional"`
-	BelongTo         string `json:"belongTo,optional"`
-	WantGoods        string `json:"wantGoods,optional"`
-	CustomerBudget   string `json:"customerBudget,optional"`
+type MyInfoReq struct {
+	Bid string `json:"bid,optional"`
+	Sid string `json:"sid"`
 }
 
-type SqlManageReq struct {
-	Id     float64 `json:"id"`
-	Params []Param `json:"params"`
+type OperateReq struct {
+	NewId string `json:"newId"`
+	Type  int64  `json:"type"`
 }
 
 type Param struct {
@@ -89,11 +108,6 @@ type Param struct {
 	Type  string `json:"type"`
 }
 
-type MyInfoReq struct {
-	Bid string `json:"bid,optional"`
-	Sid string `json:"sid"`
-}
-
 type ResEmpowerReq struct {
 	EntId        int64  `header:"entId"`
 	ReqType      int64  `json:"reqType"`
@@ -102,28 +116,24 @@ type ResEmpowerReq struct {
 	PositionId   string `json:"positionId"`
 }
 
-type ExportReq struct {
-	Mail       string   `json:"mail"`
-	Mapping    []string `json:"mapping"`
-	PositionId int64    `header:"positionId,optional"`
-}
-
-type OperateReq struct {
-	NewId string `json:"newId"`
-	Type  int64  `json:"type"`
+type SendMailReq struct {
+	Title   string `json:"title"`
+	Content string `json:"content"`
+	Mails   string `json:"mails"`
 }
 
-type GetCompanyTypeReq struct {
-	CompanyName string `json:"companyName"`
+type SqlManageReq struct {
+	Id     float64 `json:"id"`
+	Params []Param `json:"params"`
 }
 
-type ExportByDbReq struct {
-	Token    string                   `json:"token"`
-	Title    string                   `json:"title"`
-	Content  string                   `json:"content"`
-	Mails    string                   `json:"mails"`
-	FileName string                   `json:"filename"`
-	Datas    []map[string]interface{} `json:"datas"`
+type TransferClueReq struct {
+	UserId     string `header:"userId,optional"`
+	BaseUserId int64  `header:"newUserId"`
+	PositionId int64  `header:"positionId,optional"`
+	EntUserId  int64  `header:"entUserId,optional"`
+	Phone      string `json:"phone"`
+	OrderNo    string `json:"orderNo"`
 }
 
 type UpFileReq struct {
@@ -135,46 +145,45 @@ type UpFileReq struct {
 	FileType   string `form:"fileType"`
 }
 
-type SendMailReq struct {
-	Title   string `json:"title"`
-	Content string `json:"content"`
-	Mails   string `json:"mails"`
+type AddProjectReq struct {
+	PositionId   int64  `header:"positionId,optional"`
+	Source       int64  `json:"source,optional"`
+	InfoId       string `json:"info_id,optional"`
+	PositionType int64  `header:"positionType,optional"`
+	AccountId    int64  `header:"accountId,optional"`
+	CompanyName  string `header:"entName,optional"`
+	UserName     string `header:"userName,optional"`
+	UserId       int64  `header:"newUserId,optional"`
+	EntId        int64  `header:"entId,optional"`
+	EntUserName  string `header:"entUserName,optional"`
 }
 
-type AcceptanceReq struct {
-	ProposeType     int64  `json:"proposeType,optional"`
-	Propose_time    string `json:"proposeTime,optional"`
-	Channel         string `json:"channel,optional"`
-	Acceptance_type int64  `json:"acceptanceType,optional"`
-	Status          int64  `json:"status,optional"`
-	Over_time       string `json:"overTime,optional"`
-	Remark          string `json:"remark,optional"`
-	PositionId      int64  `header:"positionId,optional"`
-	DeptId          string `header:"entDeptId,optional"` //部门id
-	EntUserName     string `header:"entUserName,optional"`
-	ParamData       string `json:"paramData,optional"`
+type BiResp struct {
+	Error_code int64       `json:"error_code"` //响应代码
+	Error_msg  string      `json:"error_msg"`  //响应消息
+	Data       interface{} `json:"data"`
 }
 
-type CreateClueReq struct {
-	AppId      string `header:"appId,default=10000"`
-	UserId     string `header:"userId,optional"`
-	BaseUserId int64  `header:"newUserId"`
+type CallReq struct {
 	PositionId int64  `header:"positionId,optional"`
-	EntUserId  int64  `header:"entUserId,optional"`
 	Phone      string `json:"phone"`
 }
 
-type TransferClueReq struct {
-	UserId     string `header:"userId,optional"`
-	BaseUserId int64  `header:"newUserId"`
-	PositionId int64  `header:"positionId,optional"`
-	EntUserId  int64  `header:"entUserId,optional"`
-	Phone      string `json:"phone"`
-	OrderNo    string `json:"orderNo"`
+type DrawClueReq struct {
+	PositionId int64 `header:"positionId,optional"`
+	Count      int64 `json:"count,optional"`
 }
 
-type FindClueInfoReq struct {
-	UserId     string `header:"userId,optional"`
-	PositionId int64  `header:"positionId,optional"`
-	Phone      string `json:"phone"`
+type GetCompanyTypeReq struct {
+	CompanyName string `json:"companyName"`
+}
+
+type GetInfoIdReq struct {
+	PositionId int64 `header:"positionId,optional"`
+}
+
+type MyDataAssetReq struct {
+	UserId    string `header:"userId,optional"`
+	NewUserId int64  `header:"newUserId,optional"`
+	EntUserId int64  `header:"entUserId,optional"`
 }

+ 22 - 23
go.mod

@@ -1,6 +1,6 @@
 module bp.jydev.jianyu360.cn/BaseService/biService
 
-go 1.19
+go 1.22.0
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20
@@ -14,8 +14,9 @@ require (
 	github.com/tjfoc/gmsm v1.4.1
 	github.com/xuri/excelize/v2 v2.8.0
 	github.com/zeromicro/go-zero v1.6.1
-	google.golang.org/grpc v1.60.0
-	google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1
+	go.mongodb.org/mongo-driver v1.13.1
+	google.golang.org/grpc v1.71.0
+	google.golang.org/protobuf v1.36.4
 )
 
 require (
@@ -27,7 +28,7 @@ require (
 	github.com/BurntSushi/toml v1.2.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.2.1 // indirect
-	github.com/cespare/xxhash/v2 v2.2.0 // indirect
+	github.com/cespare/xxhash/v2 v2.3.0 // indirect
 	github.com/clbanning/mxj/v2 v2.7.0 // indirect
 	github.com/coreos/go-semver v0.3.1 // indirect
 	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
@@ -37,7 +38,7 @@ require (
 	github.com/fatih/color v1.16.0 // indirect
 	github.com/fsnotify/fsnotify v1.7.0 // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect
-	github.com/go-logr/logr v1.2.4 // indirect
+	github.com/go-logr/logr v1.4.2 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
 	github.com/go-openapi/jsonreference v0.20.2 // indirect
@@ -47,13 +48,13 @@ require (
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
 	github.com/golang/mock v1.6.0 // indirect
-	github.com/golang/protobuf v1.5.3 // indirect
+	github.com/golang/protobuf v1.5.4 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
 	github.com/gomodule/redigo v2.0.0+incompatible // indirect
 	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.6.0 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
-	github.com/google/uuid v1.4.0 // indirect
+	github.com/google/uuid v1.6.0 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
@@ -96,34 +97,32 @@ 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/auto/sdk v1.1.0 // indirect
+	go.opentelemetry.io/otel v1.34.0 // indirect
 	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
 	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect
 	go.opentelemetry.io/otel/exporters/zipkin v1.19.0 // indirect
-	go.opentelemetry.io/otel/metric v1.19.0 // indirect
-	go.opentelemetry.io/otel/sdk v1.19.0 // indirect
-	go.opentelemetry.io/otel/trace v1.19.0 // indirect
+	go.opentelemetry.io/otel/metric v1.34.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.34.0 // indirect
+	go.opentelemetry.io/otel/trace v1.34.0 // indirect
 	go.opentelemetry.io/proto/otlp v1.0.0 // indirect
 	go.uber.org/atomic v1.10.0 // indirect
 	go.uber.org/automaxprocs v1.5.3 // indirect
 	go.uber.org/multierr v1.9.0 // indirect
 	go.uber.org/zap v1.24.0 // indirect
-	golang.org/x/crypto v0.16.0 // indirect
-	golang.org/x/net v0.19.0 // indirect
-	golang.org/x/oauth2 v0.13.0 // indirect
-	golang.org/x/sync v0.5.0 // indirect
-	golang.org/x/sys v0.15.0 // indirect
-	golang.org/x/term v0.15.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
+	golang.org/x/crypto v0.32.0 // indirect
+	golang.org/x/net v0.34.0 // indirect
+	golang.org/x/oauth2 v0.25.0 // indirect
+	golang.org/x/sync v0.10.0 // indirect
+	golang.org/x/sys v0.29.0 // indirect
+	golang.org/x/term v0.28.0 // indirect
+	golang.org/x/text v0.21.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
-	google.golang.org/appengine v1.6.8 // indirect
-	google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect
-	google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect

+ 58 - 52
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=
@@ -106,9 +103,11 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302 h1:uvdUDbHQHO85qeSydJtItA4T55Pw6BtAejd0APRJOCE=
+github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/miniredis/v2 v2.17.0/go.mod h1:gquAfGbzn92jvtrSC69+6zZnwSODVXVpYDRaGhWaL6I=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
 github.com/alicebob/miniredis/v2 v2.31.0 h1:ObEFUNlJwoIiyjxdrYF0QIDE7qXcLc7D3WpSH4c22PU=
+github.com/alicebob/miniredis/v2 v2.31.0/go.mod h1:UB/T2Uztp7MlFSDakaX1sTXUv5CASoprx0wulRT6HBg=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/antonlindstrom/pgstore v0.0.0-20200229204646-b08ebf1105e0/go.mod h1:2Ti6VUHVxpC0VSmTZzEvpzysnaGAfGBOoMIz5ykPyyw=
 github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
@@ -132,8 +131,8 @@ github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -196,7 +195,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 +222,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=
@@ -232,8 +229,8 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
 github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
-github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
 github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI=
 github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
 github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
@@ -269,6 +266,7 @@ github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
 github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
 github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM=
 github.com/go-xorm/xorm v0.7.9/go.mod h1:XiVxrMMIhFkwSkh96BW7PACl7UhLtx2iJIHMdmjh5sQ=
@@ -311,7 +309,8 @@ github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w
 github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
 github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
+github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=
+github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -341,8 +340,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
@@ -390,8 +389,8 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4
 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=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
-github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
@@ -516,6 +515,7 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
 github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
@@ -615,6 +615,7 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
 github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
 github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
 github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
+github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM=
 github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -624,6 +625,7 @@ github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAl
 github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
 github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
 github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
+github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
 github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
 github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
 github.com/openzipkin/zipkin-go v0.3.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ=
@@ -697,7 +699,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
 github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
 github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
@@ -746,8 +749,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F
 github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
 github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
@@ -787,6 +791,7 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t
 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
 github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
 github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE=
+github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
 github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
 github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
 github.com/zeromicro/go-zero v1.3.2/go.mod h1:DEj3Fwj1Ui1ltsgf6YqwTL9nD4+tYzIRX0c1pWtQo1E=
@@ -818,12 +823,14 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
+go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
+go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
 go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg=
 go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
 go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
 go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM=
-go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
-go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
+go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
+go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
 go.opentelemetry.io/otel/exporters/jaeger v1.3.0/go.mod h1:KoYHi1BtkUPncGSRtCe/eh1ijsnePhSkxwzz07vU0Fc=
 go.opentelemetry.io/otel/exporters/jaeger v1.8.0/go.mod h1:GbWg+ng88rDtx+id26C34QLqw2erqJeAjsCx9AFeHfE=
 go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
@@ -840,19 +847,21 @@ go.opentelemetry.io/otel/exporters/zipkin v1.3.0/go.mod h1:LxGGfHIYbvsFnrJtBcazb
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
 go.opentelemetry.io/otel/exporters/zipkin v1.19.0 h1:EGY0h5mGliP9o/nIkVuLI0vRiQqmsYOcbwCuotksO1o=
 go.opentelemetry.io/otel/exporters/zipkin v1.19.0/go.mod h1:JQgTGJP11yi3o4GHzIWYodhPisxANdqxF1eHwDSnJrI=
-go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
-go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
+go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
+go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
 go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM=
 go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
 go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c=
-go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
-go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
+go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
+go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
+go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
+go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
 go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
 go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
 go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
 go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4=
-go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
-go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
+go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
+go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
 go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
@@ -870,6 +879,7 @@ go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnw
 go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
+go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
@@ -907,8 +917,8 @@ golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5y
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
-golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
-golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
+golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
+golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -995,8 +1005,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
 golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
-golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
-golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1004,8 +1014,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr
 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY=
-golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
+golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
+golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1020,8 +1030,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
-golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1100,8 +1110,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
-golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1109,8 +1119,8 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
 golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
-golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
-golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1125,8 +1135,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1195,14 +1205,14 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
 golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 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=
@@ -1228,8 +1238,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww
 google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
-google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -1265,12 +1273,10 @@ google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
 google.golang.org/genproto v0.0.0-20220228195345-15d65a4533f7/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
 google.golang.org/genproto v0.0.0-20220602131408-e326c6e8e9c8/go.mod h1:yKyY4AMRwFiC8yMMNaMi+RkCnjZJt9LoWuvhXjMs+To=
-google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA=
-google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI=
-google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b h1:CIC2YMXmIhYw6evmhPxBKJ4fmLbOFtXQN/GV3XOZR8k=
-google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc=
+google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24=
+google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
 google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -1292,8 +1298,8 @@ google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ5
 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
 google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
 google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
-google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k=
-google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
+google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
+google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1308,8 +1314,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1 h1:fk72uXZyuZiTtW5tgd63jyVK6582lF61nRC/kGv6vCA=
-google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
+google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=

+ 8 - 0
rpc/biService.proto

@@ -257,6 +257,13 @@ message FindClueInfoReq {
 	int64 positionId = 1;
 	string phone=3;
 }
+message ClueInfoReq {
+	string searchTxt = 1;
+	int64 searchType = 2; // 0: 线索名称,1: 联系方式,2: 联系人
+	int64 pageSize = 3;
+	int64 pageNum = 4;
+}
+
 service BiService {
 	rpc myDataAsset (MyDataAssetReq) returns (MyDataAssetResp); //我的数据资产
 	rpc addProject (AddProjectReq) returns (AddProjectResp); //添加项目
@@ -282,4 +289,5 @@ service BiService {
 	rpc createClueByPhone(CreateCuleReq) returns(BiReply);
 	rpc transferClueByPhone(TransferClueReq) returns(BiReply);
 	rpc findClueInfo(FindClueInfoReq) returns(BiReply);
+	rpc getClueInfoList(ClueInfoReq) returns(BiReply);
 }

+ 14 - 16
rpc/biservice.go

@@ -9,10 +9,8 @@ import (
 	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/server"
 	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/svc"
 	"bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
-	"bp.jydev.jianyu360.cn/BaseService/fileCenter/rpc/filecenter"
 	"flag"
 	"fmt"
-	"github.com/nsqio/go-nsq"
 	"github.com/zeromicro/go-zero/core/conf"
 	"github.com/zeromicro/go-zero/core/logx"
 	"github.com/zeromicro/go-zero/zrpc"
@@ -41,22 +39,22 @@ func main() {
 	entity.InitConfig(IC.IC.ExportDirectory, IC.IC.ComFileDir, IC.IC.UpdateProjectUrl, IC.IC.ExportUrl, IC.IC.ComFileUrl, IC.IC.ExportCount)
 	//合力亿捷
 	entity.GetHlyj(IC.IC.Hlyj.Appid, IC.IC.Hlyj.Account, IC.IC.Hlyj.Secret, IC.IC.Hlyj.TokenUrl, IC.IC.Hlyj.CallUrl, IC.IC.Hlyj.Integratedid, IC.IC.Hlyj.CallFlag)
-	entity.InitMiddleground(IC.IC.RpcServerConf.Etcd.Hosts, IC.IC.ResourceCenterKey)
+	//entity.InitMiddleground(IC.IC.RpcServerConf.Etcd.Hosts, IC.IC.ResourceCenterKey)
 
-	entity.FileCenterRpc = filecenter.NewFileCenter(zrpc.MustNewClient(IC.IC.FileCenterRpc))
-	entity.OssBucketName = IC.IC.OssBucketName
-	entity.OssUrl = IC.IC.OssUrl
+	//entity.FileCenterRpc = filecenter.NewFileCenter(zrpc.MustNewClient(IC.IC.FileCenterRpc))
+	//entity.OssBucketName = IC.IC.OssBucketName
+	//entity.OssUrl = IC.IC.OssUrl
 	//nsq
-	config := nsq.NewConfig()
-	consumer, err := nsq.NewConsumer(IC.IC.TopicName, "jy_position_sync", config)
-	if err != nil {
-		fmt.Println(err)
-	}
-	consumer.AddHandler(&entity.Handler{})
-	err = consumer.ConnectToNSQLookupd(IC.IC.NsqUrl)
-	if err != nil {
-		fmt.Println(err)
-	}
+	//config := nsq.NewConfig()
+	//consumer, err := nsq.NewConsumer(IC.IC.TopicName, "jy_position_sync", config)
+	//if err != nil {
+	//	fmt.Println(err)
+	//}
+	//consumer.AddHandler(&entity.Handler{})
+	//err = consumer.ConnectToNSQLookupd(IC.IC.NsqUrl)
+	//if err != nil {
+	//	fmt.Println(err)
+	//}
 	s := zrpc.MustNewServer(IC.IC.RpcServerConf, func(grpcServer *grpc.Server) {
 		pb.RegisterBiServiceServer(grpcServer, srv)
 	})

+ 8 - 0
rpc/biservice/biservice.go

@@ -1,4 +1,5 @@
 // Code generated by goctl. DO NOT EDIT.
+// goctl 1.7.6
 // Source: biService.proto
 
 package biservice
@@ -26,6 +27,7 @@ type (
 	ClueImport             = pb.ClueImport
 	ClueImportReq          = pb.ClueImportReq
 	ClueImportResp         = pb.ClueImportResp
+	ClueInfoReq            = pb.ClueInfoReq
 	CompanyReq             = pb.CompanyReq
 	CompanyResp            = pb.CompanyResp
 	CreateCuleReq          = pb.CreateCuleReq
@@ -77,6 +79,7 @@ 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)
+		GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
 	}
 
 	defaultBiService struct {
@@ -209,3 +212,8 @@ func (m *defaultBiService) FindClueInfo(ctx context.Context, in *FindClueInfoReq
 	client := pb.NewBiServiceClient(m.cli.Conn())
 	return client.FindClueInfo(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...)
+}

+ 25 - 23
rpc/etc/biservice.yaml

@@ -9,79 +9,85 @@ 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:
+    MongodbAddr: 172.20.45.129:27002
+    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: ""
@@ -89,7 +95,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: ""
@@ -106,8 +112,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
@@ -138,7 +144,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
@@ -165,8 +171,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

@@ -1,4 +1,5 @@
 // Code generated by goctl. DO NOT EDIT.
+// goctl 1.7.6
 // Source: biService.proto
 
 package server
@@ -141,3 +142,8 @@ func (s *BiServiceServer) FindClueInfo(ctx context.Context, in *pb.FindClueInfoR
 	l := logic.NewFindClueInfoLogic(ctx, s.svcCtx)
 	return l.FindClueInfo(in)
 }
+
+func (s *BiServiceServer) GetClueInfoList(ctx context.Context, in *pb.ClueInfoReq) (*pb.BiReply, error) {
+	l := logic.NewGetClueInfoListLogic(ctx, s.svcCtx)
+	return l.GetClueInfoList(in)
+}

File diff ditekan karena terlalu besar
+ 233 - 304
rpc/pb/biService.pb.go


+ 105 - 32
rpc/pb/biService_grpc.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.3.0
-// - protoc             v3.15.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
 // source: biService.proto
 
 package pb
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	BiService_MyDataAsset_FullMethodName         = "/BiService/myDataAsset"
@@ -43,6 +43,7 @@ const (
 	BiService_CreateClueByPhone_FullMethodName   = "/BiService/createClueByPhone"
 	BiService_TransferClueByPhone_FullMethodName = "/BiService/transferClueByPhone"
 	BiService_FindClueInfo_FullMethodName        = "/BiService/findClueInfo"
+	BiService_GetClueInfoList_FullMethodName     = "/BiService/getClueInfoList"
 )
 
 // BiServiceClient is the client API for BiService service.
@@ -73,6 +74,7 @@ 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)
+	GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error)
 }
 
 type biServiceClient struct {
@@ -84,8 +86,9 @@ func NewBiServiceClient(cc grpc.ClientConnInterface) BiServiceClient {
 }
 
 func (c *biServiceClient) MyDataAsset(ctx context.Context, in *MyDataAssetReq, opts ...grpc.CallOption) (*MyDataAssetResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(MyDataAssetResp)
-	err := c.cc.Invoke(ctx, BiService_MyDataAsset_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_MyDataAsset_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -93,8 +96,9 @@ func (c *biServiceClient) MyDataAsset(ctx context.Context, in *MyDataAssetReq, o
 }
 
 func (c *biServiceClient) AddProject(ctx context.Context, in *AddProjectReq, opts ...grpc.CallOption) (*AddProjectResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AddProjectResp)
-	err := c.cc.Invoke(ctx, BiService_AddProject_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_AddProject_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -102,8 +106,9 @@ func (c *biServiceClient) AddProject(ctx context.Context, in *AddProjectReq, opt
 }
 
 func (c *biServiceClient) GetInfoId(ctx context.Context, in *AddProjectReq, opts ...grpc.CallOption) (*GetInfoIdResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetInfoIdResp)
-	err := c.cc.Invoke(ctx, BiService_GetInfoId_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_GetInfoId_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -111,8 +116,9 @@ func (c *biServiceClient) GetInfoId(ctx context.Context, in *AddProjectReq, opts
 }
 
 func (c *biServiceClient) DrawClue(ctx context.Context, in *DrawClueReq, opts ...grpc.CallOption) (*AddProjectResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AddProjectResp)
-	err := c.cc.Invoke(ctx, BiService_DrawClue_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_DrawClue_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -120,8 +126,9 @@ func (c *biServiceClient) DrawClue(ctx context.Context, in *DrawClueReq, opts ..
 }
 
 func (c *biServiceClient) Call(ctx context.Context, in *CallReq, opts ...grpc.CallOption) (*BiResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiResp)
-	err := c.cc.Invoke(ctx, BiService_Call_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_Call_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -129,8 +136,9 @@ func (c *biServiceClient) Call(ctx context.Context, in *CallReq, opts ...grpc.Ca
 }
 
 func (c *biServiceClient) DistributeClue(ctx context.Context, in *DistributeClueReq, opts ...grpc.CallOption) (*AddProjectResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AddProjectResp)
-	err := c.cc.Invoke(ctx, BiService_DistributeClue_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_DistributeClue_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -138,8 +146,9 @@ func (c *biServiceClient) DistributeClue(ctx context.Context, in *DistributeClue
 }
 
 func (c *biServiceClient) ClueImport(ctx context.Context, in *ClueImportReq, opts ...grpc.CallOption) (*ClueImportResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClueImportResp)
-	err := c.cc.Invoke(ctx, BiService_ClueImport_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_ClueImport_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -147,8 +156,9 @@ func (c *biServiceClient) ClueImport(ctx context.Context, in *ClueImportReq, opt
 }
 
 func (c *biServiceClient) ClueAdd(ctx context.Context, in *ClueAddReq, opts ...grpc.CallOption) (*AddProjectResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AddProjectResp)
-	err := c.cc.Invoke(ctx, BiService_ClueAdd_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_ClueAdd_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -156,8 +166,9 @@ func (c *biServiceClient) ClueAdd(ctx context.Context, in *ClueAddReq, opts ...g
 }
 
 func (c *biServiceClient) ClueImportTt(ctx context.Context, in *ClueImportReq, opts ...grpc.CallOption) (*ClueImportResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClueImportResp)
-	err := c.cc.Invoke(ctx, BiService_ClueImportTt_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_ClueImportTt_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -165,8 +176,9 @@ func (c *biServiceClient) ClueImportTt(ctx context.Context, in *ClueImportReq, o
 }
 
 func (c *biServiceClient) AutoFollow(ctx context.Context, in *CallReq, opts ...grpc.CallOption) (*ClueImportResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClueImportResp)
-	err := c.cc.Invoke(ctx, BiService_AutoFollow_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_AutoFollow_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -174,8 +186,9 @@ func (c *biServiceClient) AutoFollow(ctx context.Context, in *CallReq, opts ...g
 }
 
 func (c *biServiceClient) SqlManage(ctx context.Context, in *SqlManageReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_SqlManage_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_SqlManage_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -183,8 +196,9 @@ func (c *biServiceClient) SqlManage(ctx context.Context, in *SqlManageReq, opts
 }
 
 func (c *biServiceClient) MyInfo(ctx context.Context, in *MyInfoReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_MyInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_MyInfo_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -192,8 +206,9 @@ func (c *biServiceClient) MyInfo(ctx context.Context, in *MyInfoReq, opts ...grp
 }
 
 func (c *biServiceClient) AllInfoExport(ctx context.Context, in *ExportReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_AllInfoExport_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_AllInfoExport_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -201,8 +216,9 @@ func (c *biServiceClient) AllInfoExport(ctx context.Context, in *ExportReq, opts
 }
 
 func (c *biServiceClient) AllProjectExport(ctx context.Context, in *ExportReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_AllProjectExport_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_AllProjectExport_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -210,8 +226,9 @@ func (c *biServiceClient) AllProjectExport(ctx context.Context, in *ExportReq, o
 }
 
 func (c *biServiceClient) InfoOperate(ctx context.Context, in *OperateReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_InfoOperate_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_InfoOperate_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -219,8 +236,9 @@ func (c *biServiceClient) InfoOperate(ctx context.Context, in *OperateReq, opts
 }
 
 func (c *biServiceClient) GetCompanyType(ctx context.Context, in *CompanyReq, opts ...grpc.CallOption) (*CompanyResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CompanyResp)
-	err := c.cc.Invoke(ctx, BiService_GetCompanyType_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_GetCompanyType_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -228,8 +246,9 @@ func (c *biServiceClient) GetCompanyType(ctx context.Context, in *CompanyReq, op
 }
 
 func (c *biServiceClient) DistributeClueShow(ctx context.Context, in *DistributeClueShowReq, opts ...grpc.CallOption) (*DistributeClueShowResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(DistributeClueShowResp)
-	err := c.cc.Invoke(ctx, BiService_DistributeClueShow_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_DistributeClueShow_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -237,8 +256,9 @@ func (c *biServiceClient) DistributeClueShow(ctx context.Context, in *Distribute
 }
 
 func (c *biServiceClient) SendMail(ctx context.Context, in *ExportByDbReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_SendMail_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_SendMail_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -246,8 +266,9 @@ func (c *biServiceClient) SendMail(ctx context.Context, in *ExportByDbReq, opts
 }
 
 func (c *biServiceClient) UpFile(ctx context.Context, in *UpFileReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_UpFile_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_UpFile_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -255,8 +276,9 @@ func (c *biServiceClient) UpFile(ctx context.Context, in *UpFileReq, opts ...grp
 }
 
 func (c *biServiceClient) SendCommonMail(ctx context.Context, in *SendMailReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_SendCommonMail_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_SendCommonMail_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -264,8 +286,9 @@ func (c *biServiceClient) SendCommonMail(ctx context.Context, in *SendMailReq, o
 }
 
 func (c *biServiceClient) AddAcceptance(ctx context.Context, in *AcceptanceReq, opts ...grpc.CallOption) (*AcceptanceResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AcceptanceResp)
-	err := c.cc.Invoke(ctx, BiService_AddAcceptance_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_AddAcceptance_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -273,8 +296,9 @@ func (c *biServiceClient) AddAcceptance(ctx context.Context, in *AcceptanceReq,
 }
 
 func (c *biServiceClient) CreateClueByPhone(ctx context.Context, in *CreateCuleReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_CreateClueByPhone_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_CreateClueByPhone_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -282,8 +306,9 @@ func (c *biServiceClient) CreateClueByPhone(ctx context.Context, in *CreateCuleR
 }
 
 func (c *biServiceClient) TransferClueByPhone(ctx context.Context, in *TransferClueReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_TransferClueByPhone_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_TransferClueByPhone_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -291,8 +316,19 @@ func (c *biServiceClient) TransferClueByPhone(ctx context.Context, in *TransferC
 }
 
 func (c *biServiceClient) FindClueInfo(ctx context.Context, in *FindClueInfoReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(BiReply)
-	err := c.cc.Invoke(ctx, BiService_FindClueInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, BiService_FindClueInfo_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *biServiceClient) GetClueInfoList(ctx context.Context, in *ClueInfoReq, opts ...grpc.CallOption) (*BiReply, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(BiReply)
+	err := c.cc.Invoke(ctx, BiService_GetClueInfoList_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -301,7 +337,7 @@ func (c *biServiceClient) FindClueInfo(ctx context.Context, in *FindClueInfoReq,
 
 // BiServiceServer is the server API for BiService service.
 // All implementations must embed UnimplementedBiServiceServer
-// for forward compatibility
+// for forward compatibility.
 type BiServiceServer interface {
 	MyDataAsset(context.Context, *MyDataAssetReq) (*MyDataAssetResp, error)
 	AddProject(context.Context, *AddProjectReq) (*AddProjectResp, error)
@@ -327,12 +363,16 @@ type BiServiceServer interface {
 	CreateClueByPhone(context.Context, *CreateCuleReq) (*BiReply, error)
 	TransferClueByPhone(context.Context, *TransferClueReq) (*BiReply, error)
 	FindClueInfo(context.Context, *FindClueInfoReq) (*BiReply, error)
+	GetClueInfoList(context.Context, *ClueInfoReq) (*BiReply, error)
 	mustEmbedUnimplementedBiServiceServer()
 }
 
-// UnimplementedBiServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedBiServiceServer struct {
-}
+// UnimplementedBiServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedBiServiceServer struct{}
 
 func (UnimplementedBiServiceServer) MyDataAsset(context.Context, *MyDataAssetReq) (*MyDataAssetResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method MyDataAsset not implemented")
@@ -406,7 +446,11 @@ func (UnimplementedBiServiceServer) TransferClueByPhone(context.Context, *Transf
 func (UnimplementedBiServiceServer) FindClueInfo(context.Context, *FindClueInfoReq) (*BiReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindClueInfo not implemented")
 }
+func (UnimplementedBiServiceServer) GetClueInfoList(context.Context, *ClueInfoReq) (*BiReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetClueInfoList not implemented")
+}
 func (UnimplementedBiServiceServer) mustEmbedUnimplementedBiServiceServer() {}
+func (UnimplementedBiServiceServer) testEmbeddedByValue()                   {}
 
 // UnsafeBiServiceServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to BiServiceServer will
@@ -416,6 +460,13 @@ type UnsafeBiServiceServer interface {
 }
 
 func RegisterBiServiceServer(s grpc.ServiceRegistrar, srv BiServiceServer) {
+	// If the following call pancis, it indicates UnimplementedBiServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&BiService_ServiceDesc, srv)
 }
 
@@ -851,6 +902,24 @@ func _BiService_FindClueInfo_Handler(srv interface{}, ctx context.Context, dec f
 	return interceptor(ctx, in, info, handler)
 }
 
+func _BiService_GetClueInfoList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ClueInfoReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		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))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // BiService_ServiceDesc is the grpc.ServiceDesc for BiService service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -954,6 +1023,10 @@ var BiService_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "findClueInfo",
 			Handler:    _BiService_FindClueInfo_Handler,
 		},
+		{
+			MethodName: "getClueInfoList",
+			Handler:    _BiService_GetClueInfoList_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "biService.proto",

+ 129 - 0
service/clueInfoList.go

@@ -0,0 +1,129 @@
+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 {
+	ClueName         string `json:"cluename"`
+	CompanyNature    int    `json:"company_natural"`   // 公司性质  集团/非集团
+	LockStatus       int    `json:"lock_status"`       // 锁定状态
+	LockPerson       string `json:"lock_person"`       // 锁定人
+	LockTime         string `json:"lock_time"`         // 锁定时间
+	Name             string `json:"name"`              // 联系人
+	SalesPeople      int    `json:"sales_people"`      // 销售人员
+	IsAssign         int    `json:"is_assign"`         // 线索池
+	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"`       // 线索状态
+	//客成
+	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 FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+    	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 WHERE a1.cluename LIKE '%%%s%%' limit ? offset ?`
+	cq0 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name WHERE a1.cluename LIKE '%%%s%%'`
+
+	sql1 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+    	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 WHERE a1.name = '%s' limit ? offset ?`
+	cq1 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name WHERE a1.name = '%s'`
+
+	sql2 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+    	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 WHERE a1.phone = '%s' limit ? offset ?`
+	cq2 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 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
+	}
+	if in.PageNum == 0 {
+		in.PageNum = 1
+	}
+	rows := entity.JyBiTidb.Query(fmt.Sprintf(sql, in.SearchTxt), in.PageSize, in.PageNum)
+	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{
+		ClueName:         common.ObjToString(tmp["cluename"]),
+		CompanyNature:    common.IntAll(tmp["COMPANY_NATURE"]),
+		LockStatus:       common.IntAll(tmp["lock_status"]),
+		LockTime:         common.ObjToString(tmp["lock_time"]),
+		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"]),
+		SucManager:       common.ObjToString(tmp["customer"]),
+		ClueStatus:       common.ObjToString(tmp["trailstatus_name"]),
+	}
+	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 == -1 && tmp["position_id"] == nil {
+		clueInfo.ClueOwn = "销售一部、三部"
+	} else if clueInfo.IsAssign == -4 && tmp["position_id"] == nil {
+		clueInfo.ClueOwn = "/"
+	} else if tmp["position_id"] != nil {
+		info := entity.JyBiTidb.FindOne("dwd_d_crm_department_level_succbi", map[string]interface{}{"position_id": tmp["position_id"]}, "dept_name", "")
+		if info != nil && len(*info) > 0 {
+			clueInfo.ClueOwn = common.ObjToString(tmp["dept_name"])
+		}
+	}
+	return clueInfo
+}

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini