From 53d895f0462fe17a9ed559ec1c35dc06fa2d9e90 Mon Sep 17 00:00:00 2001 From: Liujian <824010343@qq.com> Date: Wed, 27 Nov 2024 20:18:23 +0800 Subject: [PATCH] fix rest service publish --- module/release/iml.go | 2 +- module/service-diff/iml.go | 2 +- module/service/filter.go | 23 ++++++++++++++++++++++- service/strategy/iml.go | 2 +- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/module/release/iml.go b/module/release/iml.go index f8a495ea..374427fc 100644 --- a/module/release/iml.go +++ b/module/release/iml.go @@ -113,7 +113,7 @@ func (m *imlReleaseModule) Create(ctx context.Context, serviceId string, input * return "", errors.New("api or document not found") } - upstreams, err := m.upstreamService.ListLatestCommit(ctx, serviceId) + upstreams, err := m.upstreamService.ListLatestCommit(ctx, cluster.DefaultClusterID, serviceId) if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return "", errors.New("api config or document not found") diff --git a/module/service-diff/iml.go b/module/service-diff/iml.go index 8972ed46..3296e2c0 100644 --- a/module/service-diff/iml.go +++ b/module/service-diff/iml.go @@ -153,7 +153,7 @@ func (m *imlServiceDiff) DiffForLatest(ctx context.Context, serviceId string, ba return nil, false, err } - upstreamCommits, err := m.upstreamService.ListLatestCommit(ctx, serviceId) + upstreamCommits, err := m.upstreamService.ListLatestCommit(ctx, cluster.DefaultClusterID, serviceId) if err != nil { return nil, false, err } diff --git a/module/service/filter.go b/module/service/filter.go index 4304a266..e1baf072 100644 --- a/module/service/filter.go +++ b/module/service/filter.go @@ -3,6 +3,8 @@ package service import ( "context" + "github.com/APIParkLab/APIPark/service/subscribe" + service_dto "github.com/APIParkLab/APIPark/module/service/dto" "github.com/eolinker/go-common/auto" @@ -16,7 +18,8 @@ import ( var _ strategy_filter.IRemoteFilter = (*imlAppFilter)(nil) type imlAppFilter struct { - service service.IServiceService `autowired:""` + service service.IServiceService `autowired:""` + subscriberService subscribe.ISubscribeService `autowired:""` } func (i *imlAppFilter) Name() string { @@ -94,6 +97,24 @@ func (i *imlAppFilter) RemoteList(ctx context.Context, keyword string, condition if condition == nil { condition = make(map[string]interface{}) } + if serviceId, ok := condition["service"]; ok { + // 查询订阅了该服务的消费者 + v, ok := serviceId.(string) + if ok { + subscribers, err := i.subscriberService.Subscribers(ctx, v, subscribe.ApplyStatusSubscribe) + if err != nil { + return nil, 0, err + } + if len(subscribers) > 0 { + appIds := utils.SliceToSlice(subscribers, func(s *subscribe.Subscribe) string { + return s.Application + }) + condition["uuid"] = appIds + } + + } + delete(condition, "service") + } condition["as_app"] = true if pageSize == -1 { // 获取全部 diff --git a/service/strategy/iml.go b/service/strategy/iml.go index 5d435157..3398c0a5 100644 --- a/service/strategy/iml.go +++ b/service/strategy/iml.go @@ -212,5 +212,5 @@ func updateHandler(e *strategy.Strategy, i *Edit) { if i.IsStop != nil { e.IsStop = *i.IsStop } - + e.UpdateAt = time.Now() }