/* * Copyright [duowan.com] * Web Site: http://www.duowan.com * Since 2005 - 2012 */ package com.fpcms.model; import static com.github.rapid.common.util.DateFormats.DATE_FORMAT; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import com.github.rapid.common.util.DateConvertUtil; import com.fpcms.common.util.BlogPingUtil; import com.fpcms.common.util.ChineseSegmenterUtil; import com.fpcms.common.util.StringHelper; import com.fpcms.common.util.Tags; /** * tableName: cms_content [CmsContent] * * @author badqiu email:badqiu(a)gmail.com * @version 1.0 * @since 1.0 */ public class CmsContent implements java.io.Serializable{ private static final long serialVersionUID = 5454155825314635342L; //date formats public static final String FORMAT_DATE_CREATED = DATE_FORMAT; public static final String FORMAT_DATE_LAST_MODIFIED = DATE_FORMAT; //可以直接使用: @Length(max=50,message="用户名长度不能大于50")显示错误消息 //columns START /** * id db_column: id */ private java.lang.Long id; /** * 频道ID db_column: channel_code */ @Length(max=50) @NotBlank private java.lang.String channelCode; /** * 标签 db_column: tags */ private Set<String> tags = new HashSet<String>(); /** * 网页头title db_column: head_title */ @Length(max=200) private java.lang.String headTitle; /** * 标题 db_column: title */ @Length(max=200) @NotBlank private java.lang.String title; /** * 内容 db_column: content */ @Length(max=65535) @NotBlank private java.lang.String content; /** * 作者 db_column: author */ @Length(max=50) private java.lang.String author; /** * 创建时间 db_column: date_created */ private java.util.Date dateCreated; /** * 更新时间 db_column: date_last_modified */ private java.util.Date dateLastModified; /** * 网站 db_column: site */ @Length(max=50) @NotBlank private java.lang.String site; private Long level; private String searchKeyword; /** * 来源URL */ @Length(max=200) private String sourceUrl; public CmsContent(){ } public CmsContent( java.lang.Long id ){ this.id = id; } public java.lang.Long getId() { return this.id; } public void setId(java.lang.Long value) { this.id = value; } public java.lang.String getChannelCode() { return this.channelCode; } public void setChannelCode(java.lang.String value) { this.channelCode = StringUtils.trim(value); } public java.lang.String getTags() { return Tags.toString(tags); } public void setTags(java.lang.String value) { this.tags = Tags.fromString(value); } public Set<String> getTagSet() { return this.tags; } public java.lang.String getHeadTitle() { return this.headTitle; } public void setHeadTitle(java.lang.String value) { this.headTitle = StringUtils.trim(value); } public java.lang.String getTitle() { return this.title; } public void setTitle(java.lang.String value) { this.title = StringUtils.trim(value); } public String getKeyword() { if(StringUtils.isBlank(title)) { return null; } List<String> minLengthKeywords = new ArrayList(ChineseSegmenterUtil.getMinLengthKeywords(title, 3, true)); StringHelper.removeRegexMatch(minLengthKeywords, ".*\\d.*"); return StringUtils.join(minLengthKeywords,","); } public String getMetaDescription() { return StringHelper.getMetaDescription(getContent()); } public java.lang.String getContent() { return this.content; } public void setContent(java.lang.String value) { this.content = value; } public java.lang.String getAuthor() { return this.author; } public void setAuthor(java.lang.String value) { this.author = value; } public java.util.Date getDateCreated() { return this.dateCreated; } public void setDateCreated(java.util.Date value) { this.dateCreated = value; } public java.util.Date getDateLastModified() { return this.dateLastModified; } public void setDateLastModified(java.util.Date value) { this.dateLastModified = value; } public java.lang.String getSite() { return this.site; } public void setSite(java.lang.String value) { this.site = StringUtils.trim(value); } public Long getLevel() { return level; } public void setLevel(Long level) { this.level = level; } public String getSearchKeyword() { return searchKeyword; } public void setSearchKeyword(String searchKeyword) { this.searchKeyword = searchKeyword; } public String getSourceUrl() { return sourceUrl; } public void setSourceUrl(String sourceUrl) { this.sourceUrl = sourceUrl; } public String getSourceSite() { if(StringUtils.isBlank(sourceUrl)) { return null; } try { return new URL(sourceUrl).getHost(); } catch (MalformedURLException e) { return sourceUrl; } } /** * 得到访问的URL地址 * @return */ public String getUrl() { return "http://"+site+getUri(); } /** * 得到访问的URI地址 * @return */ public String getUri() { return "/content/"+DateConvertUtil.format(getDateCreated(), "yyyyMMdd")+"/"+getId()+".do"; } public String toString() { return ToStringBuilder.reflectionToString(this); } public int hashCode() { return new HashCodeBuilder() .append(getId()) .toHashCode(); } public static void baiduBlogPing(CmsContent cmsContent) { // if(!AppModeUtil.isProdAppMode()) { // return; // } if("localhost".equals(cmsContent.getSite())) { return; } if("127.0.0.1".equals(cmsContent.getSite())) { return; } BlogPingUtil.baiduPing(cmsContent.getSite(), "http://"+cmsContent.getSite(), cmsContent.getUrl(), "http://"+cmsContent.getSite()+"/rss.xml"); } public boolean equals(Object obj) { if(this == obj) return true; if(obj instanceof CmsContent == false) return false; CmsContent other = (CmsContent)obj; return new EqualsBuilder() .append(getId(),other.getId()) .isEquals(); } }