提交 f9c241c5 编写于 作者: P peng-yongsheng

Pagination calculate

上级 6ba42f36
......@@ -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();
}
......
/*
* 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;
}
}
}
/*
* 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());
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册