You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.1 KiB

  1. package com.example.demo.domain.vo;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import com.fasterxml.jackson.annotation.JsonIgnore;
  4. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import org.springframework.security.core.GrantedAuthority;
  8. import org.springframework.security.core.authority.SimpleGrantedAuthority;
  9. import org.springframework.security.core.userdetails.UserDetails;
  10. import java.io.Serializable;
  11. import java.util.*;
  12. @Data
  13. @NoArgsConstructor
  14. @JsonIgnoreProperties(ignoreUnknown = true)
  15. public class AdminVo implements UserDetails, Serializable {
  16. private static final long serialVersionUID = 1L;
  17. private Integer id; // 主键ID
  18. private String adminName; // 用户姓名
  19. private String account; // 账号
  20. private String password; // 密码
  21. private String machineId; // 第一个机器码
  22. private String machineIds; //第二个机器码
  23. private Byte adminStatus; // 状态(启用/不启用)
  24. private String market; // 地区
  25. private String postiton; // 职位
  26. private String remark; // 备注
  27. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  28. private Date createTime; // 创建时间
  29. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  30. private Date updateTime; // 更新时间
  31. private Integer roleId;
  32. @Override
  33. @JsonIgnore
  34. public Collection<? extends GrantedAuthority> getAuthorities() {
  35. Set<GrantedAuthority> authorities = new HashSet<>();
  36. Optional.ofNullable(postiton)
  37. .map(Integer::valueOf)
  38. .ifPresent(permValue -> {
  39. switch (permValue) {
  40. case 1:
  41. authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
  42. break;
  43. case 2:
  44. authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
  45. break;
  46. case 3:
  47. authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
  48. break;
  49. case 5:
  50. authorities.add(new SimpleGrantedAuthority("Branch_Manager"));
  51. break;
  52. default:
  53. // 可以添加默认角色或处理未知权限
  54. break;
  55. }
  56. });
  57. return authorities;
  58. }
  59. @Override
  60. public String getUsername() {
  61. return account;
  62. }
  63. @Override
  64. @JsonIgnore
  65. public boolean isAccountNonExpired() {
  66. return true; // 默认账户未过期
  67. }
  68. @Override
  69. @JsonIgnore
  70. public boolean isAccountNonLocked() {
  71. return true; // 默认账户未锁定
  72. }
  73. @Override
  74. @JsonIgnore
  75. public boolean isCredentialsNonExpired() {
  76. return true; // 默认凭证未过期
  77. }
  78. @Override
  79. @JsonIgnore
  80. public boolean isEnabled() {
  81. return adminStatus != null && adminStatus == 1;
  82. }
  83. }