diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/domain/BaseDomain.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/domain/BaseDomain.java
new file mode 100644
index 0000000..8d09c7a
--- /dev/null
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/domain/BaseDomain.java
@@ -0,0 +1,114 @@
+package com.supwisdom.leaveschool.common.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class BaseDomain implements Serializable{
+
+	private static final long serialVersionUID = 4209326905798750904L;
+	
+	  private String id;
+
+	  /**
+	   * 获取主键
+	   */
+	  public String getId() {
+	    return id;
+	  }
+
+	  /**
+	   * 设置ID属性,主要用于人工指定键值
+	   */
+	  public void setId(String id) {
+	    this.id = id;
+	  }
+
+	  //@ApiModelProperty(value = "CompanyID", required = true, example = "1")
+	  private String companyId = null;
+
+	  //@ApiModelProperty(value = "是否删除", hidden = true, example = "false")
+	  private Boolean deleted = false;
+
+	  //@ApiModelProperty(value = "创建人", hidden = true)
+	  private String addAccount = null;
+
+	  //@ApiModelProperty(value = "创建时间", hidden = true)
+	  private Date addTime = null;
+
+	  //@ApiModelProperty(value = "修改人", hidden = true)
+	  private String editAccount = null;
+
+	  //@ApiModelProperty(value = "修改时间", hidden = true)
+	  private Date editTime = null;
+
+	  //@ApiModelProperty(value = "删除人", hidden = true)
+	  private String deleteAccount = null;
+
+	  //@ApiModelProperty(value = "删除时间", hidden = true)
+	  private Date deleteTime = null;
+
+	  public String getCompanyId() {
+	    return companyId;
+	  }
+
+	  public void setCompanyId(String companyId) {
+	    this.companyId = companyId;
+	  }
+
+	  public Boolean isDeleted() {
+	    return deleted;
+	  }
+
+	  public void setDeleted(Boolean deleted) {
+	    this.deleted = deleted;
+	  }
+
+	  public String getAddAccount() {
+	    return addAccount;
+	  }
+
+	  public void setAddAccount(String addAccount) {
+	    this.addAccount = addAccount;
+	  }
+
+	  public Date getAddTime() {
+	    return addTime;
+	  }
+
+	  public void setAddTime(Date addTime) {
+	    this.addTime = addTime;
+	  }
+
+	  public String getEditAccount() {
+	    return editAccount;
+	  }
+
+	  public void setEditAccount(String editAccount) {
+	    this.editAccount = editAccount;
+	  }
+
+	  public Date getEditTime() {
+	    return editTime;
+	  }
+
+	  public void setEditTime(Date editTime) {
+	    this.editTime = editTime;
+	  }
+
+	  public String getDeleteAccount() {
+	    return deleteAccount;
+	  }
+
+	  public void setDeleteAccount(String deleteAccount) {
+	    this.deleteAccount = deleteAccount;
+	  }
+
+	  public Date getDeleteTime() {
+	    return deleteTime;
+	  }
+
+	  public void setDeleteTime(Date deleteTime) {
+	    this.deleteTime = deleteTime;
+	  }
+	
+}
