| 
					
				 | 
			
			
				@@ -0,0 +1,140 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.zcxk.core.common.pojo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fasterxml.jackson.annotation.JsonIgnore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.ApiModelProperty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.Data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.security.core.GrantedAuthority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.security.core.userdetails.UserDetails; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.util.Assert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.Serializable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class LoginUser implements UserDetails { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final long serialVersionUID = 2688116832144932826L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Integer id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="用户名") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="姓名") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="手机号码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String phoneNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="类型,1超级管理员,-999站点管理员,2普通用户") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="公司id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Integer companyId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="部门id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Integer departmentId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="租户标识") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String tenantId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="用户权限类型") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Integer permissonType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiModelProperty(value="用户角色id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Integer roleId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String LoginToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //数据权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<ProgramItem> programItemList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //同一个手机号下的所有用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String userInfos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<String>appIds; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Set<GrantedAuthority> authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public LoginUser(Set<GrantedAuthority> authorities) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.authorities = authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public LoginUser(Integer id, String username, String phoneNumber, String type, String tenantId, Set<GrantedAuthority> authorities) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.username = username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.phoneNumber = phoneNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.type = type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.tenantId = tenantId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.authorities = Collections.unmodifiableSet(sortAuthorities(authorities)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Collection<? extends GrantedAuthority> getAuthorities() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getPassword() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static SortedSet<GrantedAuthority> sortAuthorities(Collection<? extends GrantedAuthority> authorities) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.notNull(authorities, "Cannot pass a null GrantedAuthority collection"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SortedSet<GrantedAuthority> sortedAuthorities = new TreeSet(new AuthorityComparator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Iterator var2 = authorities.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while(var2.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            GrantedAuthority grantedAuthority = (GrantedAuthority)var2.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Assert.notNull(grantedAuthority, "GrantedAuthority list cannot contain any null elements"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sortedAuthorities.add(grantedAuthority); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sortedAuthorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isAccountNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isAccountNonLocked() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isCredentialsNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @JsonIgnore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isEnabled() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static class AuthorityComparator implements Comparator<GrantedAuthority>, Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private static final long serialVersionUID = 500L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private AuthorityComparator() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int compare(GrantedAuthority g1, GrantedAuthority g2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (g2.getAuthority() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return g1.getAuthority() == null ? 1 : g1.getAuthority().compareTo(g2.getAuthority()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setAuthorities(Set<GrantedAuthority> authorities) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.authorities = Collections.unmodifiableSet(sortAuthorities(authorities)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |