Skip to content

Commit 781b819

Browse files
committed
support filter by start and end time in release plan list
Signed-off-by: Patrick Zhao <[email protected]>
1 parent dd1d628 commit 781b819

File tree

2 files changed

+37
-5
lines changed

2 files changed

+37
-5
lines changed

pkg/microservice/aslan/core/common/repository/mongodb/release_plan.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ type ListReleasePlanOption struct {
148148
SuccessTimeEnd int64
149149
UpdateTimeStart int64
150150
UpdateTimeEnd int64
151+
StartTime int64
152+
EndTime int64
151153
IsSort bool
152154
SortBy SortReleasePlanBy
153155
ExcludedFields []string
@@ -190,6 +192,10 @@ func (c *ReleasePlanColl) ListByOptions(opt *ListReleasePlanOption) ([]*models.R
190192
if opt.UpdateTimeStart > 0 && opt.UpdateTimeEnd > 0 {
191193
query["update_time"] = bson.M{"$gte": opt.UpdateTimeStart, "$lte": opt.UpdateTimeEnd}
192194
}
195+
if opt.StartTime > 0 && opt.EndTime > 0 {
196+
query["start_time"] = bson.M{"$gte": opt.StartTime, "$lte": opt.EndTime}
197+
query["end_time"] = bson.M{"$gte": opt.StartTime, "$lte": opt.EndTime}
198+
}
193199
if opt.Status != "" {
194200
query["status"] = opt.Status
195201
}

pkg/microservice/aslan/core/release_plan/service/release_plan.go

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1227,11 +1227,12 @@ func cronJobToSchedule(input *commonmodels.Cronjob) *commonmodels.Schedule {
12271227
type ListReleasePlanType string
12281228

12291229
const (
1230-
ListReleasePlanTypeName ListReleasePlanType = "name"
1231-
ListReleasePlanTypeManager ListReleasePlanType = "manager"
1232-
ListReleasePlanTypeSuccessTime ListReleasePlanType = "success_time"
1233-
ListReleasePlanTypeUpdateTime ListReleasePlanType = "update_time"
1234-
ListReleasePlanTypeStatus ListReleasePlanType = "status"
1230+
ListReleasePlanTypeName ListReleasePlanType = "name"
1231+
ListReleasePlanTypeManager ListReleasePlanType = "manager"
1232+
ListReleasePlanTypeSuccessTime ListReleasePlanType = "success_time"
1233+
ListReleasePlanTypeUpdateTime ListReleasePlanType = "update_time"
1234+
ListReleasePlanTypeStartEndTime ListReleasePlanType = "start_end_time"
1235+
ListReleasePlanTypeStatus ListReleasePlanType = "status"
12351236
)
12361237

12371238
type ListReleasePlanOption struct {
@@ -1321,6 +1322,31 @@ func ListReleasePlans(opt *ListReleasePlanOption) (*ListReleasePlanResp, error)
13211322
PageSize: opt.PageSize,
13221323
ExcludedFields: []string{"jobs", "logs"},
13231324
})
1325+
case ListReleasePlanTypeStartEndTime:
1326+
timeArr := strings.Split(opt.Keyword, "-")
1327+
if len(timeArr) != 2 {
1328+
return nil, errors.New("invalid update time range")
1329+
}
1330+
1331+
timeStart := int64(0)
1332+
timeEnd := int64(0)
1333+
timeStart, err = strconv.ParseInt(timeArr[0], 10, 64)
1334+
if err != nil {
1335+
return nil, errors.Wrap(err, "invalid update time start")
1336+
}
1337+
timeEnd, err = strconv.ParseInt(timeArr[1], 10, 64)
1338+
if err != nil {
1339+
return nil, errors.Wrap(err, "invalid update time end")
1340+
}
1341+
1342+
list, total, err = mongodb.NewReleasePlanColl().ListByOptions(&mongodb.ListReleasePlanOption{
1343+
UpdateTimeStart: timeStart,
1344+
UpdateTimeEnd: timeEnd,
1345+
IsSort: true,
1346+
PageNum: opt.PageNum,
1347+
PageSize: opt.PageSize,
1348+
ExcludedFields: []string{"jobs", "logs"},
1349+
})
13241350
case ListReleasePlanTypeStatus:
13251351
list, total, err = mongodb.NewReleasePlanColl().ListByOptions(&mongodb.ListReleasePlanOption{
13261352
Status: config.ReleasePlanStatus(opt.Keyword),

0 commit comments

Comments
 (0)