/** * Copyright © 2015-2020 JeePlus All rights reserved. */ package com.cloud.model.common; import com.cloud.model.sys.AppUser; import com.fasterxml.jackson.annotation.JsonIgnore; import com.google.common.collect.Maps; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.springframework.util.StringUtils; import javax.xml.bind.annotation.XmlTransient; import java.io.Serializable; import java.util.Map; /** * Entity支持类 * @author bsk * @version 2018-05-16 */ public abstract class BaseStringEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 实体编号(唯一标识) */ protected String id; /** * 当前用户 */ /*protected LoginAppUser currentUser;*/ /** * 当前实体分页对象 */ /* protected Page page;*/ /** * 自定义SQL(SQL标识,SQL内容) */ protected Map sqlMap; /** * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 */ protected boolean isNewRecord = false; public BaseStringEntity() { } public BaseStringEntity(String id) { this(); this.id = id; } public String getId() { return id; } public void setId(String id) { this.id = id; } @JsonIgnore @XmlTransient public Map getSqlMap() { if (sqlMap == null){ sqlMap = Maps.newHashMap(); } return sqlMap; } public void setSqlMap(Map sqlMap) { this.sqlMap = sqlMap; } /** * 插入之前执行方法,子类实现 * @param user */ public abstract void preInsert(AppUser user); /** * 更新之前执行方法,子类实现 * @param user */ public abstract void preUpdate(AppUser user); /** * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 * @return */ public boolean getIsNewRecord() { return isNewRecord || StringUtils.isEmpty(getId()); } /** * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 */ public void setIsNewRecord(boolean isNewRecord) { this.isNewRecord = isNewRecord; } @Override public boolean equals(Object obj) { if (null == obj) { return false; } if (this == obj) { return true; } if (!getClass().equals(obj.getClass())) { return false; } BaseStringEntity that = (BaseStringEntity) obj; return null == this.getId() ? false : this.getId().equals(that.getId()); } @Override public String toString() { return ReflectionToStringBuilder.toString(this); } /** * 删除标记(0:正常;1:删除;2:审核;) */ public static final String DEL_FLAG_NORMAL = "0"; public static final String DEL_FLAG_DELETE = "1"; public static final String DEL_FLAG_AUDIT = "2"; }