MybatisPlus 快捷分页API代码

controller 层

    @WebAspect
    @ApiOperation(value = "获取控件元素修改历史记录", notes = "")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "eleID", value = "项目id", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "page", value = "页码", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "pageSize", value = "页数据大小", dataTypeClass = Integer.class)
    })
    @GetMapping("/eleHist")
    public RespModel<CommentPage<ElementHistory>> elementHistory(@RequestParam(name = "eleID") int eleID,
                                                          @RequestParam(name = "page") int page,
                                                          @RequestParam(name = "pageSize") int pageSize) {
        Page<ElementHistory> pageable = new Page<>(page, pageSize);
        Page<ElementHistory> result = elementHistoryService.getByEleId(eleID, pageable);
        return new RespModel<>(RespEnum.SEARCH_OK, CommentPage.convertFrom(result));
    }

Service

public interface ElementHistoryService  extends IService<ElementHistory> {

    /**
     * 根据控件元素获取控件更新历史记录
     * @param eleID
     * @return
     */
    Page<ElementHistory> getByEleId(Integer eleID, Page<ElementHistory> pageable);
}

Impl

@Service
public class ElementHistoryServiceImpl implements ElementHistoryService {

    @Override
    public Page<ElementHistory> getByEleId(Integer eleID,Page<ElementHistory> pageable) {

        LambdaQueryChainWrapper<ElementHistory> lambdaQuery = lambdaQuery();

        lambdaQuery.eq(ElementHistory::getEleId, eleID);
        lambdaQuery.orderByDesc(ElementHistory::getCreatedTime);
        return lambdaQuery.page(pageable);
    }
}

通用接口响应模型

@ApiModel("请求响应模型")
public class RespModel<T> {
    @ApiModelProperty(value = "状态码", example = "2000")
    private int code;
    @ApiModelProperty(value = "状态描述", example = "操作成功!")
    private String message;
    @ApiModelProperty(value = "响应详情")
    private T data;

    public RespModel() {
    }

    public RespModel(int code, String message) {
        this(code, message, null);
    }

    public RespModel(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public RespModel(RespEnum respEnum) {
        this.code = respEnum.getCode();
        this.message = respEnum.getMessage();
    }

    public RespModel(RespEnum respEnum, T data) {
        this.code = respEnum.getCode();
        this.message = respEnum.getMessage();
        this.data = data;
    }

    public static RespModel result(RespEnum respEnum){
        return new RespModel(respEnum);
    }

    public static <T> RespModel<T> result(RespEnum respEnum, T data){
        return new RespModel<T>(respEnum, data);
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public RespModel<T> setMessage(String msg) {
        this.message = msg;
        return this;
    }

    public T getData() {
        return data;
    }

    public RespModel<T> setData(T data) {
        this.data = data;
        return this;
    }

    @Override
    public String toString() {
        return "RespModel{" +
                "code=" + code +
                ", message='" + message + '\'' +
                ", data=" + data +
                '}';
    }
}

接口响应枚举

public enum RespEnum {
    HANDLE_OK(2000, "ok.handle"),
    SEARCH_OK(2000, "ok.search"),
    UPDATE_OK(2000, "ok.update"),
    DELETE_OK(2000, "ok.delete"),
    UPLOAD_OK(2000, "ok.upload"),
    SEND_OK(2000, "ok.send"),
    COPY_OK(2000,"ok.copy"),
    CONNECT_OK(2000,"ok.connect"),
    SEARCH_FAIL(3005,"fail.search"),
    UPDATE_FAIL(3004,"fail.update"),
    DELETE_FAIL(3002, "fail.delete"),
    UPLOAD_FAIL(3003, "fail.upload"),
    CONNECT_FAIL(3000, "fail.connect"),
    UNAUTHORIZED(1001, "unauthorized"),
    SERVICE_NOT_FOUND(1002, "not.found.service"),
    PERMISSION_DENIED(1003, "permission.denied"),
    RESOURCE_NOT_FOUND(1004, "not.found.resource"),
    ID_NOT_FOUND(3001, "not.found.id"),
    DEVICE_NOT_FOUND(3002,"not.found.device"),
    AGENT_NOT_ONLINE(5001, "not.online.agent"),
    PARAMS_NOT_VALID(4004, "not.valid.params"),
    PARAMS_NOT_READABLE(4005, "not.readable.params"),
    PARAMS_MISSING_ERROR(4001, "error.params.missing"),
    PARAMS_VIOLATE_ERROR(4002, "error.params.violate"),
    UNKNOWN_ERROR(4003, "error.unknown");

    private int code;
    private String message;

    RespEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

通用分页对象

package org.cloud.sonic.controller.models.base;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 通用分页对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CommentPage<T> implements Serializable {

    /**
     * 页大小
     */
    private long size;

    /**
     * 页内容
     */
    private List<T> content;

    /**
     * 当前页码
     */
    private long number;

    /**
     * 页内容总个数
     */
    private long totalElements;

    /**
     * 总页数
     */
    private long totalPages;

    public static <T> CommentPage<T> convertFrom(Page<T> page) {
        return new CommentPage<>(
                page.getSize(), page.getRecords(), page.getCurrent() - 1, page.getTotal(), page.getPages()
        );
    }

    /**
     * Page的数据会被content替代
     */
    public static <T> CommentPage<T> convertFrom(Page<?> page, List<T> content) {
        return new CommentPage<>(
                page.getSize(), content, page.getCurrent() - 1, page.getTotal(), page.getPages()
        );
    }


    public static <T> CommentPage<T> emptyPage() {
        return new CommentPage<>(0, new ArrayList<>(), 0, 0, 0);
    }
}

猜你喜欢

转载自blog.csdn.net/PhilipJ0303/article/details/126885174