From 147cfdef08492d50b728d1786ba201c503b10498 Mon Sep 17 00:00:00 2001 From: Patrick Zhao Date: Thu, 25 Dec 2025 11:29:20 +0800 Subject: [PATCH] support filter by start and end time in release plan list Signed-off-by: Patrick Zhao --- .../common/repository/mongodb/release_plan.go | 8 ++++++++ .../core/release_plan/service/release_plan.go | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/pkg/microservice/aslan/core/common/repository/mongodb/release_plan.go b/pkg/microservice/aslan/core/common/repository/mongodb/release_plan.go index 3c1b8eeae1..4310741c61 100644 --- a/pkg/microservice/aslan/core/common/repository/mongodb/release_plan.go +++ b/pkg/microservice/aslan/core/common/repository/mongodb/release_plan.go @@ -148,6 +148,8 @@ type ListReleasePlanOption struct { SuccessTimeEnd int64 UpdateTimeStart int64 UpdateTimeEnd int64 + StartTime int64 + EndTime int64 IsSort bool SortBy SortReleasePlanBy ExcludedFields []string @@ -190,6 +192,12 @@ func (c *ReleasePlanColl) ListByOptions(opt *ListReleasePlanOption) ([]*models.R if opt.UpdateTimeStart > 0 && opt.UpdateTimeEnd > 0 { query["update_time"] = bson.M{"$gte": opt.UpdateTimeStart, "$lte": opt.UpdateTimeEnd} } + if opt.StartTime > 0 && opt.EndTime > 0 { + query["$or"] = []bson.M{ + {"start_time": bson.M{"$gte": opt.StartTime, "$lte": opt.EndTime}}, + {"end_time": bson.M{"$gte": opt.StartTime, "$lte": opt.EndTime}}, + } + } if opt.Status != "" { query["status"] = opt.Status } diff --git a/pkg/microservice/aslan/core/release_plan/service/release_plan.go b/pkg/microservice/aslan/core/release_plan/service/release_plan.go index ff1d4e08b8..d13058441f 100644 --- a/pkg/microservice/aslan/core/release_plan/service/release_plan.go +++ b/pkg/microservice/aslan/core/release_plan/service/release_plan.go @@ -1235,10 +1235,12 @@ const ( ) type ListReleasePlanOption struct { - PageNum int64 `form:"pageNum" binding:"required"` - PageSize int64 `form:"pageSize" binding:"required"` - Type ListReleasePlanType `form:"type" binding:"required"` - Keyword string `form:"keyword"` + PageNum int64 `form:"pageNum" binding:"required"` + PageSize int64 `form:"pageSize" binding:"required"` + StartTime int64 `form:"startTime"` + EndTime int64 `form:"endTime"` + Type ListReleasePlanType `form:"type" binding:"required"` + Keyword string `form:"keyword"` } type ListReleasePlanResp struct { @@ -1259,6 +1261,8 @@ func ListReleasePlans(opt *ListReleasePlanOption) (*ListReleasePlanResp, error) IsSort: true, PageNum: opt.PageNum, PageSize: opt.PageSize, + StartTime: opt.StartTime, + EndTime: opt.EndTime, ExcludedFields: []string{"jobs", "logs"}, }) case ListReleasePlanTypeManager: @@ -1267,6 +1271,8 @@ func ListReleasePlans(opt *ListReleasePlanOption) (*ListReleasePlanResp, error) IsSort: true, PageNum: opt.PageNum, PageSize: opt.PageSize, + StartTime: opt.StartTime, + EndTime: opt.EndTime, ExcludedFields: []string{"jobs", "logs"}, }) case ListReleasePlanTypeSuccessTime: @@ -1293,6 +1299,8 @@ func ListReleasePlans(opt *ListReleasePlanOption) (*ListReleasePlanResp, error) SortBy: mongodb.SortReleasePlanByUpdateTime, PageNum: opt.PageNum, PageSize: opt.PageSize, + StartTime: opt.StartTime, + EndTime: opt.EndTime, ExcludedFields: []string{"jobs", "logs"}, }) case ListReleasePlanTypeUpdateTime: @@ -1319,6 +1327,8 @@ func ListReleasePlans(opt *ListReleasePlanOption) (*ListReleasePlanResp, error) SortBy: mongodb.SortReleasePlanByUpdateTime, PageNum: opt.PageNum, PageSize: opt.PageSize, + StartTime: opt.StartTime, + EndTime: opt.EndTime, ExcludedFields: []string{"jobs", "logs"}, }) case ListReleasePlanTypeStatus: