articledaoimpl.java

来自「JEECMS此次版本升级相比之前的2.0版本做了比较大的改进」· Java 代码 · 共 95 行

JAVA
95
字号
package com.jeecms.article.dao.impl;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.jeecms.article.dao.ArticleDao;
import com.jeecms.article.entity.ArtiCtg;
import com.jeecms.article.entity.Article;
import com.jeecms.cms.entity.CmsChannel;
import com.jeecms.core.JeeCoreDaoImpl;
import com.jeecms.core.entity.Website;
import com.ponyjava.common.hibernate3.Finder;
import com.ponyjava.common.page.Pagination;

@Repository
public class ArticleDaoImpl extends JeeCoreDaoImpl<Article> implements
		ArticleDao {
	@SuppressWarnings("unchecked")
	public Pagination getForTag(Long webId, Long chnlId, Long ctgId,
			String searchKey, Boolean hasTitleImg, 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));
		}
		if (ctgId != null) {
			eg.setCtg(new ArtiCtg(ctgId));
		}
		if (recommend) {
			eg.setRecommend(recommend);
		}
		if (hasTitleImg != null) {
			eg.setHasTitleImg(hasTitleImg);
		}
		Order order;
		switch (orderBy) {
		case 3:
			order = Order.asc("visitTotal");
			break;
		case 2:
			order = Order.desc("visitTotal");
			break;
		case 1:
			order = Order.asc("releaseDate");
			break;
		default:
			order = Order.desc("releaseDate");
		}
		Criteria crit = getCritByEg(eg, false, null);
		if (!StringUtils.isBlank(searchKey)) {
			Disjunction disj = Restrictions.disjunction();
			disj.add(Restrictions.like("title", searchKey, MatchMode.ANYWHERE));
			disj.add(Restrictions.like("tags", searchKey, MatchMode.ANYWHERE));
			disj.add(Restrictions.like("description", searchKey,
					MatchMode.ANYWHERE));
			crit.add(disj);
		}
		if (isPage) {
			return findByCriteria(crit, pageNo, pageSize, null, order);
		} else {
			crit.setFirstResult(firstResult);
			crit.setMaxResults(pageSize);
			crit.addOrder(order);
			List<Article> list = crit.list();
			return new Pagination(pageNo, list.size(), pageSize, list);
		}
	}

	@Override
	public Pagination getPage(Long[] chnlIds, int pageNo, int count) {
		String hql = "from Article a where a.channel.id in (:chnlIds) order by a.id desc";
		Finder f = Finder.create(hql);
		f.setParameterList("chnlIds", chnlIds);
		return find(f, pageNo, count);
	}

	public Article getNextArticle(Long webId, Long artiId) {
		String hql = "from Article a where a.website.id=? and a.id>? order by a.id asc";
		return (Article) findUnique(hql, webId, artiId);
	}

	public Article getPreArticle(Long webId, Long artiId) {
		String hql = "from Article a where a.website.id=? and a.id<? order by a.id desc";
		return (Article) findUnique(hql, webId, artiId);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?