项目初始化

This commit is contained in:
2025-08-23 13:27:32 +08:00
commit c555beca58
16 changed files with 1181 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
package com.mini.capi.model;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
public class ApiResult<T> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 状态码
*/
private int code;
/**
* 提示信息
*/
private String message;
/**
* 返回数据
*/
private T result;
/* ---------------- 构造方法 ---------------- */
public ApiResult() {
}
public ApiResult(int code, String message, T data) {
this.code = code;
this.message = message;
this.result = data;
}
/* ---------------- 静态工厂方法 ---------------- */
/**
* 成功,仅返回状态码
*/
public static <T> ApiResult<T> success() {
return new ApiResult<>(ResultCodeEnum.SUCCESS.getCode(), ResultCodeEnum.SUCCESS.getMessage(), null);
}
/**
* 成功,返回数据
*/
public static <T> ApiResult<T> success(T data) {
return new ApiResult<>(ResultCodeEnum.SUCCESS.getCode(), ResultCodeEnum.SUCCESS.getMessage(), data);
}
/**
* 成功,自定义提示
*/
public static <T> ApiResult<T> success(String message, T data) {
return new ApiResult<>(ResultCodeEnum.SUCCESS.getCode(), message, data);
}
/**
* 失败,默认提示
*/
public static <T> ApiResult<T> error() {
return new ApiResult<>(ResultCodeEnum.FAIL.getCode(), ResultCodeEnum.FAIL.getMessage(), null);
}
/**
* 失败,自定义状态码与提示
*/
public static <T> ApiResult<T> error(int code, String message) {
return new ApiResult<>(code, message, null);
}
/**
* 失败,使用枚举
*/
public static <T> ApiResult<T> error(ResultCodeEnum codeEnum) {
return new ApiResult<>(codeEnum.getCode(), codeEnum.getMessage(), null);
}
}

View File

@@ -0,0 +1,42 @@
package com.mini.capi.model;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Data
public class PageResult<T> implements Serializable {
private final int total; // 总记录数
private final int pages; // 总页数
private final int pageNum; // 当前页
private final int pageSize; // 每页条数
private final List<T> data; // 当前页数据
private PageResult(int total, int pages, int pageNum, int pageSize, List<T> data) {
this.total = total;
this.pages = pages;
this.pageNum = pageNum;
this.pageSize = pageSize;
this.data = data;
}
public static <T> PageResult<T> of(List<T> listData, int pageNum, int pageSize) {
if (listData == null || listData.isEmpty() || pageNum <= 0 || pageSize <= 0) {
return new PageResult<>(0, 0, pageNum, pageSize, Collections.emptyList());
}
int total = listData.size();
int pages = (int) Math.ceil((double) total / pageSize);
int from = (pageNum - 1) * pageSize;
if (from >= total) {
return new PageResult<>(total, pages, pageNum, pageSize, Collections.emptyList());
}
int to = Math.min(from + pageSize, total);
List<T> list = new ArrayList<>(listData.subList(from, to));
return new PageResult<>(total, pages, pageNum, pageSize, list);
}
}

View File

@@ -0,0 +1,22 @@
package com.mini.capi.model;
import lombok.Getter;
@Getter
public enum ResultCodeEnum {
SUCCESS(200, "Success"),
FAIL(500, "Fail"),
BAD_REQUEST(400, "Bad Request"),
UNAUTHORIZED(401, "Unauthorized"),
NOT_FOUND(404, "Not Found");
private final int code;
private final String message;
ResultCodeEnum(int code, String message) {
this.code = code;
this.message = message;
}
}