Pagination calculate
This commit is contained in:
parent
6ba42f364a
commit
f9c241c5a9
|
|
@ -28,6 +28,7 @@ import org.apache.skywalking.apm.collector.storage.ui.common.Pagination;
|
|||
import org.apache.skywalking.apm.collector.ui.graphql.Query;
|
||||
import org.apache.skywalking.apm.collector.ui.service.AlarmService;
|
||||
import org.apache.skywalking.apm.collector.ui.utils.DurationUtils;
|
||||
import org.apache.skywalking.apm.collector.ui.utils.PaginationUtils;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
|
|
@ -53,16 +54,15 @@ public class AlarmQuery implements Query {
|
|||
long start = DurationUtils.INSTANCE.durationToSecondTimeBucket(duration.getStep(), duration.getStart()) / 100;
|
||||
long end = DurationUtils.INSTANCE.durationToSecondTimeBucket(duration.getStep(), duration.getEnd()) / 100;
|
||||
|
||||
int limit = paging.getPageSize();
|
||||
int from = paging.getPageSize() * paging.getPageNum();
|
||||
PaginationUtils.Page page = PaginationUtils.INSTANCE.exchange(paging);
|
||||
|
||||
switch (alarmType) {
|
||||
case APPLICATION:
|
||||
return getAlarmService().loadApplicationAlarmList(keyword, start, end, limit, from);
|
||||
return getAlarmService().loadApplicationAlarmList(keyword, start, end, page.getLimit(), page.getFrom());
|
||||
case SERVER:
|
||||
return getAlarmService().loadInstanceAlarmList(keyword, start, end, limit, from);
|
||||
return getAlarmService().loadInstanceAlarmList(keyword, start, end, page.getLimit(), page.getFrom());
|
||||
case SERVICE:
|
||||
return getAlarmService().loadServiceAlarmList(keyword, start, end, limit, from);
|
||||
return getAlarmService().loadServiceAlarmList(keyword, start, end, page.getLimit(), page.getFrom());
|
||||
default:
|
||||
return new Alarm();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.collector.ui.utils;
|
||||
|
||||
import org.apache.skywalking.apm.collector.storage.ui.common.Pagination;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public enum PaginationUtils {
|
||||
INSTANCE;
|
||||
|
||||
public Page exchange(Pagination paging) {
|
||||
int limit = paging.getPageSize();
|
||||
int from = paging.getPageSize() * (paging.getPageNum() - 1);
|
||||
|
||||
return new Page(from, limit);
|
||||
}
|
||||
|
||||
public class Page {
|
||||
private int from;
|
||||
private int limit;
|
||||
|
||||
Page(int from, int limit) {
|
||||
this.from = from;
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
public int getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public int getLimit() {
|
||||
return limit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.collector.ui.utils;
|
||||
|
||||
import org.apache.skywalking.apm.collector.storage.ui.common.Pagination;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class PaginationUtilsTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
Pagination pagination = new Pagination();
|
||||
pagination.setPageSize(10);
|
||||
pagination.setPageNum(1);
|
||||
|
||||
PaginationUtils.Page page = PaginationUtils.INSTANCE.exchange(pagination);
|
||||
Assert.assertEquals(0, page.getFrom());
|
||||
Assert.assertEquals(10, page.getLimit());
|
||||
|
||||
pagination = new Pagination();
|
||||
pagination.setPageSize(10);
|
||||
pagination.setPageNum(2);
|
||||
|
||||
page = PaginationUtils.INSTANCE.exchange(pagination);
|
||||
Assert.assertEquals(10, page.getFrom());
|
||||
Assert.assertEquals(10, page.getLimit());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue