103 lines
2.4 KiB
Java
103 lines
2.4 KiB
Java
package com.xjhs.findmemerchant.entity;
|
||
|
||
import com.xjhs.findmemerchant.common.jpa.AbstractBaseEntity;
|
||
import com.xjhs.findmemerchant.types.CommonStatus;
|
||
import jakarta.persistence.*;
|
||
import lombok.Getter;
|
||
import lombok.Setter;
|
||
import org.hibernate.annotations.Comment;
|
||
|
||
/**
|
||
* 员工实体
|
||
* 对应表:employees
|
||
*/
|
||
@Getter
|
||
@Setter
|
||
@Entity
|
||
@Table(
|
||
name = "employees",
|
||
indexes = {
|
||
@Index(name = "idx_employees_merchant_id", columnList = "merchant_id"),
|
||
@Index(name = "idx_employees_store_id", columnList = "store_id"),
|
||
@Index(name = "idx_employees_role_id", columnList = "role_id"),
|
||
@Index(name = "idx_employees_phone", columnList = "phone")
|
||
}
|
||
)
|
||
public class Employee extends AbstractBaseEntity {
|
||
|
||
|
||
/**
|
||
* 手机号
|
||
*/
|
||
@Column(name = "phone", nullable = false, length = 11)
|
||
@Comment("手机号")
|
||
private String phone;
|
||
|
||
/**
|
||
* 员工姓名
|
||
*/
|
||
@Column(name = "name", nullable = false, length = 50)
|
||
@Comment("员工姓名")
|
||
private String name;
|
||
|
||
/**
|
||
* 状态:0-禁用 1-启用
|
||
*/
|
||
@Column(name = "status",columnDefinition = "VARCHAR(15)",length = 15, nullable = false)
|
||
@Comment("状态:0禁用 1启用")
|
||
private CommonStatus status = CommonStatus.ENABLED;
|
||
|
||
|
||
|
||
// ===== 关联关系 =====
|
||
|
||
/**
|
||
* 商户
|
||
*/
|
||
@ManyToOne(fetch = FetchType.LAZY)
|
||
@JoinColumn(name = "merchant_id", insertable = false, updatable = false)
|
||
private Merchant merchant;
|
||
|
||
/**
|
||
* 门店
|
||
*/
|
||
@ManyToOne(fetch = FetchType.LAZY)
|
||
@JoinColumn(name = "store_id", insertable = false, updatable = false)
|
||
private Store store;
|
||
|
||
/**
|
||
* 角色
|
||
*/
|
||
@ManyToOne(fetch = FetchType.LAZY)
|
||
@JoinColumn(name = "role_id", insertable = false, updatable = false)
|
||
private Role role;
|
||
|
||
// ===== 业务方法 =====
|
||
|
||
/**
|
||
* 是否为启用状态
|
||
*/
|
||
public boolean isActive() {
|
||
return this.status == CommonStatus.ENABLED;
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* 状态文案
|
||
*/
|
||
public String getStatusText() {
|
||
CommonStatus e = this.status;
|
||
return e != null ? e.getDesc() : "未知";
|
||
}
|
||
|
||
/**
|
||
* 返回脱敏手机号,例如:138****1234
|
||
*/
|
||
public String maskPhone() {
|
||
if (phone == null || phone.length() != 11) {
|
||
return phone;
|
||
}
|
||
return phone.substring(0, 3) + "****" + phone.substring(7);
|
||
}
|
||
}
|