All Downloads are FREE. Search and download functionalities are using the official Maven repository.

site.zfei.at.coxt.PageResult Maven / Gradle / Ivy

package site.zfei.at.coxt;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import site.zfei.at.util.Beans;

import java.util.Collections;
import java.util.List;

@Slf4j
@Data
public class PageResult {


    private int code = Sts.OK.value();

    private String msg = Sts.OK.getReasonPhrase();

    private PageData data;


    public static  PageResult build(List list, long total) {
        PageResult pageResult = new PageResult<>();
        pageResult.setData(new PageData<>(total, list));
        return pageResult;
    }

    public static  PageResult build(List res, Class clazz) {
        if (!(res instanceof Page)) {
            throw new StsException(Sts.BAD_REQUEST, "res must be Page");
        }

        return build(Beans.copys(res, clazz), ((Page) res).getTotal());
    }


    public static  PageResult build(Object data) {
        if (data instanceof PageInfo) {
            return PageResult.build(((PageInfo) data).getList(), ((PageInfo) data).getTotal());
        }
        if (data instanceof Page) {
            return PageResult.build((List) data, ((Page) data).getTotal());
        }
        throw new StsException(Sts.BAD_REQUEST, "PageResult.build instance type error,data:" + data);
    }

    public static  PageResult empty() {
        return PageResult.build(Collections.emptyList(), 0L);
    }

    @Data
    @AllArgsConstructor
    public static class PageData {
        private long total;

        private List list;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy