⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 articlemngimpl.java

📁 JEECSM是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发
💻 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 + -