/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
/**
*
*/
package com.ewcms.core.site.web;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ewcms.core.site.SiteFacable;
import com.ewcms.core.site.model.Site;
import com.ewcms.core.site.model.SiteServer;
import com.ewcms.publication.deploy.DeployOperatorable;
import com.ewcms.web.CrudBaseAction;
import com.ewcms.web.util.JSONUtil;
import com.ewcms.web.util.Struts2Util;
import com.ewcms.web.vo.TreeNode;
/**
* @author 周冬初
*
*/
public class SetupAction extends CrudBaseAction<Site, Integer> {
private static final long serialVersionUID = 1L;
@Autowired
private SiteFacable siteFac;
private Integer id;
public Site getSiteVo() {
return super.getVo();
}
public void setSiteVo(Site siterVo) {
super.setVo(siterVo);
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public void setSelections(List<Integer> selections) {
super.setOperatorPK(selections);
}
public List<Integer> getSelections() {
return super.getOperatorPK();
}
@Override
protected Integer getPK(Site vo) {
return vo.getId();
}
@Override
protected Site getOperator(Integer pk) {
return siteFac.getSite(pk);
}
@Override
protected void deleteOperator(Integer pk) {
siteFac.delSite(pk);
}
@Override
protected Integer saveOperator(Site vo, boolean isUpdate) {
return null;
}
@Override
protected Site createEmptyVo() {
return new Site();
}
/**
* 获取站点树.
*/
public void siteTree() throws Exception {
if (id == null) {
TreeNode treeFile = new TreeNode();
if(getSiteVo()!=null&&getSiteVo().getId()!=null){
if(hasOrgan()){
treeFile.setChildren(siteFac.getOrganSiteTreeList(getSiteVo().getId(),getSiteVo().getOrgan().getId()));
}else{
treeFile.setChildren(siteFac.getCustomerSiteTreeList(getSiteVo().getId()));
}
treeFile.setId(getSiteVo().getId().toString());
}else{
if(hasOrgan()){
treeFile.setChildren(siteFac.getOrganSiteTreeList(getSiteVo().getOrgan().getId()));
}else{
treeFile.setChildren(siteFac.getCustomerSiteTreeList());
}
}
treeFile.setText("机构站群管理");
treeFile.setState("open");
Struts2Util.renderJson(JSONUtil.toJSON(new TreeNode[] { treeFile }));
return;
}
List<TreeNode> tnList;
if(hasOrgan()){
tnList = siteFac.getOrganSiteTreeList(id,getSiteVo().getOrgan().getId());
}else{
tnList = siteFac.getCustomerSiteTreeList(id);
}
if (tnList.isEmpty()) {
Struts2Util.renderJson("{}");
} else {
Struts2Util.renderJson(JSONUtil.toJSON(tnList));
}
}
private boolean hasOrgan(){
if(getSiteVo()==null || getSiteVo().getOrgan()==null||getSiteVo().getOrgan().getId()==null)return false;
return true;
}
/**
* 创建机构站点.
*/
public void addSite() {
try {
Integer id = siteFac.addSite(getSiteVo().getId(), getSiteVo()
.getSiteName(),getSiteVo().getOrgan().getId());
Struts2Util.renderJson(JSONUtil.toJSON(id));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 删除站点.
*/
public void delSite() {
try {
siteFac.delSite(getSiteVo().getId());
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
//outputInfo(e.toString());
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 重命名站点.
*/
public void renameSite() {
try {
Site vo = siteFac.getSite(getSiteVo().getId());
vo.setSiteName(getSiteVo().getSiteName());
siteFac.updSite(vo);
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 移动专栏.
*/
public void movetoSite() {
try {
Site vo = siteFac.getSite(getSiteVo().getId());
Site parentVo = siteFac.getSite(getSiteVo().getParent().getId());
vo.setParent(parentVo);
siteFac.updSite(vo);
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 编辑专栏.
*/
public String editSite() {
if (getSiteVo() != null && getSiteVo().getId() != null) {
setSiteVo(siteFac.getSite(getSiteVo().getId()));
}
return INPUT;
}
/**
* 保存专栏.
*/
public String saveInfo() {
try {
Site vo = getSiteVo();
Site oldVo = siteFac.getSite(vo.getId());
vo.setOrgan(oldVo.getOrgan());
vo.setParent(oldVo.getParent());
vo.setSiteServer(oldVo.getSiteServer());
siteFac.updSite(vo);
addActionMessage("数据保存成功!");
} catch (Exception e) {
//this.outputInfo(e.toString());
addActionMessage("数据保存失败!");
}
setSiteVo(siteFac.getSite(vo.getId()));
return INPUT;
}
/**
* 保存站点服务器信息.
*/
public String saveServer() {
try {
Site vo = getSiteVo();
siteFac.saveSiteServer(vo);
addActionMessage("数据保存成功!");
} catch (Exception e) {
//this.outputInfo(e.toString());
addActionMessage("数据保存失败!");
}
return INPUT;
}
/**
* 移动专栏.
*/
public void testSiteServer() {
try {
SiteServer siteServer = getSiteVo().getSiteServer();
DeployOperatorable output = siteServer.getOutputType().deployOperator(siteServer);
if(siteServer.getPassword() == null||siteServer.getPassword().length() == 0){
if(siteServer.getId() != null){
siteServer.setPassword(siteFac.getSite(getSiteVo().getId()).getSiteServer().getPassword());
}
}
output.test();
Struts2Util.renderJson(JSONUtil.toJSON("服务器连接成功"));
} catch (Exception e) {
String errorMSG = "连接异常";
if(e.getMessage().equals("error.output.notconnect"))errorMSG = "服务器连接失败\n请核对端口、服务器地址以及用户名密码的正确性";
if(e.getMessage().equals("error.output.nodir"))errorMSG = "目录不存在";
if(e.getMessage().equals("error.output.notwrite"))errorMSG = "没有可写权限";
Struts2Util.renderJson(JSONUtil.toJSON(errorMSG));
}
}
}