From 0e3b32b0d0e7dc8f3b3860220743065b95efcd23 Mon Sep 17 00:00:00 2001 From: zichun Date: Wed, 13 May 2026 17:50:05 +0800 Subject: [PATCH] feat(usr): 统一响应 Result + 错误码常量 REQ-USR-001 --- backend/src/main/java/com/xly/test4/common/response/Result.java | 27 +++++++++++++++++++++++++++ backend/src/main/java/com/xly/test4/common/response/ResultCode.java | 17 +++++++++++++++++ backend/src/test/java/com/xly/test4/common/response/ResultTest.java | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 0 deletions(-) create mode 100644 backend/src/main/java/com/xly/test4/common/response/Result.java create mode 100644 backend/src/main/java/com/xly/test4/common/response/ResultCode.java create mode 100644 backend/src/test/java/com/xly/test4/common/response/ResultTest.java diff --git a/backend/src/main/java/com/xly/test4/common/response/Result.java b/backend/src/main/java/com/xly/test4/common/response/Result.java new file mode 100644 index 0000000..61e4d84 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/common/response/Result.java @@ -0,0 +1,27 @@ +package com.xly.test4.common.response; + +import lombok.Getter; + +@Getter +public class Result { + + private final int code; + private final String message; + private final T data; + private final long timestamp; + + private Result(int code, String message, T data) { + this.code = code; + this.message = message; + this.data = data; + this.timestamp = System.currentTimeMillis(); + } + + public static Result success(T data) { + return new Result<>(ResultCode.OK, "操作成功", data); + } + + public static Result fail(int code, String message) { + return new Result<>(code, message, null); + } +} diff --git a/backend/src/main/java/com/xly/test4/common/response/ResultCode.java b/backend/src/main/java/com/xly/test4/common/response/ResultCode.java new file mode 100644 index 0000000..9c60f06 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/common/response/ResultCode.java @@ -0,0 +1,17 @@ +package com.xly.test4.common.response; + +public final class ResultCode { + + private ResultCode() { + } + + public static final int OK = 200; + public static final int PARAM_INVALID = 40001; + public static final int USER_NAME_DUPLICATE = 40002; + public static final int USER_CODE_DUPLICATE = 40003; + public static final int EMPLOYEE_INVALID = 40004; + public static final int PERMISSION_INVALID = 40005; + public static final int UNAUTHENTICATED = 40101; + public static final int FORBIDDEN = 40301; + public static final int INTERNAL_ERROR = 50000; +} diff --git a/backend/src/test/java/com/xly/test4/common/response/ResultTest.java b/backend/src/test/java/com/xly/test4/common/response/ResultTest.java new file mode 100644 index 0000000..d31eb5b --- /dev/null +++ b/backend/src/test/java/com/xly/test4/common/response/ResultTest.java @@ -0,0 +1,41 @@ +package com.xly.test4.common.response; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class ResultTest { + + @Test + void successContainsDataAndCode200() { + Result r = Result.success("hello"); + + assertThat(r.getCode()).isEqualTo(200); + assertThat(r.getMessage()).isEqualTo("操作成功"); + assertThat(r.getData()).isEqualTo("hello"); + assertThat(r.getTimestamp()).isGreaterThan(0L); + } + + @Test + void failNullsDataAndSetsCustomCode() { + Result r = Result.fail(40002, "用户名已存在"); + + assertThat(r.getCode()).isEqualTo(40002); + assertThat(r.getMessage()).isEqualTo("用户名已存在"); + assertThat(r.getData()).isNull(); + assertThat(r.getTimestamp()).isGreaterThan(0L); + } + + @Test + void resultCodeConstantsMatchSpec() { + assertThat(ResultCode.OK).isEqualTo(200); + assertThat(ResultCode.PARAM_INVALID).isEqualTo(40001); + assertThat(ResultCode.USER_NAME_DUPLICATE).isEqualTo(40002); + assertThat(ResultCode.USER_CODE_DUPLICATE).isEqualTo(40003); + assertThat(ResultCode.EMPLOYEE_INVALID).isEqualTo(40004); + assertThat(ResultCode.PERMISSION_INVALID).isEqualTo(40005); + assertThat(ResultCode.UNAUTHENTICATED).isEqualTo(40101); + assertThat(ResultCode.FORBIDDEN).isEqualTo(40301); + assertThat(ResultCode.INTERNAL_ERROR).isEqualTo(50000); + } +} -- libgit2 0.22.2