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

📄 articleserviceimpl.java

📁 版本信息:Jaoso新闻文章发布系统 0.9.1beta1 原POPTEN新闻发布系统现更名为Jaoso,不兼容popten,目前不提供popten升级Jaoso的程序.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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.MyBeanUtils;
import jaoso.framework.util.MyUtils;

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 org.apache.struts.upload.FormFile;

import org.htmlparser.Node;
import org.htmlparser.Parser;

import org.htmlparser.tags.ImageTag;

import org.htmlparser.util.ParserException;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;

import java.lang.reflect.InvocationTargetException;

import java.net.MalformedURLException;
import java.net.URL;

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 边缘孤客
 * @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;

    /**
     * Creates a new ArticleService object.
     */
    public ArticleServiceImpl() {
    }

    /**
    * @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);
        }

        //   ls = (Integer)articleDAO.findArticle(query);
        //    if (it.hasNext()) {
        //         ls = (Integer) it.next();
        //    }
        return ls;
    }

    //end method

    /**
     * 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 DOCUMENT ME!
     * @param upLoadFiles DOCUMENT ME!
     * @exception ArticleExistException if article title exist
     */
    public final void createArticle(final Article article,
        final Collection upLoadFiles) throws ArticleExistException {
        if (articleDAO.isExist(article.getArtTitle())) {
            throw new ArticleExistException("article already exist!");
        }

        articleDAO.createArticle(article);
        doFile(article, upLoadFiles);
        indexer.index(article);
    }

    /**
     * DOCUMENT ME!
     *
     * @param args DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public final Article[] find(final String[] args) {
        String title = args[0];
        String catalog = args[1];
        String order = args[2];
        String sort = args[3];
        String page = args[4];
        String status = args.length>=6?"":"CLOSE";
        Article[] ls = null;
        String sqlStr = "from Article article where 1=1 ";
        sqlStr += (StringUtils.isNotEmpty(title)

⌨️ 快捷键说明

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