/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.cms.entity;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.jinhe.tss.cms.CMSConstants;
import com.jinhe.tss.core.Config;
import com.jinhe.tss.core.persistence.IEntity;
import com.jinhe.tss.core.sso.context.Context;
import com.jinhe.tss.core.web.dispaly.grid.GridAttributesMap;
import com.jinhe.tss.core.web.dispaly.grid.IGridNode;
/**
* <p> 文件附件Attachment实体对象</p>
*/
@Entity
@Table(name = "cms_attachment")
public class Attachment implements IEntity, IGridNode {
@EmbeddedId
private AttachmentId id; //复合主键
@Column(nullable = false)
private Integer type; //附件类型 1:图片 2:office文档
@Column(nullable = false)
private String name; //附件名称
@Column(nullable = false)
private String fileName; //选择上传的文件名 text
private String fileExt; //文件后缀 .gif
@Column(nullable = false)
private String appCode; //应用Code
@Column(nullable = false)
private String url; //值默认为 "/download.fun?id="
@Column(nullable = false)
private String localPath;
private Date uploadDate; //上传日期
@Transient
private String uploadName; //上传后生成的下载路径
public String toString(){
return "(id:(" + this.id + "), name:" + this.name
+ ", type:" + this.type + ", localPath:" + this.localPath + ", fileName:" + this.fileName + ")" ;
}
public String getAppCode() {
return appCode;
}
public void setAppCode(String appCode) {
this.appCode = appCode;
}
public String getLocalPath() {
return localPath;
}
public void setLocalPath(String localPath) {
this.localPath = localPath;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public AttachmentId getId() {
return id;
}
public void setId(AttachmentId attachmentId) {
this.id = attachmentId;
}
public String getFileExt() {
return fileExt;
}
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Date getUploadDate() {
return uploadDate;
}
public void setUploadDate(Date uploadDate) {
this.uploadDate = uploadDate;
}
public boolean isImage(){
return CMSConstants.ATTACHMENTTYPE_PICTURE.equals(type);
}
public boolean isOfficeDoc(){
return CMSConstants.ATTACHMENTTYPE_OFFICE.equals(type);
}
public static boolean isImage(Integer type){
return CMSConstants.ATTACHMENTTYPE_PICTURE.equals(type);
}
public static boolean isOfficeDoc(Integer type){
return CMSConstants.ATTACHMENTTYPE_OFFICE.equals(type);
}
public GridAttributesMap getAttributes(GridAttributesMap map) {
map.put("seqNo", id.getSeqNo());
if(fileName != null){
map.put("fileName", fileName.substring(fileName.indexOf("_") + 1));
}
map.put("fileExt", fileExt == null ? "" : fileExt.toLowerCase());
map.put("uploadName", uploadName);
map.put("type", type);
map.put("name", name);
return map;
}
public String getUploadName() {
return uploadName;
}
public void setUploadName(String uploadName) {
this.uploadName = uploadName;
}
/**
* 返回格式类似:http://localhost:8088/cms/download.fun?id=1216&seqNo=1
* @param baseUrl
* @return
*/
public String getDownloadUrl(String baseUrl){
if( this.appCode.equalsIgnoreCase(Config.getAttribute(Config.APPLICATION_CODE)) ) {
return baseUrl + this.getUrl() + this.id.getArticleId() + "&seqNo=" + this.id.getSeqNo();
}
return "";
}
/**
* 返回格式类似:http://localhost:8088/cms/download.fun?id=1216&seqNo=1
* @param baseUrl
* @return
*/
public String getDownloadUrl(){
String baseUrl = Context.getApplicationContext().getCurrentAppServer().getBaseURL();
return this.getDownloadUrl(baseUrl);
}
/**
* 返回格式类似:download.fun?id=1216&seqNo=1
* @param baseUrl
* @return
*/
public String getRelationDownloadUrl(){
String temp = this.getUrl().substring(1); //去掉 '/download.fun?id=' 的 '/'
return temp + this.id.getArticleId() + "&seqNo=" + this.id.getSeqNo();
}
}