content: package com.xiliu.server.common.domain;
  
  import com.xiliu.server.modules.system.entity.XlUser;
  import lombok.Data;
  import org.springframework.security.core.GrantedAuthority;
  import org.springframework.security.core.userdetails.UserDetails;
  
  import java.io.Serializable;
  import java.util.Collection;
  import java.util.Date;
  import java.util.Set;
  
  /**
   * @author xiliu
   * @description 用户信息
   * @date 2023/3/8
   */
  @Data
  public class LoginUser implements UserDetails {
      private static final long serialVersionUID = 1L;
  
      /**
       * 用户唯一标识
       */
      private String token;
      /**
       * 用户名id
       */
      private Long userId;
  
      /**
       * 用户名
       */
      private String userName;
  
      /**
       * 登录时间
       */
      private Long loginTime;
  
      /**
       * 过期时间
       */
      private Long expireTime;
  
      /**
       * 登录IP地址
       */
      private String ipaddr;
      /**
       * 登录地点
       */
      private String loginLocation;
  
      /**
       * 浏览器类型
       */
      private String browser;
  
      /**
       * 操作系统
       */
      private String os;
  
      /**
       * 权限列表
       */
      private Set<String> permissions;
  
      /**
       * 角色列表
       */
      private Set<String> roles;
  
      /**
       * 用户信息
       */
      private XlUser user;
  
      /**
       * 租户租赁截止日期--dhr
       */
      private Date tenantEndDate;
  
      /**
       * 租户状态
       */
      private Integer tenantStatus;
  
      @Override
      public Collection<? extends GrantedAuthority> getAuthorities() {
          return null;
      }
  
      @Override
      public String getPassword() {
          return user.getPassWord();
      }
  
      @Override
      public String getUsername() {
          return user.getUserCode();
      }
      /**
       * 账户是否未过期
       **/
      @Override
      public boolean isAccountNonExpired() {
          return true;
      }
      /**
       * 账户是否未锁定
       **/
      @Override
      public boolean isAccountNonLocked() {
          return true;
      }
      /**
       * 密码是否未过期
       **/
      @Override
      public boolean isCredentialsNonExpired() {
          return true;
      }
      /**
       * 账户是否激活
       **/
      @Override
      public boolean isEnabled() {
          return user.getStatus() == 0;
      }
  }
  