feat: 为 Batch 1 请求 DTO 补全 @Schema 中文描述注解

13 个 DTO 共补全 73 个字段的中文描述:
- 认证相关: LoginRequest, RegisterRequest, ResetPasswordRequest, RefreshTokenRequest
- 管理员相关: AdminLoginRequest, AdminCreateRequest, AdminUpdateRequest, AdminPageRequest
- 用户相关: UserCreateRequest, UserUpdateRequest, UserPageRequest, UserProfileUpdateRequest
- 分析相关: AnalyticsQueryRequest

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 21:37:47 +08:00
parent f010761871
commit c80c7b6bbe
13 changed files with 98 additions and 12 deletions
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Email;
@@ -21,39 +22,45 @@ public class AdminCreateRequest {
*/
@NotBlank(message = "账号不能为空")
@Size(min = 3, max = 50, message = "账号长度必须在3-50个字符之间")
@Schema(description = "管理员账号")
private String account;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
@Schema(description = "初始密码")
private String password;
/**
* 管理员姓名
*/
@NotBlank(message = "姓名不能为空")
@Size(min = 2, max = 50, message = "姓名长度必须在2-50个字符之间")
@Schema(description = "管理员姓名")
private String username;
/**
* 邮箱
*/
@Email(message = "邮箱格式不正确")
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱")
private String email;
/**
* 手机号
*/
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
* 头像URL
*/
@Size(max = 500, message = "头像URL长度不能超过500个字符")
@Schema(description = "头像URL")
private String avatar;
/**
@@ -61,22 +68,26 @@ public class AdminCreateRequest {
*/
@NotBlank(message = "角色不能为空")
@Pattern(regexp = "^(super_admin|admin|operator)$", message = "角色必须是super_admin、admin或operator")
@Schema(description = "角色(super_admin/admin/operator")
private String role;
/**
* 权限列表(JSON格式)
*/
@Schema(description = "权限列表(JSON格式)")
private String permissions;
/**
* 所属部门
*/
@Size(max = 50, message = "部门长度不能超过50个字符")
@Schema(description = "所属部门")
private String department;
/**
* 职位
*/
@Size(max = 50, message = "职位长度不能超过50个字符")
@Schema(description = "职位")
private String position;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@@ -19,12 +20,14 @@ public class AdminLoginRequest {
*/
@NotBlank(message = "账号不能为空")
@Size(min = 3, max = 50, message = "账号长度必须在3-50个字符之间")
@Schema(description = "管理员账号")
private String account;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
@Schema(description = "管理员密码")
private String password;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import com.emotion.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -20,40 +21,47 @@ public class AdminPageRequest extends BasePageRequest {
* 账号
*/
@Size(max = 50, message = "账号长度不能超过50个字符")
@Schema(description = "账号(模糊搜索)")
private String account;
/**
* 姓名
*/
@Size(max = 50, message = "姓名长度不能超过50个字符")
@Schema(description = "姓名(模糊搜索)")
private String username;
/**
* 邮箱
*/
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱(模糊搜索)")
private String email;
/**
* 手机号
*/
@Size(max = 20, message = "手机号长度不能超过20个字符")
@Schema(description = "手机号(模糊搜索)")
private String phone;
/**
* 角色
*/
@Size(max = 20, message = "角色长度不能超过20个字符")
@Schema(description = "角色")
private String role;
/**
* 状态: 0-禁用, 1-正常
*/
@Schema(description = "状态(0-禁用,1-正常)")
private Integer status;
/**
* 部门
*/
@Size(max = 50, message = "部门长度不能超过50个字符")
@Schema(description = "部门(模糊搜索)")
private String department;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Email;
@@ -20,12 +21,14 @@ public class AdminUpdateRequest {
* ID
*/
@NotBlank(message = "ID不能为空")
@Schema(description = "管理员ID")
private String id;
/**
* 管理员姓名
*/
@Size(min = 2, max = 50, message = "姓名长度必须在2-50个字符之间")
@Schema(description = "管理员姓名")
private String username;
/**
@@ -33,45 +36,53 @@ public class AdminUpdateRequest {
*/
@Email(message = "邮箱格式不正确")
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱")
private String email;
/**
* 手机号
*/
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
* 头像URL
*/
@Size(max = 500, message = "头像URL长度不能超过500个字符")
@Schema(description = "头像URL")
private String avatar;
/**
* 角色
*/
@Pattern(regexp = "^(super_admin|admin|operator)$", message = "角色必须是super_admin、admin或operator")
@Schema(description = "角色(super_admin/admin/operator")
private String role;
/**
* 权限列表(JSON格式)
*/
@Schema(description = "权限列表(JSON格式)")
private String permissions;
/**
* 状态: 0-禁用, 1-正常
*/
@Schema(description = "状态(0-禁用,1-正常)")
private Integer status;
/**
* 所属部门
*/
@Size(max = 50, message = "部门长度不能超过50个字符")
@Schema(description = "所属部门")
private String department;
/**
* 职位
*/
@Size(max = 50, message = "职位长度不能超过50个字符")
@Schema(description = "职位")
private String position;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -23,6 +24,7 @@ public class LoginRequest extends BaseRequest {
*/
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
@@ -30,5 +32,6 @@ public class LoginRequest extends BaseRequest {
*/
@NotBlank(message = "验证码不能为空")
@Size(min = 6, max = 6, message = "验证码必须为6位")
@Schema(description = "短信验证码")
private String smsCode;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -19,5 +20,6 @@ public class RefreshTokenRequest extends BaseRequest {
* 刷新令牌
*/
@NotBlank(message = "刷新令牌不能为空")
@Schema(description = "刷新令牌")
private String refreshToken;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -23,6 +24,7 @@ public class RegisterRequest extends BaseRequest {
*/
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号(作为账号)")
private String phone;
/**
@@ -30,6 +32,7 @@ public class RegisterRequest extends BaseRequest {
*/
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
@Schema(description = "密码")
private String password;
/**
@@ -37,5 +40,6 @@ public class RegisterRequest extends BaseRequest {
*/
@NotBlank(message = "验证码不能为空")
@Size(min = 6, max = 6, message = "验证码必须为6位")
@Schema(description = "短信验证码")
private String smsCode;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -24,6 +25,7 @@ public class ResetPasswordRequest extends BaseRequest {
*/
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
@@ -31,12 +33,14 @@ public class ResetPasswordRequest extends BaseRequest {
*/
@NotBlank(message = "新密码不能为空")
@Size(min = 6, max = 20, message = "新密码长度必须在6-20个字符之间")
@Schema(description = "新密码")
private String newPassword;
/**
* 验证码(本期固定为 123456)
*/
@NotBlank(message = "验证码不能为空")
@Schema(description = "验证码")
private String captcha;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -23,31 +24,36 @@ public class UserCreateRequest extends BaseRequest {
*/
@NotBlank(message = "账号不能为空")
@Size(min = 3, max = 20, message = "账号长度必须在3-20个字符之间")
@Schema(description = "用户账号")
private String account;
/**
* 用户名
*/
@NotBlank(message = "用户名不能为空")
@Size(min = 2, max = 20, message = "用户名长度必须在2-20个字符之间")
@Schema(description = "用户名")
private String username;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
@Schema(description = "初始密码")
private String password;
/**
* 邮箱
*/
@Email(message = "邮箱格式不正确")
@Schema(description = "邮箱")
private String email;
/**
* 手机号
*/
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import com.emotion.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -20,34 +21,40 @@ public class UserPageRequest extends BasePageRequest {
* 账号
*/
@Size(max = 20, message = "账号长度不能超过20个字符")
@Schema(description = "账号(模糊搜索)")
private String account;
/**
* 用户名
*/
@Size(max = 20, message = "用户名长度不能超过20个字符")
@Schema(description = "用户名(模糊搜索)")
private String username;
/**
* 邮箱
*/
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱(模糊搜索)")
private String email;
/**
* 手机号
*/
@Size(max = 20, message = "手机号长度不能超过20个字符")
@Schema(description = "手机号(模糊搜索)")
private String phone;
/**
* 状态
*/
@Schema(description = "状态")
private Integer status;
/**
* 会员等级
*/
@Size(max = 20, message = "会员等级长度不能超过20个字符")
@Schema(description = "会员等级")
private String memberLevel;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Email;
@@ -20,6 +21,7 @@ public class UserProfileUpdateRequest {
* 昵称
*/
@Size(max = 50, message = "昵称长度不能超过50个字符")
@Schema(description = "昵称")
private String nickname;
/**
@@ -27,34 +29,40 @@ public class UserProfileUpdateRequest {
*/
@Email(message = "邮箱格式不正确")
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱")
private String email;
/**
* 手机号
*/
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
* 头像URL
*/
@Size(max = 500, message = "头像URL长度不能超过500个字符")
@Schema(description = "头像URL")
private String avatar;
/**
* 生日
*/
@Schema(description = "生日")
private LocalDate birthDate;
/**
* 所在地
*/
@Size(max = 100, message = "所在地长度不能超过100个字符")
@Schema(description = "所在地")
private String location;
/**
* 个人简介
*/
@Size(max = 500, message = "个人简介长度不能超过500个字符")
@Schema(description = "个人简介")
private String bio;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Email;
@@ -21,18 +22,21 @@ public class UserUpdateRequest {
* ID
*/
@NotBlank(message = "ID不能为空")
@Schema(description = "用户ID")
private String id;
/**
* 用户名
*/
@Size(max = 50, message = "用户名长度不能超过50个字符")
@Schema(description = "用户名")
private String username;
/**
* 昵称
*/
@Size(max = 50, message = "昵称长度不能超过50个字符")
@Schema(description = "昵称")
private String nickname;
/**
@@ -40,45 +44,53 @@ public class UserUpdateRequest {
*/
@Email(message = "邮箱格式不正确")
@Size(max = 100, message = "邮箱长度不能超过100个字符")
@Schema(description = "邮箱")
private String email;
/**
* 手机号
*/
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@Schema(description = "手机号")
private String phone;
/**
* 头像URL
*/
@Size(max = 500, message = "头像URL长度不能超过500个字符")
@Schema(description = "头像URL")
private String avatar;
/**
* 生日
*/
@Schema(description = "生日")
private LocalDate birthDate;
/**
* 所在地
*/
@Size(max = 100, message = "所在地长度不能超过100个字符")
@Schema(description = "所在地")
private String location;
/**
* 个人简介
*/
@Size(max = 500, message = "个人简介长度不能超过500个字符")
@Schema(description = "个人简介")
private String bio;
/**
* 状态
*/
@Schema(description = "状态")
private Integer status;
/**
* 会员等级
*/
@Size(max = 20, message = "会员等级长度不能超过20个字符")
@Schema(description = "会员等级")
private String memberLevel;
}
@@ -1,5 +1,6 @@
package com.emotion.dto.request.analytics;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -10,16 +11,22 @@ import java.util.List;
public class AnalyticsQueryRequest {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(description = "开始日期")
private LocalDate startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(description = "结束日期")
private LocalDate endDate;
@Schema(description = "时间粒度(day/week/month")
private String granularity;
@Schema(description = "事件名称列表(过滤条件)")
private List<String> eventNames;
@Schema(description = "事件类型(过滤条件)")
private String eventType;
@Schema(description = "返回结果数量限制")
private Integer limit;
}