package com.uas.sso.entity; import com.alibaba.fastjson.annotation.JSONField; import java.io.Serializable; import java.sql.Timestamp; import java.util.List; import javax.persistence.*; import com.uas.sso.core.Const; import org.codehaus.jackson.annotate.JsonIgnore; /** * 企业实体 * * @author wangmh * @date 2018/1/4 */ @Entity @Table(name = "sso$userspace") public class Userspace implements Serializable { /** * */ private static final long serialVersionUID = 1L; /** * 企业uu号 */ @Id @Column(name = "spaceuu") private Long spaceUU; /** * 企业名称 */ @Column(name = "space_name", nullable = false, unique = true, length = 99) private String spaceName; /** * 法定代表人 */ @Column(name = "corporation", length = 20) private String corporation; /** * 注册日期 */ @Column(name = "space_register_date") private Timestamp registerDate; /** * 管理员uu号 */ @Column(name = "adminuu") private Long adminUU; /** * 管理员 */ @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REFRESH}) @JoinColumn(name = "adminuu", insertable=false, updatable=false) private User admin; /** * 营业执照号 */ @Column(name = "business_code", unique = true, length = 100) private String businessCode; /** * 营业执照 */ @Column(name = "business_code_image") private String businessCodeImage; /** * 注册地址 */ @Column(name = "reg_address") private String regAddress; /** * 注册地址所在省份、州、直辖市、行政区 */ @Column(name = "reg_province", length = 50) private String regProvince; /** * 注册地址所在城市 */ @Column(name = "reg_city", length = 50) private String regCity; /** * 注册地址所在区域 */ @Column(name = "reg_district", length = 50) private String regDistrict; /** * 注册地址所在街道 */ @Column(name = "reg_street", length = 200) private String regStreet; /** * 公司地址经度 */ @Column(name = "company_longitude", length = 50) private String companyLongitude; /** * 公司地址纬度 */ @Column(name = "company_latitude", length = 50) private String companyLatitude; /** * 公司所在国家 */ @Column(name = "company_country", length = 50) private String companyCountry; /** * 公司所在省份、州、直辖市、行政区 */ @Column(name = "company_province", length = 50) private String companyProvince; /** * 公司所在城市 */ @Column(name = "company_city") private String companyCity; /** * 公司地址 */ @Column(name = "company_address") private String companyAddress; /** * 企业信息认证状态 */ @Column(name = "valid_code", nullable = false) private Short validCode; /** * logo图片 */ @Column(name = "logo_image") private String logoImage; /** * 企业联系电话 */ @Column(name = "telephone", length = 20) private String telephone; /** * 主营业务范围 */ @Column(name = "main_business") private String mainBusiness; /** * 对公银行账户 */ @Column(name = "bank_account") private String bankAccount; /** * 对公银行账户开户行 */ @Column(name = "bank") private String bank; /** * 企业域名 */ @Column(name = "domain") private String domain; /** * 行业 */ @Column(name = "profession") private String profession; /** * 经营范围标签,逗号分隔 */ @Column(name = "tags") private String tags; /** * 企业注册地区 */ @Column(name = "area") private String area; /** * 邀请人企业uu号 */ @Column(name = "invite_space_uu") private Long inviteSpaceUU; /** * 邀请人uu号 */ @Column(name = "invite_user_uu") private Long inviteUserUU; /** * 私钥 */ @Column(name = "access_secret") private String accessSecret; /** * 企业对应erp的地址 */ @Column(name = "website") private String website; /** * 企业下的用户 */ @com.fasterxml.jackson.annotation.JsonIgnore @ManyToMany @JoinTable(name = "sso$user_userspace", joinColumns = {@JoinColumn(name="space_uu", referencedColumnName="spaceuu")}, inverseJoinColumns = {@JoinColumn(name="user_uu", referencedColumnName="useruu")}) private List users; /** * 企业开通的应用 */ @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "sso$app_userspace", joinColumns = {@JoinColumn(name="space_uu", referencedColumnName="spaceuu")}, inverseJoinColumns = {@JoinColumn(name="app_uid", referencedColumnName="uid_")}) private List apps; public Userspace() { } public Userspace(Long spaceUU) { this.spaceUU = spaceUU; } public Userspace(String spaceName) { this.spaceName = spaceName; } public Long getSpaceUU() { return spaceUU; } public void setSpaceUU(Long spaceUU) { this.spaceUU = spaceUU; } public String getSpaceName() { if (spaceName.contains(Const.REPEAT_SEPARATOR)) { return spaceName.substring(0, spaceName.indexOf(Const.REPEAT_SEPARATOR)); } return spaceName; } public void setSpaceName(String spaceName) { this.spaceName = spaceName; } public String getCorporation() { return corporation; } public void setCorporation(String corporation) { this.corporation = corporation; } public Timestamp getRegisterDate() { return registerDate; } public void setRegisterDate(Timestamp registerDate) { this.registerDate = registerDate; } public Long getAdminUU() { return adminUU; } public void setAdminUU(Long adminUU) { this.adminUU = adminUU; } public User getAdmin() { return admin; } public void setAdmin(User admin) { this.admin = admin; } public String getBusinessCode() { if (businessCode.contains(Const.REPEAT_SEPARATOR)) { return businessCode.substring(0, businessCode.indexOf(Const.REPEAT_SEPARATOR)); } return businessCode; } public void setBusinessCode(String businessCode) { this.businessCode = businessCode; } public String getBusinessCodeImage() { return businessCodeImage; } public void setBusinessCodeImage(String businessCodeImage) { this.businessCodeImage = businessCodeImage; } public String getRegAddress() { return regAddress; } public void setRegAddress(String regAddress) { this.regAddress = regAddress; } public String getRegProvince() { return regProvince; } public void setRegProvince(String regProvince) { this.regProvince = regProvince; } public String getRegCity() { return regCity; } public void setRegCity(String regCity) { this.regCity = regCity; } public String getRegDistrict() { return regDistrict; } public void setRegDistrict(String regDistrict) { this.regDistrict = regDistrict; } public String getRegStreet() { return regStreet; } public void setRegStreet(String regStreet) { this.regStreet = regStreet; } public String getCompanyLongitude() { return companyLongitude; } public void setCompanyLongitude(String companyLongitude) { this.companyLongitude = companyLongitude; } public String getCompanyLatitude() { return companyLatitude; } public void setCompanyLatitude(String companyLatitude) { this.companyLatitude = companyLatitude; } public String getCompanyCountry() { return companyCountry; } public void setCompanyCountry(String companyCountry) { this.companyCountry = companyCountry; } public String getCompanyProvince() { return companyProvince; } public void setCompanyProvince(String companyProvince) { this.companyProvince = companyProvince; } public String getCompanyCity() { return companyCity; } public void setCompanyCity(String companyCity) { this.companyCity = companyCity; } public String getCompanyAddress() { return companyAddress; } public void setCompanyAddress(String companyAddress) { this.companyAddress = companyAddress; } public Short getValidCode() { return validCode; } public void setValidCode(Short validCode) { this.validCode = validCode; } public String getLogoImage() { return logoImage; } public void setLogoImage(String logoImage) { this.logoImage = logoImage; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getMainBusiness() { return mainBusiness; } public void setMainBusiness(String mainBusiness) { this.mainBusiness = mainBusiness; } public String getBankAccount() { return bankAccount; } public void setBankAccount(String bankAccount) { this.bankAccount = bankAccount; } public String getBank() { return bank; } public void setBank(String bank) { this.bank = bank; } public String getDomain() { return domain; } public void setDomain(String domain) { this.domain = domain; } @JsonIgnore @JSONField(serialize = false) public List getUsers() { return users; } public void setUsers(List users) { this.users = users; } @JsonIgnore @JSONField(serialize = false) public List getApps() { return apps; } public void setApps(List apps) { this.apps = apps; } public String getProfession() { return profession; } public void setProfession(String profession) { this.profession = profession; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; } public String getArea() { return area; } public void setArea(String area) { this.area = area; } public Long getInviteSpaceUU() { return inviteSpaceUU; } public void setInviteSpaceUU(Long inviteSpaceUU) { this.inviteSpaceUU = inviteSpaceUU; } public Long getInviteUserUU() { return inviteUserUU; } public void setInviteUserUU(Long inviteUserUU) { this.inviteUserUU = inviteUserUU; } @JsonIgnore @JSONField(serialize = false) public String getAccessSecret() { return accessSecret; } public void setAccessSecret(String accessSecret) { this.accessSecret = accessSecret; } public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } /** * 将企业信息变成视图 * @return */ public UserSpaceView toView() { UserSpaceView userSpaceView = new UserSpaceView(); userSpaceView.setSpaceUU(this.getSpaceUU()); userSpaceView.setSpaceName(this.getSpaceName()); userSpaceView.setCorporation(this.getCorporation()); userSpaceView.setRegisterDate(this.getRegisterDate()); userSpaceView.setAdmin(this.getAdmin().toView()); userSpaceView.setBusinessCode(this.getBusinessCode()); userSpaceView.setBusinessCodeImage(this.getBusinessCodeImage()); userSpaceView.setRegAddress(this.getRegAddress()); userSpaceView.setValidCode(this.getValidCode()); userSpaceView.setLogoImage(this.getLogoImage()); userSpaceView.setTelephone(this.getTelephone()); userSpaceView.setProfession(this.getProfession()); userSpaceView.setTags(this.getTags()); userSpaceView.setArea(this.getArea()); return userSpaceView; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Userspace userspace = (Userspace) o; return spaceUU.equals(userspace.spaceUU); } @Override public int hashCode() { return spaceUU.hashCode(); } }