UserVO.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package seecoder.devcloud.web.vo.user;
  2. import com.fasterxml.jackson.annotation.JsonProperty;
  3. import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  4. import lombok.Data;
  5. import org.springframework.beans.BeanUtils;
  6. import seecoder.devcloud.common.serializer.TimestampLocalDateTimeSerializer;
  7. import seecoder.devcloud.web.enums.UserIdentity;
  8. import seecoder.devcloud.web.po.user.User;
  9. import java.time.LocalDateTime;
  10. @Data
  11. public class UserVO {
  12. private Integer id;
  13. private String username;
  14. private String email;
  15. private UserIdentity role;
  16. //nickname : String - 昵称 | [a-zA-Z0-9]{4-16}
  17. //bio : String - 用户自我描述 | {0-100}
  18. private String nickname;
  19. private String bio;
  20. @JsonProperty("created_at")
  21. @JsonSerialize(using = TimestampLocalDateTimeSerializer.class)
  22. private LocalDateTime createdAt;
  23. private UserVO() {
  24. this.id = 0;
  25. this.username = "管理员";
  26. this.bio="bio : String - 用户自我描述 | {0-100}";
  27. }
  28. public UserVO(User user) {
  29. BeanUtils.copyProperties(user, this);
  30. }
  31. public static final UserVO ADMIN = new UserVO();
  32. }