Animo-Server/src/main/java/com/kane/animo/model/R.java
Grand-cocoa afa84020e5 feat(auth): 实现用户认证模块
- 新增登录与注册接口控制器 AuthController
- 创建登录表单数据类 LoginForm
- 定义用户实体类 User 并实现 UserDetails 接口
- 添加用户持久层接口 UserMapper- 实现认证服务 AuthServiceImpl 包含登录和注册逻辑
- 配置 Spring Security 安全策略并禁用 CSRF
- 引入 BCrypt 加密算法用于密码处理
- 添加全局异常处理器 ExceptionFilter 捕获业务异常
- 创建统一响应模型 R 封装返回结果
- 集成 MyBatis Plus依赖并配置数据源信息
2025-11-07 16:10:35 +08:00

56 lines
1.4 KiB
Java

package com.kane.animo.model;
import lombok.Data;
/**
* 统一返回结果
* @author Kane
* @since 2025/11/7 14:50
*/
@Data
public class R<T> {
private int code;
private String message;
private T data;
private long timestamp;
public static <T> R<T> success(T data) {
R<T> r = new R<>();
r.setCode(200);
r.setMessage("success");
r.setData(data);
r.setTimestamp(System.currentTimeMillis());
return r;
}
public static <T> R<T> success(String message, T data) {
R<T> r = new R<>();
r.setCode(200);
r.setMessage(message);
r.setData(data);
r.setTimestamp(System.currentTimeMillis());
return r;
}
public static <T> R<T> error(String message) {
R<T> r = new R<>();
r.setCode(500);
r.setMessage(message);
r.setTimestamp(System.currentTimeMillis());
return r;
}
public static <T> R<T> build(int code, String message) {
R<T> r = new R<>();
r.setCode(code);
r.setMessage(message);
r.setTimestamp(System.currentTimeMillis());
return r;
}
public static <T> R<T> build(int code, String message, T data) {
R<T> r = new R<>();
r.setCode(code);
r.setMessage(message);
r.setData(data);
r.setTimestamp(System.currentTimeMillis());
return r;
}
}