package edu.sjtu.infosec.ismp.manager.OSS.klbm.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.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
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.LM.pfLog.service.SystemLogService;
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.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
/**
* 运维知识库的相关操作
*
* @author cxk
*
* date:2010-11-25
*/
@SuppressWarnings("unused")
public class UpdateAndDelOssKBAction extends DispatchAction {
/**
* service 接口注入
*/
private OssKnowledgeBaseService ossKnowledgeBaseService;
private DomainService domainService;
private SystemLogService systemLogService;
public void setOssKnowledgeBaseService(
OssKnowledgeBaseService ossKnowledgeBaseService) {
this.ossKnowledgeBaseService = ossKnowledgeBaseService;
}
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
public void setSystemLogService(SystemLogService systemLogService) {
this.systemLogService = systemLogService;
}
/**
* 通过运维知识库ID得到运维知识库对象(OssKnowledgeBase)
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward updateValue(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
try{
String ossKBId = request.getParameter("id");
request.getSession().setAttribute("ossKBId", ossKBId);
if(null != ossKBId && !"".equals(ossKBId)){
OssKnowledgeBase ossKnowledgeBase = ossKnowledgeBaseService.findById(Integer.parseInt(ossKBId));
request.setAttribute("ossKB", ossKnowledgeBase);
}
OperatorDetails user = SecurityUserHolder.getCurrentUser();
List<Domain> userDomainList = new ArrayList<Domain>();
if(user != null){
userDomainList = user.getDomainList();
}else{
userDomainList = null;
}
request.setAttribute("udl", userDomainList);
}catch(Exception e){
e.printStackTrace();
}
return mapping.findForward("forwardValue");
}
/**
* 通过 KnowledgeBase 来更新知识库相关的信息
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward update(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
/**
* 加载日志信息
*/
LogUtil.init();
SystemLog log = new SystemLog();
try{
OssKnowledgeBaseForm ossKnowledgeBaseForm = (OssKnowledgeBaseForm)form;
OssKnowledgeBase ossKnowledgeBase = new OssKnowledgeBase();
String ID = request.getSession().getAttribute("ossKBId").toString();
/**
* 格式化当前系统日期
*/
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());
if(null != ID && !"".equals(ID)){
ossKnowledgeBase.setId(Integer.parseInt(ID));
ossKnowledgeBase.setName(ossKnowledgeBaseForm.getName());
// ossKnowledgeBase.setDomain(domainService.findById(ossKnowledgeBaseForm.getDmid()));
ossKnowledgeBase.setFile_content(ossKnowledgeBaseForm.getFile_content());
ossKnowledgeBase.setSn(ossKnowledgeBaseForm.getSn());
ossKnowledgeBase.setIssuer(ossKnowledgeBaseForm.getIssuer());
ossKnowledgeBase.setCreateTime(dTime);
ossKnowledgeBase.setLastUpdateTime(new Timestamp(new Date().getTime()));
ossKnowledgeBase.setRemark(ossKnowledgeBaseForm.getRemark());
ossKnowledgeBaseService.update(ossKnowledgeBase);
}
/**
* 加入日志相关的信息
*/
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_OSS);
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_OSS);
log.setOperationDesc("运维知识库信息的更新");
log.setControl("失败!");
systemLogService.saveSystemLog(log);
e.printStackTrace();
}
return mapping.findForward("updateSucc");
}
/**
* 通过 OssKnowledgeBase 来删除运维知识库的相关记录
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward delete(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
/**
* 加载日志信息
*/
LogUtil.init();
SystemLog log = new SystemLog();
try{
String ID = request.getParameter("id");
if(null != ID && !"".equals(ID)){
OssKnowledgeBase ossKnowledgeBase = ossKnowledgeBaseService.findById(Integer.parseInt(ID));
ossKnowledgeBaseService.delete(ossKnowledgeBase);
/**
* 加入日志相关的信息
*/
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_OSS);
log.setOperationDesc("删除运维知识库相关的信息");
log.setControl("成功!");
systemLogService.saveSystemLog(log);
}
}catch(Exception e){
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_OSS);
log.setOperationDesc("删除运维知识库相关的信息");
log.setControl("失败!");
systemLogService.saveSystemLog(log);
e.printStackTrace();
}
return mapping.findForward("deleteSucc");
}
}