package edu.sjtu.infosec.ismp.manager.GOSP.web.actions;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
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 org.infosec.ismp.manager.rmi.comm.model.SystemModelInfo;
import org.infosec.ismp.manager.rmi.lm.pfLog.model.SystemLog;
import edu.sjtu.infosec.ismp.manager.GOSP.comm.LogUtil;
import edu.sjtu.infosec.ismp.manager.GOSP.model.GospKnowledgeBase;
import edu.sjtu.infosec.ismp.manager.GOSP.service.GospKnowledgeBaseService;
import edu.sjtu.infosec.ismp.manager.GOSP.web.form.KnowledgeBaseForm;
import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService;
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.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
/**
*
* @author cxk
*
* date:2010-11-12
*/
@SuppressWarnings("unused")
public class AddKnowledgeBaseAction extends Action{
/**
* service 接口注入
*/
private GospKnowledgeBaseService knowledgeBaseService;
private DomainService domainService;
private SystemLogService systemLogService;
public void setKnowledgeBaseService(GospKnowledgeBaseService knowledgeBaseService) {
this.knowledgeBaseService = knowledgeBaseService;
}
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
public void setSystemLogService(SystemLogService systemLogService) {
this.systemLogService = systemLogService;
}
/**
* 添加知识库的相关信息(GospKnowledgeBase)
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
/**
* 加载日志信息
*/
LogUtil.init();
SystemLog log = new SystemLog();
String isAdd = (request.getParameter("isAdd")==null)?"0":request.getParameter("isAdd");
String isAll = (request.getParameter("isAll")==null)?"0":request.getParameter("isAll");
request.setAttribute("isAll", isAll);
request.setAttribute("currPage", request.getParameter("currPage"));
if(isAdd.endsWith("1")){
KnowledgeBaseForm knowledgeBaseForm =(KnowledgeBaseForm)form;
GospKnowledgeBase knowledgeBase = new GospKnowledgeBase();
/**
* 格式化当前系统日期
*/
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateTime = dateFm.format(new java.util.Date().getTime());
java.util.Date timeDate = dateFm.parse(dateTime);
java.sql.Timestamp dTime = new java.sql.Timestamp(timeDate.getTime());
/**
* 从Form表单中得到知识库相关的信息
*/
try{
knowledgeBase.setName(knowledgeBaseForm.getName());
// knowledgeBase.setDomain(domainService.findById(knowledgeBaseForm.getDmid()));
knowledgeBase.setFile_content(knowledgeBaseForm.getFile_content());
knowledgeBase.setCreateTime(dTime);
knowledgeBase.setIssuer(knowledgeBaseForm.getIssuer());
knowledgeBase.setSn(knowledgeBaseForm.getSn());
knowledgeBase.setLastUpdateTime(new Timestamp(new Date().getTime()));
knowledgeBase.setRemark(knowledgeBaseForm.getRemark());
knowledgeBaseService.add(knowledgeBase);
/**
* 加入日志相关的信息
*/
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_GOSP);
log.setOperationDesc("知识库信息录入");
log.setControl("成功!");
systemLogService.saveSystemLog(log);
PrintWriter out = response.getWriter();
out = response.getWriter();
response.setContentType("text/html; charset=UTF-8");
out.println("<script language=\"javascript\">");
out.println("window.opener.location.href=window.opener.location.href;");
out.println("window.opener.location.reload();");
out.println("window.close();");
out.println("</script>");
out.close();
return null;
}catch(Exception e){
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_GOSP);
log.setOperationDesc("知识库信息录入");
log.setControl("失败!");
systemLogService.saveSystemLog(log);
e.printStackTrace();
}
return mapping.findForward("addSuccess");
}else{
OperatorDetails user = SecurityUserHolder.getCurrentUser();
List<Domain> userDomainList = new ArrayList<Domain>();
if(user != null){
userDomainList = user.getDomainList();
}else{
userDomainList = null;
}
request.setAttribute("udl", userDomainList);
return mapping.findForward("opSucc");
}
}
}