📄 articleserviceimpl.java
字号:
package jaoso.news.service.impl;
import jaoso.framework.core.search.Indexer;
import jaoso.framework.core.search.SearchUtil;
import jaoso.framework.core.search.Searcher;
import jaoso.framework.dao.AccountDAO;
import jaoso.framework.dao.MyQuery;
import jaoso.framework.util.FileUtils;
import jaoso.framework.util.HtmlPaser;
import jaoso.framework.util.JaosoConfig;
import jaoso.framework.util.MyBeanUtils;
import jaoso.framework.util.MyUtils;
import jaoso.framework.util.UploadFile;
import jaoso.news.dao.ArticleDAO;
import jaoso.news.dao.CatalogDAO;
import jaoso.news.dao.CriticDAO;
import jaoso.news.domain.Article;
import jaoso.news.domain.Catalog;
import jaoso.news.domain.Critic;
import jaoso.news.exception.ArticleExistException;
import jaoso.news.service.ArticleService;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* ��������
*
* @author 边缘孤客 edgeloner@yahoo.com.cn
* @version v0.9.1
*/
public class ArticleServiceImpl implements ArticleService {
/** ��־�� */
private static Log log = LogFactory.getLog(ArticleServiceImpl.class);
/** �������µ�DAO */
private AccountDAO accountDAO;
/** DOCUMENT ME! */
private ArticleDAO articleDAO;
/** ����Ŀ¼��DAO */
private CatalogDAO catalogDAO;
/** �������۵�DAO */
private CriticDAO criticDAO;
/** DOCUMENT ME! */
private Indexer indexer;
/** �ṩ������� */
private Searcher searcher;
private JaosoConfig jaosoConfig;
public void setJaosoConfig(JaosoConfig jaosoConfig) {
this.jaosoConfig = jaosoConfig;
}
/**
* @param arg
* accountDAO
*/
public final void setAccountDAO(final AccountDAO arg) {
this.accountDAO = arg;
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getAllArticleCount()
*/
public final int getAllArticleCount() {
MyQuery query = new MyQuery();
query.setQueryString("select count(*) from Article");
return articleDAO.count(query);
}
/**
* DOCUMENT ME!
*
* @param args
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public final Integer getArtCount(final String[] args) {
String title = args[0];
String catalog = args[1];
Integer ls = new Integer(0);
String sqlStr = "select count(*) from Article article where 1=1 ";
sqlStr += (StringUtils.isNotEmpty(title)
? " and article.artTitle like ? " : "");
sqlStr += ((StringUtils.isNotEmpty(catalog) &&
(catalog.trim().length() > 10)) ? " and article.catalog like ? " : "");
MyQuery query = new MyQuery();
query.setQueryString(sqlStr);
if (StringUtils.isNotEmpty(title)) {
query.addPara("%" + title + "%", Types.VARCHAR);
}
if (StringUtils.isNotEmpty(catalog) && (catalog.trim().length() > 10)) {
query.addPara(catalog, Types.VARCHAR);
}
return ls;
}
/**
* DOCUMENT ME!
*
* @param id
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*
*/
public final Article getArticle(final Serializable id) {
return articleDAO.getArticle(id);
}
/**
* @param arg
* articleDAO
*/
public final void setArticleDAO(final ArticleDAO arg) {
this.articleDAO = arg;
}
/**
* @param arg
* catalogDAO
*/
public final void setCatalogDAO(final CatalogDAO arg) {
this.catalogDAO = arg;
}
/**
* @param arg
* critic DAO
*/
public final void setCriticDAO(final CriticDAO arg) {
this.criticDAO = arg;
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getHotArticle()
*/
public final Article[] getHotArticle() {
MyQuery query = new MyQuery();
query.setQueryString(
"from Article a where a.hot='Y' and a.artStatus='CLOSE' ");
query.setOrderby(" order by a.artLastdate desc");
query.setPageStartNo(0);
query.setOffset(true);
return articleDAO.findArticle(query);
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getImageArticle()
*/
public final Article[] getImageArticle() {
MyQuery query = new MyQuery();
query.setQueryString(
"from Article a where a.artImage='Y' and a.artStatus='CLOSE' ");
query.setOrderby(" order by a.artLastdate desc");
query.setPageSize(2);
query.setOffset(true);
return articleDAO.findArticle(query);
}
/**
* @param indexer
*/
public final void setIndexer(final Indexer indexer) {
this.indexer = indexer;
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getLastUpdate(java.io.Serializable)
*/
public final Article[] getLastUpdate(final Serializable arg0) {
Collection catalogs = new ArrayList();
catalogs = getSubCatalogs(catalogs, arg0);
MyQuery myquery = new MyQuery();
String query =
"from Article a where a.artStatus='CLOSE' and a.catalog in ('" +
MyUtils.join("','", catalogs) + "') order by a.artLastdate desc";
myquery.setQueryString(query);
myquery.setOffset(true);
return articleDAO.findArticle(myquery);
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getLastUpdate()
*/
public final Collection getLastUpdate() {
Catalog[] catalogs = catalogDAO.findCatalog(
"from Catalog c where c.parent is null order by c.catalogId");
Collection rs = new ArrayList();
Catalog catalog;
Article[] articles;
if (!MyUtils.isBlank(catalogs)) {
for (int i = 0, n = catalogs.length; i < n; i++) {
catalog = catalogs[i];
articles = getLastUpdate(catalog.getCatalogId());
if (!MyUtils.isBlank(articles)) {
Map map = new HashMap();
map.put("catalog", catalog.getCatalogTitle());
map.put("catalogId", catalog.getCatalogId());
map.put("articles", getLastUpdate(catalog.getCatalogId()));
rs.add(map);
}
}
}
return rs;
}
/**
* @param searcher
*/
public final void setSearcher(final Searcher searcher) {
this.searcher = searcher;
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getTopNew()
*/
public final Article[] getTopNew() {
MyQuery query = new MyQuery();
query.setQueryString("from Article a where a.artStatus='CLOSE' ");
query.setOrderby(" order by a.artLastdate desc");
query.setPageStartNo(0);
query.setOffset(true);
return articleDAO.findArticle(query);
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#getTopArticle()
*/
public final Article[] getTopRead() {
MyQuery query = new MyQuery();
query.setQueryString("from Article a where a.artStatus='CLOSE' ");
query.setOrderby(" order by a.artCount desc");
query.setPageStartNo(0);
query.setOffset(true);
return articleDAO.findArticle(query);
}
/**
* (non-Javadoc)
*
* @see jaoso.news.service.ArticleService#addCritic(jaoso.news.domain.Critic)
*/
public final void addCritic(final Serializable arg0, final Critic arg1) {
Article article = getArticle(arg0);
arg1.setArticle(article);
article.getCritics().add(arg1);
articleDAO.updateArticle(article);
}
/**
* DOCUMENT ME!
*
* @param ids
* DOCUMENT ME!
*/
public final void approveArticle(final Serializable[] ids) {
Article article;
for (int i = 0, n = ids.length; i < n; i++) {
article = articleDAO.getArticle(ids[i]);
article.setArtStatus("CLOSE");
articleDAO.updateArticle(article);
}
}
/**
* DOCUMENT ME!
*
* @param ids
* DOCUMENT ME!
*/
public final void cancelArticle(final Serializable[] ids) {
Article article;
for (int i = 0, n = ids.length; i < n; i++) {
article = articleDAO.getArticle(ids[i]);
article.setArtStatus("OPEN");
articleDAO.updateArticle(article);
}
}
/**
* DOCUMENT ME!
*
* @param article
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -