diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/SecurityChangePasswordDto.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/SecurityChangePasswordDto.java new file mode 100644 index 0000000..e8c9464 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/SecurityChangePasswordDto.java @@ -0,0 +1,35 @@ +package com.vetti.hotake.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * 修改密码DTO + * + * @author vetti + * @date 2026-02-02 + */ +@Data +@ApiModel("修改密码请求") +public class SecurityChangePasswordDto +{ + /** 当前密码 */ + @ApiModelProperty(value = "当前密码", required = true) + @NotBlank(message = "当前密码不能为空") + private String currentPassword; + + /** 新密码 */ + @ApiModelProperty(value = "新密码", required = true) + @NotBlank(message = "新密码不能为空") + @Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间") + private String newPassword; + + /** 确认新密码 */ + @ApiModelProperty(value = "确认新密码", required = true) + @NotBlank(message = "确认密码不能为空") + private String confirmPassword; +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/SecuritySessionVo.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/SecuritySessionVo.java new file mode 100644 index 0000000..f6ba471 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/SecuritySessionVo.java @@ -0,0 +1,65 @@ +package com.vetti.hotake.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 登录会话VO + * + * @author vetti + * @date 2026-02-02 + */ +@Data +@ApiModel("登录会话信息") +public class SecuritySessionVo +{ + /** 会话ID */ + @ApiModelProperty("会话ID") + private Long id; + + /** 设备名称(浏览器 + 操作系统) */ + @ApiModelProperty("设备名称") + private String deviceName; + + /** 设备类型 */ + @ApiModelProperty("设备类型") + private String deviceType; + + /** 浏览器 */ + @ApiModelProperty("浏览器") + private String browser; + + /** 操作系统 */ + @ApiModelProperty("操作系统") + private String os; + + /** IP地址 */ + @ApiModelProperty("IP地址") + private String ipAddress; + + /** 地理位置 */ + @ApiModelProperty("地理位置") + private String location; + + /** 登录时间 */ + @ApiModelProperty("登录时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date loginTime; + + /** 最后活动时间 */ + @ApiModelProperty("最后活动时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date lastActivityTime; + + /** 是否当前会话 */ + @ApiModelProperty("是否当前会话") + private Boolean isCurrent; + + /** 是否活跃 */ + @ApiModelProperty("是否活跃") + private Boolean isActive; +}