package com.mfh.comn.priv.bean; import java.util.Date; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import com.mfh.comn.annotations.NoColumn; import com.mfh.comn.bean.IStringId; /** * 系统用户对象 * * @author zhangyz created on 2013-5-9 * @since Framework 1.0 */ @SuppressWarnings("serial") public class TUser implements IUser, IStringId { public static final String USERTYPE_SYS = "2";//系统管理员 public static final String USERTYPE_NOTSYS = "1";//普通用户 public static final String USERTYPE_TENANT = "3";//系统租户,与TUser.USERTYPE_SYS等区别;也就是sass平台的付费客户;但该客户本身还有自己的最终用户。 public static String USER_SYS = "sys";//系统管理员。 /** identifier field */ protected String id; /** persistent field */ protected String loginname; /** persistent field */ protected String firstname; /** persistent field */ protected String lastname; /** persistent field */ protected String password; /** nullable persistent field */ protected Date createdate; /** nullable persistent field */ protected String createid; /** nullable persistent field */ protected Date editdate; /** nullable persistent field */ protected String editid; /** persistent field */ protected String musteditpass = "0"; /** persistent field */ protected String noeditpass ="0"; /** persistent field */ protected int state = 1; /** persistent field */ protected String type = USERTYPE_NOTSYS; //1、非系统管理员,2、系统管理员。基本不会用到,兼容老版本。 protected String tenantname; private String letterIndex; // 首字母索引 //头像信息放在本地文件,以ID串命名。 /** full constructor */ public TUser(String firstname,String lastname,Date createdate, String createid, Date editdate, String editid,String loginname, String musteditpass, String noeditpass, String password,int state, String type) { this.firstname = firstname; this.lastname = lastname; this.createdate = createdate; this.createid = createid; this.editdate = editdate; this.editid = editid; this.loginname = loginname; this.musteditpass = musteditpass; this.noeditpass = noeditpass; this.password = password; this.state = state; this.type = type; //this.id = UuidUtil.getUuid(); } public TUser(String userId) { this.state = 1; this.type = USERTYPE_NOTSYS; this.musteditpass = "0"; this.noeditpass = "0"; this.id = userId; } /** default constructor */ public TUser() { this.state = 1; this.type = USERTYPE_NOTSYS; this.musteditpass = "0"; this.noeditpass = "0"; } /** common constructor */ public TUser(String loginname,String password,String firstname, String lastname,String type) { this.loginname = loginname; this.firstname = firstname; this.lastname = lastname; this.password = password; this.type = type; this.state = 1; this.musteditpass = "0"; this.noeditpass = "0"; } /** minimal constructor */ public TUser(String loginname,String password) { this.loginname = loginname; this.password = password; this.state = 1; this.type = USERTYPE_NOTSYS; this.musteditpass = "0"; this.noeditpass = "0"; } @Override public String getId() { return this.id; } @Override public void setId(String id) { this.id = id; } /*public void setId(Serializable id) { this.id = (String)id; }*/ /** * 得到该用户的全名,姓在前,名在后.若为空,则返回登录名。 * @return String; */ @NoColumn public String getFullName(){ String fullName = ""; if(firstname != null){ fullName = firstname; } if(lastname != null) fullName = fullName + lastname; if(fullName.equals("")) fullName = loginname; return fullName; } @NoColumn @Override public void setFullName(String name){ ; } public String getFirstname() { return this.firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return this.lastname; } public void setLastname(String lastname) { this.lastname = lastname; } @Override public Date getCreatedate() { return this.createdate; } @Override public void setCreatedate(Date createdate) { this.createdate = createdate; } @Override public String getLoginname() { return this.loginname; } @Override public void setLoginname(String loginname) { this.loginname = loginname; } @Override public void setCreateid(String createid) { this.createid = createid; } @Override public String getCreateid() { return this.createid; } public Date getEditdate() { return this.editdate; } public void setEditdate(Date editdate) { this.editdate = editdate; } public String getEditid() { return this.editid; } public void setEditid(String editid) { this.editid = editid; } //为兼容旧版的数据库,保留,不提倡使用 public String getMusteditpass() { return this.musteditpass; } public void setMusteditpass(String musteditpass) { this.musteditpass = musteditpass; } public String getNoeditpass() { return this.noeditpass; } public void setNoeditpass(String noeditpass) { this.noeditpass = noeditpass; } @Override public String getPassword() { return this.password; } @Override public void setPassword(String password) { this.password = password; } @Override public int getState() { return this.state; } @Override public void setState(int state) { this.state = state; } @Override public String getType() { return this.type; } @Override public void setType(String type) { if (StringUtils.isBlank(type)) return;//加的补丁,客户端没有设置 this.type = type; } @Override public String toString() { return new ToStringBuilder(this) .append("id", getId()) .toString(); } @Override public boolean equals(Object obj){ if(obj==this) return true; if(!(obj instanceof TUser)) return false; TUser user = (TUser)obj; return new EqualsBuilder().append(user.getId(),this.getId()).isEquals(); } public String getTenantname() { return tenantname; } public void setTenantname(String tenantname) { this.tenantname = tenantname; } @Override public int hashCode(){ return new HashCodeBuilder() .append(getId()) .toHashCode(); } //用于修改密码的场合。 @NoColumn public String getPasswordOld() { return null;//password; } @NoColumn public void setPasswordOld(String passwordOld) { //this.password = passwordOld; } @NoColumn public String getPasswordNew(){ return null; } @NoColumn public void setPasswordNew(String newWord){ ; } public String getLetterIndex() { return letterIndex; } public void setLetterIndex(String letterIndex) { this.letterIndex = letterIndex; } /** * 对象克隆的方法,上面要继承C */ /* public Object clone() { try{ //sava the object into a byte arr ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bout); out.writeObject(this); out.close(); //read a cloned object form the byte arr above ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); ObjectInputStream in = new ObjectInputStream(bin); Object obj = in.readObject(); in.close(); return obj; }catch(Exception e){ return null; } } */ }