📄 articlemngimpl.java
字号:
package com.jeecms.article.manager.impl;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import com.jeecms.article.dao.ArticleDao;
import com.jeecms.article.entity.Article;
import com.jeecms.article.manager.ArticleMng;
import com.jeecms.cms.entity.CmsAdmin;
import com.jeecms.cms.entity.CmsChannel;
import com.jeecms.cms.manager.CmsChannelMng;
import com.jeecms.core.JeeCoreManagerImpl;
import com.jeecms.core.entity.Website;
import com.ponyjava.common.hibernate3.Condition;
import com.ponyjava.common.hibernate3.OrderBy;
import com.ponyjava.common.hibernate3.Updater;
import com.ponyjava.common.struts2.ContextPvd;
import com.ponyjava.common.web.PaginationSupport;
public class ArticleMngImpl extends JeeCoreManagerImpl<Article> implements
ArticleMng {
@Override
public PaginationSupport getForTag(Long webId, Long chnlId,
String searchKey, boolean recommend, int orderBy, boolean isPage,
int firstResult, int pageNo, int pageSize) {
Article eg = new Article();
eg.setWebsite(new Website(webId));
if (chnlId != null) {
eg.setChannel(new CmsChannel(chnlId));
}
// TODO 还需检索简短标题、描述、tags
if (StringUtils.isBlank(searchKey)) {
eg.setTitle(searchKey);
}
if (recommend) {
eg.setRecommend(recommend);
}
Condition[] conds = null;
switch (orderBy) {
case 3:
conds = new Condition[] { OrderBy.asc("visitTotal") };
break;
case 2:
conds = new Condition[] { OrderBy.desc("visitTotal") };
break;
case 1:
conds = new Condition[] { OrderBy.asc("releaseDate") };
break;
default:
conds = new Condition[] { OrderBy.desc("releaseDate") };
}
if (isPage) {
return findByExample(eg, conds, pageNo, pageSize);
} else {
List<Article> list = findListByExample(eg, conds, firstResult,
pageSize);
return new PaginationSupport(pageNo, list.size(), pageSize, list);
}
}
@Override
public PaginationSupport getPage(Long chnlId, int pageNo, int count) {
Set<Long> idSet = cmsChannelMng.load(chnlId).getChildIds();
Long[] ids = idSet.toArray(new Long[idSet.size()]);
return getArticleDao().getPage(ids, pageNo, count);
}
@Override
public Object updateByUpdater(Updater updater) {
Article bean = (Article) updater.getBean();
int origCount = super.load(bean.getId()).getPageCount();
bean.setPageCount(bean.getPageCountFromContent());
Article arti = (Article) super.updateByUpdater(updater);
arti.writeContent(contextPvd.getAppRoot(), origCount);
return arti;
}
@Override
public Article save(Article arti, CmsAdmin admin) {
arti.setDisabled(false);
arti.setReject(false);
Calendar nowCal = Calendar.getInstance();
Date now = new java.sql.Timestamp(nowCal.getTimeInMillis());
arti.setReleaseSysDate(now);
// 如果没有输入发布时间,则取系统时间;如果输入发布时间,则加上当前时分秒。
Date relDate = arti.getReleaseDate();
if (relDate == null) {
arti.setReleaseDate(now);
} else {
// 赋予时分秒
arti.setReleaseDate(appendHms(relDate, nowCal));
}
arti.setStatDate(now);
arti.setVisitToday(0L);
arti.setVisitTotal(0L);
arti.setAdminInput(admin);
// @ TODO 处理审核问题
arti.setCheck(true);
arti.setPageCount(arti.getPageCountFromContent());
// @ TODO 处理资源路径、域名、防盗链路径改变的问题
super.saveAndRefresh(arti);
arti.writeContent(contextPvd.getAppRoot(), 0);
return arti;
}
@Override
public Article load(Serializable id) {
Article arti = super.load(id);
arti.setRootReal(contextPvd.getAppRoot());
// @ TODO 处理资源路径、域名、防盗链路径改变的问题
return arti;
}
@Override
public Article deleteById(Serializable id) {
Article arti = super.deleteById(id);
arti.deleteContentFile(contextPvd.getAppRoot());
return arti;
}
/**
* 赋予时间当前的时分秒
*
* @param d
* @param now
* @return
*/
private Date appendHms(Date d, Calendar now) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, now.get(Calendar.MINUTE));
cal.set(Calendar.SECOND, now.get(Calendar.SECOND));
return new java.sql.Timestamp(cal.getTimeInMillis());
}
private CmsChannelMng cmsChannelMng;
private ContextPvd contextPvd;
public void setArticleDao(ArticleDao dao) {
super.setDao(dao);
}
public ArticleDao getArticleDao() {
return (ArticleDao) super.getDao();
}
public CmsChannelMng getCmsChannelMng() {
return cmsChannelMng;
}
public void setCmsChannelMng(CmsChannelMng cmsChannelMng) {
this.cmsChannelMng = cmsChannelMng;
}
public ContextPvd getContextPvd() {
return contextPvd;
}
public void setContextPvd(ContextPvd contextPvd) {
this.contextPvd = contextPvd;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -