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.

96 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 String markets; // 地区
  24. private Byte adminStatus; // 状态(启用/不启用)
  25. private List<String> market; // 地区列表
  26. private Integer roleId;// 角色ID
  27. private String postiton; // 职位
  28. private String remark; // 备注
  29. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  30. private Date createTime; // 创建时间
  31. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  32. private Date updateTime; // 更新时间
  33. @Override
  34. @JsonIgnore
  35. public Collection<? extends GrantedAuthority> getAuthorities() {
  36. Set<GrantedAuthority> authorities = new HashSet<>();
  37. Optional.ofNullable(postiton)
  38. .map(Integer::valueOf)
  39. .ifPresent(permValue -> {
  40. switch (permValue) {
  41. case 1:
  42. authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
  43. break;
  44. case 2:
  45. authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
  46. break;
  47. case 3:
  48. authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
  49. break;
  50. case 5:
  51. authorities.add(new SimpleGrantedAuthority("Branch_Manager"));
  52. break;
  53. default:
  54. // 可以添加默认角色或处理未知权限
  55. break;
  56. }
  57. });
  58. return authorities;
  59. }
  60. @Override
  61. public String getUsername() {
  62. return account;
  63. }
  64. @Override
  65. @JsonIgnore
  66. public boolean isAccountNonExpired() {
  67. return true; // 默认账户未过期
  68. }
  69. @Override
  70. @JsonIgnore
  71. public boolean isAccountNonLocked() {
  72. return true; // 默认账户未锁定
  73. }
  74. @Override
  75. @JsonIgnore
  76. public boolean isCredentialsNonExpired() {
  77. return true; // 默认凭证未过期
  78. }
  79. @Override
  80. @JsonIgnore
  81. public boolean isEnabled() {
  82. return adminStatus != null && adminStatus == 1;
  83. }
  84. }