Spring統合(ページング)結果(新規)
背景
デザインは、コードの一般的なフォーマット を返す.
ぶんせき code:応答状態コード コード区間
を選択します.
意味
1**
100-199
情報サーバは要求を受信し、要求者が操作を継続する必要がある.
2**
200-299
成功したリクエストが正常に受信され処理されました
3**
300-399
リダイレクトには、リクエストを完了するためのさらなる操作が必要です.
4**
400-499
クライアント・エラー・リクエストに構文エラーが含まれているか、完了できません.
5**
500-599
サーバエラーサーバ処理中にエラーが発生しましたよく見られるHTTPステータスコード: 結果を一括して返す
統合ページング結果伝参 パッケージmybatisPlus は、 を一括して返す.
、 , , 。 ,
URL , , , , 。
デザイン
{
#
success: true,
#
code: 200,
#
data: Object
#
message: "",
}
ぶんせき
を選択します.
意味
1**
100-199
情報サーバは要求を受信し、要求者が操作を継続する必要がある.
2**
200-299
成功したリクエストが正常に受信され処理されました
3**
300-399
リダイレクトには、リクエストを完了するためのさらなる操作が必要です.
4**
400-499
クライアント・エラー・リクエストに構文エラーが含まれているか、完了できません.
5**
500-599
サーバエラーサーバ処理中にエラーが発生しました
200 - ;
301 - ( ) URL;
404 - ( ) ;
500 - 。
@Getter
public enum ResultCodeEnum {
SUCCESS(true, 200," "),
ERROR(false, 500," "),
UNKNOWN_REASON(false, 20001, " "),
BAD_SQL_GRAMMAR(false, 21001, "sql "),
JSON_PARSE_ERROR(false, 21002, "json "),
PARAM_ERROR(false, 21003, " "),
FILE_UPLOAD_ERROR(false, 21004, " "),
EXCEL_DATA_IMPORT_ERROR(false, 21005, "Excel ");
private Boolean type;
private Integer code;
private String message;
private ResultCodeEnum(Boolean type, Integer code, String message) {
this.type = type;
this.code = code;
this.message = message;
}
}
@Data
@ApiModel(value = " ")
public class Result<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = " ")
private Boolean state = true;
@ApiModelProperty(value = " ")
private T data;
@ApiModelProperty(value = " ")
private String msg;
@ApiModelProperty(value = " ")
private long count;
@ApiModelProperty(value = " ")
private long code;
public Result() {
}
Result(long code, boolean success, String message, long count, T data) {
this.code = code;
this.state = success;
this.msg = message;
this.data = data;
this.count = count;
}
public static <T> Result<T> ok(T data) {
try {
Result<T> result = new Result<T>(ResultCodeEnum.SUCCESS.getCode(), ResultCodeEnum.SUCCESS.getType(), ResultCodeEnum.SUCCESS.getMessage(), 1, data);
return result;
} catch (Exception ex) {
return error(ex);
}
}
public static <T> Result<T> error(Exception ex) {
String format = "Message: %s, StackTrace: %s, Suppressed: %s, Cause: %s, Class: %s ";
String msg = String.format(format, ex.getMessage(), ex.getStackTrace(), ex.getSuppressed(),
ex.getCause(), ex.getClass());
return error(msg);
}
public static <T> Result<T> error(String message) {
Result<T> result = new Result<T>( ResultCodeEnum.ERROR.getCode(), ResultCodeEnum.ERROR.getType(), message, 0, null);
result.count = 0;
return result;
}
}
統合ページング結果
@Data
public class PagingOptions implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(" ")
private Integer pageIndex;
@ApiModelProperty(" ")
private Integer pageSize;
@ApiModelProperty(" ")
private List<PagingSort> sorts;
@ApiModelProperty(" ")
private List<PagingFilter> filters;
}
@Data
public class PagingFilter implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(" ")
private String field;
@ApiModelProperty(" ")
private String op;
@ApiModelProperty(" ")
private String value;
}
@Data
public class PagingSort implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(" ")
private String field;
@ApiModelProperty(" ")
private String sort;
}
@Data
public class PageQuery<T> {
private static final long serialVersionUID = 1L;
/**
*
*/
private Page<T> page;
/**
*
*/
private int currPage = 1;
/**
*
*/
private int limit = 10;
private QueryWrapper<T> queryWrapper;
private BaseMapper baseMapper;
public PageQuery(PagingOptions pagingOptions, BaseMapper baseMapper) {
this.baseMapper = baseMapper;
//
this.page = new Page<>(pagingOptions.getPageIndex(), pagingOptions.getPageSize());
// mapper
this.queryWrapper = new QueryWrapper<T>();
// wrapper
if (pagingOptions.getFilters() != null) {
for (PagingFilter filter : pagingOptions.getFilters()) {
if (StringUtils.isEmpty(filter.getField()) || StringUtils.isEmpty(filter.getOp())) {
continue;
}
String strOp = filter.getOp().trim();
String field = filter.getField().trim();
String term = filter.getValue();
switch (strOp) {
case "eq":
this.queryWrapper.eq(field, term);
break;
case "ne":
this.queryWrapper.ne(field, term);
break;
case "lt":
this.queryWrapper.lt(field, term);
break;
case "le":
this.queryWrapper.le(field, term);
break;
case "gt":
this.queryWrapper.gt(field, term);
break;
case "ge":
this.queryWrapper.ge(field, term);
break;
case "cn":
this.queryWrapper.like(field, term);
break;
case "nu":
this.queryWrapper.isNull(field);
break;
case "nn":
this.queryWrapper.isNotNull(field);
break;
case "in":
List<String> result = Arrays.asList(term.split(","));
this.queryWrapper.in(field, result);
break;
}
}
}
if (pagingOptions.getSorts() != null) {
for (PagingSort sort : pagingOptions.getSorts()) {
if (StringUtils.isEmpty(sort.getField()) || StringUtils.isEmpty(sort.getSort())) {
continue;
}
String strOp = sort.getSort().trim();
switch (strOp) {
case "asc":
this.queryWrapper.orderByAsc(sort.getField());
break;
case "desc":
this.queryWrapper.orderByDesc(sort.getField());
break;
}
}
}
}
}
@Data
@ApiModel(value = " ")
public class PagingResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = " ")
private Boolean state = true;
@ApiModelProperty(value = " ")
private List<T> data;
@ApiModelProperty(value = " ")
private String msg;
@ApiModelProperty(value = " ")
private long count;
@ApiModelProperty(value = " ")
private long code;
PagingResult(long code, boolean success, String message, long count, List<T> data) {
this.setCode(code);
this.setState(success);
this.setMsg(message);
this.setData(data);
this.setCount(count);
}
public static <T> PagingResult<T> ok(PageQuery<T> pageQuery, BaseMapper<T> mapper) {
try {
IPage<T> page = mapper.selectPage(pageQuery.getPage(), pageQuery.getQueryWrapper());
PagingResult<T> result = new PagingResult<T>(ResultCodeEnum.SUCCESS.getCode(), ResultCodeEnum.SUCCESS.getType(), ResultCodeEnum.SUCCESS.getMessage(),
page.getTotal(), page.getRecords());
return result;
} catch (Exception ex) {
return error(ex);
}
}
public static <T> PagingResult<T> error(Exception ex) {
String format = "Message: %s, StackTrace: %s, Suppressed: %s, Cause: %s, Class: %s";
String msg = String.format(format, ex.getMessage(), ex.getStackTrace(), ex.getSuppressed(),
ex.getCause(), ex.getClass());
return error(msg);
}
public static <T> PagingResult<T> error(String message) {
PagingResult<T> result = new PagingResult<T>(ResultCodeEnum.ERROR.getCode(), ResultCodeEnum.ERROR.getType(), message, 0, null);
return result;
}
}