package edu.sjtu.infosec.ismp.manager.OSS.klbm.web.actions;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import edu.sjtu.infosec.ismp.manager.OSS.klbm.model.OssKnowledgeBase;
import edu.sjtu.infosec.ismp.manager.OSS.klbm.service.OssKnowledgeBaseService;
import edu.sjtu.infosec.ismp.manager.OSS.klbm.web.form.OssKnowledgeBaseForm;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.DomainService;
import edu.sjtu.infosec.ismp.manager.comm.comm.search.LuceneReadMysql;
import edu.sjtu.infosec.ismp.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
/**
* 运维知识库
*
* @author cxk
*
* date:2010-11-12
*/
public class FindOssKnowledgeBaseAction extends Action{
/**
* Service 接口的注入
*/
private OssKnowledgeBaseService ossKnowledgeBaseService;
private DomainService domainService;
public void setOssKnowledgeBaseService(
OssKnowledgeBaseService ossKnowledgeBaseService) {
this.ossKnowledgeBaseService = ossKnowledgeBaseService;
}
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
@SuppressWarnings("unchecked")
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
/**
* 分页定义相关的基本信息
*/
int currPage = 1;
Double totalPage = 0d;
Long totalNum = 0l;
int totalNums =0;
int startResult = 0;
int maxResult = 5;
try{
String isAll = (request.getParameter("isAll")==null)?"0":request.getParameter("isAll");
request.setAttribute("isAll", isAll);
System.out.println("---isAll----"+isAll);
/**
* 得到域集合的相关信息
*/
OperatorDetails user = SecurityUserHolder.getCurrentUser();
List<Domain> userDomainList = new ArrayList<Domain>();
if(user != null){
userDomainList = user.getDomainList();
}else{
userDomainList = null;
}
/**
* 分页得到的相关的基本信息
*/
String cp = (request.getParameter("currPage")==null)?"1":request.getParameter("currPage");
if(cp!=null && !cp.equals("")){
currPage = Integer.parseInt(cp);
}
startResult = (currPage-1)*maxResult;
if(startResult < 0){
startResult = 0;
}
/**
* 从表单得到相关信息
*/
OssKnowledgeBaseForm ossKnowledgeBaseForm = (OssKnowledgeBaseForm)form;
int domainId = ossKnowledgeBaseForm.getDmid();
String filecontent=ossKnowledgeBaseForm.getFile_content();
request.setAttribute("selectid", domainId);
request.setAttribute("filecontent", filecontent);
Domain domain = domainService.findById(domainId);
List<OssKnowledgeBase> BeginList = new ArrayList<OssKnowledgeBase>();
List<OssKnowledgeBase> OKList = new ArrayList<OssKnowledgeBase>();
if(filecontent!=null&&filecontent.length()>0&&domainId>0){
List<Domain> domains= new ArrayList<Domain>();
domains.add(domain);
BeginList=ossKnowledgeBaseService.findAllByDomain(domains);
OKList=LuceneReadMysql.LuceneRead(BeginList, filecontent,startResult,startResult+maxResult);
totalNums = LuceneReadMysql.getCount();
totalPage = Math.ceil((double)totalNums/maxResult);
}else if(filecontent!=null&&filecontent.length()>0){
BeginList=ossKnowledgeBaseService.findAll();
OKList=LuceneReadMysql.LuceneRead(BeginList, filecontent,startResult,startResult+maxResult);
totalNums = LuceneReadMysql.getCount();
totalPage = Math.ceil((double)totalNums/maxResult);
}else{
if(isAll.equals("1")){
request.setAttribute("isAll", isAll);
/**
* 通过传来委办局信息Id查询运维知识库某段时间内的相关信息
*
* OKList =ossKnowledgeBaseService.findAllByDomain(null, null, startResult, maxResult, domainId, domain);
*/
OKList =ossKnowledgeBaseService.findAll(null, null, startResult, maxResult);
}else{
// OKList = ossKnowledgeBaseService.findAllByDomainList(userDomainList, null, null, startResult, maxResult, domainId, domain);
}
/**
* 分页得到的相关基本信息
*/
if(OKList != null && OKList.size() >= 0){
if(isAll.equals("1")){
/**
* 通过传来委办局信息Id查询运维知识库某段时间内的相关信息的总记录数
*
* totalNum=ossKnowledgeBaseService.findAllNumByDomain(null, null, domainId);
* System.out.println("总记录数:"+totalNum);
*/
totalNum=ossKnowledgeBaseService.findAllNum(null, null);
totalPage = Math.ceil((double)totalNum/maxResult);
}else{
// totalNum = ossKnowledgeBaseService.findAllNumByDomainList(userDomainList, null, null, domainId);
totalPage = Math.ceil((double)totalNum/maxResult);
}
}
}
if(totalPage>0 && currPage<=0){
currPage = 1;
}
request.setAttribute("udl", userDomainList);
request.setAttribute("OKList", OKList);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("ossMenu", "klbm");
request.setAttribute("currPage", currPage);
request.setAttribute("totalPage", totalPage.intValue());
return mapping.findForward("ossFindSucc");
}
}