package com.sohu.cache.entity;
import java.io.Serializable;
import java.util.Date;
import net.sf.json.JSONObject;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.sohu.cache.constant.AppAuditLogTypeEnum;
/**
* 资源的审批发布日志
*
* @author leifu
* @Time 2014年6月5日
*/
public class AppAuditLog implements Serializable {
private static final long serialVersionUID = 7218664733731725364L;
/**
* 日志id
*/
private Long id;
/**
* 应用id
*/
private Long appId;
/**
* 审批id
*/
private Long appAuditId;
/**
* 用户id
*/
private Long userId;
/**
* 用户
*/
private AppUser appUser;
/**
* 日志详情 是个json
*/
private String info;
/**
* 创建时间
*/
private Date createTime;
/**
* 日志类型
*/
private Integer type;
public Long getId() {
return id;
}
public void setId(Long appId) {
this.id = appId;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Long getAppAuditId() {
return appAuditId;
}
public void setAppAuditId(Long appAuditId) {
this.appAuditId = appAuditId;
}
public AppUser getAppUser() {
return appUser;
}
public void setAppUser(AppUser appUser) {
this.appUser = appUser;
}
/**
* 生成日志
* @param appDesc
* @param appUser
* @param appAuditId
* @param type
* @return
*/
public static AppAuditLog generate(AppDesc appDesc, AppUser appUser, Long appAuditId, AppAuditLogTypeEnum type){
if(appDesc == null || appUser == null || appAuditId == null){
return null;
}
AppAuditLog log = new AppAuditLog();
log.setAppId(appDesc.getAppId());
log.setUserId(appUser.getId());
log.setAppAuditId(appAuditId);
log.setType(type.value());
log.setCreateTime(new Date());
log.setInfo(JSONObject.fromObject(appDesc).toString());
return log;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this).toString();
}
}