/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
/**
*
*/
package com.ewcms.core.site.dao;
import java.util.List;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
import org.springframework.stereotype.Repository;
import com.ewcms.common.dao.JpaDAO;
import com.ewcms.core.site.model.TemplateSource;
/**
* @author 周冬初
* @author wuzhijun
*/
@Repository
public class TemplateSourceDAO extends JpaDAO<Integer, TemplateSource> {
/**
* 获取节点子模板资源
*
*/
public List<TemplateSource> getTemplateSourceChildren(final Integer parentId, final Integer siteId) {
String hql;
TypedQuery<TemplateSource> query;
if (parentId == null) {
hql = "From TemplateSource o Where o.parent is null and o.site.id=:siteId Order By o.id";
query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("siteId", siteId);
} else {
hql = "From TemplateSource o Where o.parent.id=:parentId and o.site.id=:siteId Order By o.id";
query = this.getEntityManager().createQuery(hql,TemplateSource.class);
query.setParameter("parentId", parentId);
query.setParameter("siteId", siteId);
}
return query.getResultList();
}
/**
* 获取站点专栏资源节点
*
*/
public TemplateSource getChannelTemplateSource(final String siteSrcName, final Integer siteId, final Integer parentId) {
String hql;
TypedQuery<TemplateSource> query;
if (parentId == null) {
hql = "From TemplateSource o Where o.name=:siteSrcName and o.site.id=:siteId and o.parent is null";
query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("siteSrcName", siteSrcName);
query.setParameter("siteId", siteId);
} else {
hql = "From TemplateSource o Where o.name=:siteSrcName and o.site.id=:siteId and o.parent.id=:parentId";
query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("siteSrcName", siteSrcName);
query.setParameter("siteId", siteId);
query.setParameter("parentId", parentId);
}
TemplateSource templateSource = null;
try{
templateSource = (TemplateSource) query.getSingleResult();
}catch(NoResultException e){
}
return templateSource;
}
/**
* 获取需要发布的模板资源
*
* @param siteId 站点编号
* @param forceAgain 再次发布
* @return
*/
public List<TemplateSource> getPublishTemplateSources(final Integer siteId,final Boolean forceAgain) {
String hql = "From TemplateSource o Where o.release=false And o.site.id=:siteId And o.sourceEntity Is Not null";
if (forceAgain) {
hql = "From TemplateSource o Where o.site.id=:siteId And o.sourceEntity Is Not null";
}
TypedQuery<TemplateSource> query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("siteId", siteId);
return query.getResultList();
}
public TemplateSource getTemplateSourceByPath(final String path){
String hql = "From TemplateSource o Where o.uniquePath=:path";
TypedQuery<TemplateSource> query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("path", path);
TemplateSource templateSource = null;
try{
templateSource = (TemplateSource) query.getSingleResult();
}catch(NoResultException e){
}
return templateSource;
}
public List<TemplateSource> getTemplateSourceInChannel(final Integer channelId){
String hql = "From TemplateSource o Where o.channelId=:channelId";
TypedQuery<TemplateSource> query = this.getEntityManager().createQuery(hql, TemplateSource.class);
query.setParameter("channelId", channelId);
return query.getResultList();
}
}