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);
}
}