From 5df75a03e1ea452ac26c235be34a7b471b22cd7a Mon Sep 17 00:00:00 2001 From: jagger Date: Wed, 28 Feb 2024 15:40:02 +0800 Subject: [PATCH] :sparkles: adapter supports fuzzy name query Signed-off-by: jagger Former-commit-id: fd15722cd33fd520a8be56b5fb906551307000ca --- api/desc/core/pcm-core.api | 8 ++++++++ api/desc/pcm.api | 6 +++--- .../handler/adapters/adapterslisthandler.go | 2 +- ...terhandler.go => getadapterrelationhandler.go} | 8 ++++---- .../handler/adapters/getclustersumhandler.go | 12 ++++-------- api/internal/handler/routes.go | 2 +- api/internal/logic/adapters/adapterslistlogic.go | 9 +++++++-- ...clusterlogic.go => getadapterrelationlogic.go} | 15 ++++++++++----- api/internal/types/types.go | 9 +++++++++ pkg/utils/httputils/http.go | 1 - pkg/utils/snowflake.go | 6 +++--- 11 files changed, 50 insertions(+), 28 deletions(-) rename api/internal/handler/adapters/{getadapterclusterhandler.go => getadapterrelationhandler.go} (71%) rename api/internal/logic/adapters/{getadapterclusterlogic.go => getadapterrelationlogic.go} (58%) diff --git a/api/desc/core/pcm-core.api b/api/desc/core/pcm-core.api index e3a7b8bf..629e49fc 100644 --- a/api/desc/core/pcm-core.api +++ b/api/desc/core/pcm-core.api @@ -668,6 +668,14 @@ type ( ) type ( + AdapterQueryReq { + Id string `form:"id,optional" db:"id"` + Name string `form:"name,optional"` + Type string `form:"type,optional"` + Nickname string `form:"nickname,optional"` + Version string `form:"version,optional"` + Server string `form:"server,optional"` + } AdapterReq { Id string `json:"id,optional" db:"id"` Name string `json:"name,optional"` diff --git a/api/desc/pcm.api b/api/desc/pcm.api index 23ba8b0b..23172780 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -582,7 +582,7 @@ service pcm { service pcm { @handler AdaptersListHandler - get /adapter/list (AdapterReq) returns (AdapterListResp) + get /adapter/list (AdapterQueryReq) returns (AdapterListResp) @handler CreateAdapterHandler post /adapter/create (AdapterReq) returns (AdapterResp) @@ -611,8 +611,8 @@ service pcm { @handler GetClusterHandler get /adapter/cluster/get (ClusterDelReq) returns (ClusterResp) - @handler GetAdapterClusterHandler - get /adapter/relation (AdapterReq) returns (AdapterRelationResp) + @handler GetAdapterRelationHandler + get /adapter/relation (AdapterQueryReq) returns (AdapterRelationResp) @handler GetClusterSumHandler get /adapter/clusterSum (clusterSumReq) returns (clusterSumReqResp) diff --git a/api/internal/handler/adapters/adapterslisthandler.go b/api/internal/handler/adapters/adapterslisthandler.go index b2b17e5e..712dc949 100644 --- a/api/internal/handler/adapters/adapterslisthandler.go +++ b/api/internal/handler/adapters/adapterslisthandler.go @@ -11,7 +11,7 @@ import ( func AdaptersListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - var req types.AdapterReq + var req types.AdapterQueryReq if err := httpx.Parse(r, &req); err != nil { result.ParamErrorResult(r, w, err) return diff --git a/api/internal/handler/adapters/getadapterclusterhandler.go b/api/internal/handler/adapters/getadapterrelationhandler.go similarity index 71% rename from api/internal/handler/adapters/getadapterclusterhandler.go rename to api/internal/handler/adapters/getadapterrelationhandler.go index a6e325ae..4031a5df 100644 --- a/api/internal/handler/adapters/getadapterclusterhandler.go +++ b/api/internal/handler/adapters/getadapterrelationhandler.go @@ -9,16 +9,16 @@ import ( "net/http" ) -func GetAdapterClusterHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { +func GetAdapterRelationHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - var req types.AdapterReq + var req types.AdapterQueryReq if err := httpx.Parse(r, &req); err != nil { result.ParamErrorResult(r, w, err) return } - l := adapters.NewGetAdapterClusterLogic(r.Context(), svcCtx) - resp, err := l.GetAdapterCluster(&req) + l := adapters.NewGetAdapterRelationLogic(r.Context(), svcCtx) + resp, err := l.GetAdapterRelation(&req) result.HttpResult(r, w, resp, err) } } diff --git a/api/internal/handler/adapters/getclustersumhandler.go b/api/internal/handler/adapters/getclustersumhandler.go index cec2ff33..91cdb266 100644 --- a/api/internal/handler/adapters/getclustersumhandler.go +++ b/api/internal/handler/adapters/getclustersumhandler.go @@ -1,28 +1,24 @@ package adapters import ( - "net/http" - "github.com/zeromicro/go-zero/rest/httpx" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/adapters" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/repository/result" + "net/http" ) func GetClusterSumHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { var req types.ClusterSumReq if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) + result.ParamErrorResult(r, w, err) return } l := adapters.NewGetClusterSumLogic(r.Context(), svcCtx) resp, err := l.GetClusterSum(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } + result.HttpResult(r, w, resp, err) } } diff --git a/api/internal/handler/routes.go b/api/internal/handler/routes.go index 82bbe00e..ba934d9e 100644 --- a/api/internal/handler/routes.go +++ b/api/internal/handler/routes.go @@ -750,7 +750,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { { Method: http.MethodGet, Path: "/adapter/relation", - Handler: adapters.GetAdapterClusterHandler(serverCtx), + Handler: adapters.GetAdapterRelationHandler(serverCtx), }, { Method: http.MethodGet, diff --git a/api/internal/logic/adapters/adapterslistlogic.go b/api/internal/logic/adapters/adapterslistlogic.go index 5bcc932e..d4c56907 100644 --- a/api/internal/logic/adapters/adapterslistlogic.go +++ b/api/internal/logic/adapters/adapterslistlogic.go @@ -2,6 +2,7 @@ package adapters import ( "context" + "fmt" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" @@ -23,9 +24,13 @@ func NewAdaptersListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Adap } } -func (l *AdaptersListLogic) AdaptersList(req *types.AdapterReq) (resp *types.AdapterListResp, err error) { +func (l *AdaptersListLogic) AdaptersList(req *types.AdapterQueryReq) (resp *types.AdapterListResp, err error) { resp = &types.AdapterListResp{} - tx := l.svcCtx.DbEngin.Raw("select * from t_adapter where `deleted_at` IS NULL ORDER BY create_time Desc").Scan(&resp.List) + sqlStr := "select * from t_adapter where `deleted_at` IS NULL ORDER BY create_time Desc" + if req.Name != "" { + sqlStr = fmt.Sprintf("select * from t_adapter where `deleted_at` IS NULL and name like '%%%s%%' ORDER BY create_time Desc", req.Name) + } + tx := l.svcCtx.DbEngin.Raw(sqlStr).Scan(&resp.List) if tx.Error != nil { logx.Errorf(tx.Error.Error()) return nil, tx.Error diff --git a/api/internal/logic/adapters/getadapterclusterlogic.go b/api/internal/logic/adapters/getadapterrelationlogic.go similarity index 58% rename from api/internal/logic/adapters/getadapterclusterlogic.go rename to api/internal/logic/adapters/getadapterrelationlogic.go index a8ff4e47..a4f0e5ee 100644 --- a/api/internal/logic/adapters/getadapterclusterlogic.go +++ b/api/internal/logic/adapters/getadapterrelationlogic.go @@ -2,6 +2,7 @@ package adapters import ( "context" + "fmt" "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" @@ -10,24 +11,28 @@ import ( "github.com/zeromicro/go-zero/core/logx" ) -type GetAdapterClusterLogic struct { +type GetAdapterRelationLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } -func NewGetAdapterClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAdapterClusterLogic { - return &GetAdapterClusterLogic{ +func NewGetAdapterRelationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAdapterRelationLogic { + return &GetAdapterRelationLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } -func (l *GetAdapterClusterLogic) GetAdapterCluster(req *types.AdapterReq) (resp *types.AdapterRelationResp, err error) { +func (l *GetAdapterRelationLogic) GetAdapterRelation(req *types.AdapterQueryReq) (resp *types.AdapterRelationResp, err error) { resp = &types.AdapterRelationResp{} adapter := make([]types.AdapterInfo, 0) - tx := l.svcCtx.DbEngin.Raw("select * from t_adapter where `deleted_at` IS NULL ORDER BY create_time Desc").Scan(&adapter) + sqlStr := "select * from t_adapter where `deleted_at` IS NULL ORDER BY create_time Desc" + if req.Name != "" { + sqlStr = fmt.Sprintf("select * from t_adapter where `deleted_at` IS NULL and name like '%%%s%%' ORDER BY create_time Desc", req.Name) + } + tx := l.svcCtx.DbEngin.Raw(sqlStr).Scan(&adapter) if tx.Error != nil { logx.Errorf(tx.Error.Error()) return nil, tx.Error diff --git a/api/internal/types/types.go b/api/internal/types/types.go index e435f470..1a66e7fc 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -629,6 +629,15 @@ type AppResp struct { Data interface{} `json:"data,omitempty"` } +type AdapterQueryReq struct { + Id string `form:"id,optional" db:"id"` + Name string `form:"name,optional"` + Type string `form:"type,optional"` + Nickname string `form:"nickname,optional"` + Version string `form:"version,optional"` + Server string `form:"server,optional"` +} + type AdapterReq struct { Id string `json:"id,optional" db:"id"` Name string `json:"name,optional"` diff --git a/pkg/utils/httputils/http.go b/pkg/utils/httputils/http.go index b1693685..01fc0e31 100644 --- a/pkg/utils/httputils/http.go +++ b/pkg/utils/httputils/http.go @@ -53,7 +53,6 @@ func NewHttpsClient() *resty.Client { c.SetTimeout(5 * time.Second) c.SetRetryCount(3) - //debug := nacos.GetConfig("httpclient.debug") debug := "true" if len(debug) > 0 && debug == "ON" { c.SetDebug(true) diff --git a/pkg/utils/snowflake.go b/pkg/utils/snowflake.go index 9e677f3c..3591e8c9 100644 --- a/pkg/utils/snowflake.go +++ b/pkg/utils/snowflake.go @@ -16,7 +16,7 @@ package utils import ( "github.com/bwmarrin/snowflake" - "github.com/nacos-group/nacos-sdk-go/v2/common/logger" + "github.com/zeromicro/go-zero/core/logx" ) var node *snowflake.Node @@ -24,7 +24,7 @@ var node *snowflake.Node func InitSnowflake(machineID int64) (err error) { node, err = snowflake.NewNode(machineID) if err != nil { - logger.Errorf("snowflake Init error : s%", err) + logx.Errorf("snowflake Init error : %s", err) return } @@ -37,7 +37,7 @@ func GenSnowflakeID() int64 { return node.Generate().Int64() } -// machineId 工作id +// GenSnowflakeIDStr 工作id func GenSnowflakeIDStr() string { return node.Generate().String() }