123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- /**
- * Copyright © 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
- */
- package com.jeeplus.modules.sys.entity;
- import java.util.Date;
- import java.util.List;
- import javax.validation.constraints.NotNull;
- import com.jeeplus.common.utils.SpringContextHolder;
- import com.jeeplus.common.utils.StringUtils;
- import org.hibernate.validator.constraints.Email;
- import org.hibernate.validator.constraints.Length;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- import com.google.common.collect.Lists;
- import com.jeeplus.common.config.Global;
- import com.jeeplus.common.utils.Collections3;
- import com.jeeplus.common.utils.excel.annotation.ExcelField;
- import com.jeeplus.common.utils.excel.fieldtype.RoleListType;
- import com.jeeplus.core.persistence.DataEntity;
- /**
- * 用户Entity
- * @author jeeplus
- * @version 2016-12-05
- */
- public class User extends DataEntity<User> {
- private static final long serialVersionUID = 1L;
- private Office company; // 归属公司
- private Office office; // 归属部门
- private String loginName;// 登录名
- private String password;// 密码
- private String no; // 工号
- private String name; // 姓名
- private String email; // 邮箱
- private String phone; // 电话
- private String mobile; // 手机
- private String loginIp; // 最后登陆IP
- private Date loginDate; // 最后登陆日期
- private String loginFlag; // 是否允许登陆
- private String photo; // 头像
- private String qrCode; //二维码
- private String oldLoginName;// 原登录名
- private String newPassword; // 新密码
- private String sign;//签名
- private String oldLoginIp; // 上次登陆IP
- private Date oldLoginDate; // 上次登陆日期
-
- private Role role; // 根据角色查询用户条件
-
- private List<Role> roleList = Lists.newArrayList(); // 拥有角色列表
- public User() {
- super();
- this.loginFlag = Global.YES;
- }
-
- public User(String id){
- super(id);
- }
- public User(String id, String loginName){
- super(id);
- this.loginName = loginName;
- }
- public User(Role role){
- super();
- this.role = role;
- }
-
- public String getPhoto() {
- if("".equals(photo)){
- return SpringContextHolder.getStatic()+"/common/images/flat-avatar.png";
- }
- return photo;
- }
- public void setPhoto(String photo) {
- this.photo = photo;
- }
- public String getLoginFlag() {
- return loginFlag;
- }
- public void setLoginFlag(String loginFlag) {
- this.loginFlag = loginFlag;
- }
- public String getId() {
- return id;
- }
- @NotNull(message="归属公司不能为空")
- @ExcelField(title="归属公司", align=2, sort=20)
- public Office getCompany() {
- return company;
- }
- public void setCompany(Office company) {
- this.company = company;
- }
-
- @NotNull(message="归属部门不能为空")
- @ExcelField(title="归属部门", align=2, sort=25)
- public Office getOffice() {
- return office;
- }
- public void setOffice(Office office) {
- this.office = office;
- }
- @Length(min=1, max=100, message="登录名长度必须介于 1 和 100 之间")
- @ExcelField(title="登录名", align=2, sort=30)
- public String getLoginName() {
- return loginName;
- }
- public void setLoginName(String loginName) {
- this.loginName = loginName;
- }
- @JsonIgnore
- @Length(min=1, max=100, message="密码长度必须介于 1 和 100 之间")
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Length(min=1, max=100, message="姓名长度必须介于 1 和 100 之间")
- @ExcelField(title="姓名", align=2, sort=40)
- public String getName() {
- return name;
- }
-
- @Length(min=1, max=100, message="工号长度必须介于 1 和 100 之间")
- @ExcelField(title="工号", align=2, sort=45)
- public String getNo() {
- return no;
- }
- public void setNo(String no) {
- this.no = no;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Email(message="邮箱格式不正确")
- @Length(min=0, max=200, message="邮箱长度必须介于 1 和 200 之间")
- @ExcelField(title="邮箱", align=1, sort=50)
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
-
- @Length(min=0, max=200, message="电话长度必须介于 1 和 200 之间")
- @ExcelField(title="电话", align=2, sort=60)
- public String getPhone() {
- return phone;
- }
- public void setPhone(String phone) {
- this.phone = phone;
- }
- @Length(min=0, max=200, message="手机长度必须介于 1 和 200 之间")
- @ExcelField(title="手机", align=2, sort=70)
- public String getMobile() {
- return mobile;
- }
- public void setMobile(String mobile) {
- this.mobile = mobile;
- }
- @ExcelField(title="备注", align=1, sort=900)
- public String getRemarks() {
- return remarks;
- }
-
- @ExcelField(title="创建时间", type=0, align=1, sort=90)
- public Date getCreateDate() {
- return createDate;
- }
- @ExcelField(title="最后登录IP", type=0, align=1, sort=100)
- public String getLoginIp() {
- return loginIp;
- }
- public void setLoginIp(String loginIp) {
- this.loginIp = loginIp;
- }
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @ExcelField(title="最后登录日期", type=0, align=1, sort=110)
- public Date getLoginDate() {
- return loginDate;
- }
- public void setLoginDate(Date loginDate) {
- this.loginDate = loginDate;
- }
- public String getOldLoginName() {
- return oldLoginName;
- }
- public void setOldLoginName(String oldLoginName) {
- this.oldLoginName = oldLoginName;
- }
- public String getNewPassword() {
- return newPassword;
- }
- public void setNewPassword(String newPassword) {
- this.newPassword = newPassword;
- }
- public String getOldLoginIp() {
- if (oldLoginIp == null){
- return loginIp;
- }
- return oldLoginIp;
- }
- public void setOldLoginIp(String oldLoginIp) {
- this.oldLoginIp = oldLoginIp;
- }
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- public Date getOldLoginDate() {
- if (oldLoginDate == null){
- return loginDate;
- }
- return oldLoginDate;
- }
- public void setOldLoginDate(Date oldLoginDate) {
- this.oldLoginDate = oldLoginDate;
- }
- public Role getRole() {
- return role;
- }
- public void setRole(Role role) {
- this.role = role;
- }
- @JsonIgnore
- @ExcelField(title="拥有角色", align=1, sort=800, fieldType=RoleListType.class)
- public List<Role> getRoleList() {
- return roleList;
- }
-
- public void setRoleList(List<Role> roleList) {
- this.roleList = roleList;
- }
- @JsonIgnore
- public List<String> getRoleIdList() {
- List<String> roleIdList = Lists.newArrayList();
- for (Role role : roleList) {
- roleIdList.add(role.getId());
- }
- return roleIdList;
- }
- public void setRoleIdList(List<String> roleIdList) {
- roleList = Lists.newArrayList();
- for (String roleId : roleIdList) {
- Role role = new Role();
- role.setId(roleId);
- roleList.add(role);
- }
- }
-
- /**
- * 用户拥有的角色名称字符串, 多个角色名称用','分隔.
- */
- public String getRoleNames() {
- return Collections3.extractToString(roleList, "name", ",");
- }
-
- public boolean isAdmin(){
- return isAdmin(this.id);
- }
-
- public static boolean isAdmin(String id){
- return id != null && "1".equals(id);
- }
-
- @Override
- public String toString() {
- return id;
- }
- public void setQrCode(String qrCode) {
- this.qrCode = qrCode;
- }
- public String getQrCode() {
- return qrCode;
- }
- /**
- * @param sign the sign to set
- */
- public void setSign(String sign) {
- this.sign = sign;
- }
- /**
- * @return the sign
- */
- public String getSign() {
- return sign;
- }
- }
|