/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.cms.action;
import com.jinhe.tss.cms.service.IRemoteArticleService;
import com.jinhe.tss.component.support.web.webwork.PTActionSupport;
import com.jinhe.tss.core.exception.BusinessException;
import com.jinhe.tss.core.util.EasyUtils;
/**
* <p> CMSAction.java </p>
* CMS对外Action接口,提供供Portlet等外界应用程序读取的文章列表、文章内容、评分、评论等接口。支持RSS。
*/
public class CMSAction extends PTActionSupport {
private static final long serialVersionUID = 1891142865958837413L;
private Long articleId;
private Long channelId;
private String channelIds; // 栏目ids 可选多个(逗号隔开)
private Integer page = 1;
private Integer pageSize = 12;
private String month;
private String year;
private Long tacticId; // 全文检索索引ID
private String searchStr; // 检索关键字
private IRemoteArticleService remoteService;
/**
* 获取栏目列表并且带有附件信息
* @return
*/
public String getPicArticleListByChannel() {
String returnXML = remoteService.getPicArticleListByChannel(channelId, page, pageSize);
print(returnXML);
return XML;
}
/**
* 获取栏目的文章列表
* @return
*/
public String getArticleListByChannel() {
String returnXML = remoteService.getArticleListXMLByChannel(channelId, page, pageSize);
print(returnXML);
return XML;
}
/**
* 获取栏目的文章列表。RSS2.0数据格式
* http://localhost:8088/cms/cms!getArticleListByChannelRss.action?channelId=12&anonymous=true
*
* @return
*/
public String getArticleListByChannelRss() {
String returnXML = remoteService.getArticleListByChannel4Rss(channelId, page, pageSize);
print(returnXML);
return XML;
}
/**
* 根据栏目ids,获取这些栏目下的所有文章列表
* @return
*/
public String getArticleListByChannels() {
if ( EasyUtils.isNullOrEmpty(channelIds) ) {
throw new BusinessException("栏目IDs为空");
}
String returnXML = remoteService.queryArticlesByChannelIds(channelIds, page, pageSize);
print(returnXML);
return XML;
}
/**
* 根据栏目id获取文章列表(深度),取指定栏目以及该栏目下所有子栏目的所有文章列表
* @return
*/
public String getArticleListDeeplyByChannel() {
String returnXML = remoteService.queryArticlesDeeplyByChannelId(channelId, page, pageSize);
print(returnXML);
return XML;
}
/**
* 根据栏目和日期来获取文章列表。
* 主要用于期刊类需求。
* @param channelId
* @param year
* @param month
* @return
*/
public String getArticleListByChannelAndTime() {
String returnXML = remoteService.getArticleListByChannelAndTime(channelId, year, month);
print(returnXML);
return XML;
}
/**
* 文章的信息展示,并进行相关文章的动态的处理
* @return
*/
public String getArticleXmlInfo() {
String returnXML = remoteService.getArticleXML(articleId);
if(returnXML.indexOf(("<Response>")) < 0) {
returnXML = "<Response>" + returnXML + "</Response>";
}
print(returnXML);
return XML;
}
/**
* 根据文章id获取该文章的相关文章列表
* @return
*/
public String getRelationArticles() {
String returnXML = remoteService.getRelationArticles(articleId, pageSize);
print(returnXML);
return XML;
}
/**
* 获取栏目树为portlet做展示
* @return
*/
public String getChannelTreeList4Portlet() {
return print("DownloadChannelTree", remoteService.getChannelTree4Portlet(channelId));
}
/**
* 全文检索action接口。
* 供门户网站上通过本接口调用全文搜索。
*/
public String search() {
String returnXML = remoteService.search(tacticId, searchStr, page, pageSize);
print(returnXML);
return XML;
}
public void setChannelIds(String channelIds) {
this.channelIds = channelIds;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public void setArticleId(Long articleId) {
this.articleId = articleId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public void setPage(Integer page) {
this.page = page;
}
public void setMonth(String month) {
this.month = month;
}
public void setYear(String year) {
this.year = year;
}
public void setTacticId(Long tacticId) {
this.tacticId = tacticId;
}
public void setSearchStr(String searchStr) {
try {
if (searchStr != null) {
// 处理非法字符
searchStr = searchStr.replaceAll("]", "").replaceAll("[", ""); // '[' ']'在lucene里为非法字符
searchStr = searchStr.replaceAll("}", "").replaceAll("{", ""); // '{' '}'在lucene里为非法字符
searchStr = searchStr.replaceAll(")", "").replaceAll("(", ""); // '(' ')'在lucene里为非法字符
}
} catch (Exception e) {
this.searchStr = searchStr;
} finally {
this.searchStr = searchStr;
}
}
public void setRemoteService(IRemoteArticleService remoteService) {
this.remoteService = remoteService;
}
}