/**
* 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.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ewcms.core.site.SiteFacable;
import com.ewcms.core.site.model.Organ;
import com.ewcms.core.site.model.Site;
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 OrganAction extends CrudBaseAction<Organ, Integer> {
private static final long serialVersionUID = -8775454105957516242L;
@Autowired
private SiteFacable siteFac;
private File iconFile;
private Integer id;
public Organ getOrganVo() {
return super.getVo();
}
public void setOrganVo(Organ organVo) {
super.setVo(organVo);
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Site getSiteVo() {
if (getOrganVo().getHomeSiteId() != null) {
return siteFac.getSite(getOrganVo().getHomeSiteId());
}
return new Site();
}
public File getIconFile() {
return iconFile;
}
public void setIconFile(File iconFile) {
this.iconFile = iconFile;
}
@Override
protected Integer getPK(Organ vo) {
return vo.getId();
}
@Override
protected Organ getOperator(Integer pk) {
return siteFac.getOrgan(pk);
}
@Override
protected void deleteOperator(Integer pk) {
}
@Override
protected Integer saveOperator(Organ vo, boolean isUpdate) {
return null;
}
@Override
protected Organ createEmptyVo() {
return new Organ();
}
/**
* 获取机构树.
*/
public void organTree() throws Exception {
if (id == null) {
TreeNode treeFile = new TreeNode();
treeFile.setText("客户机构");
treeFile.setState("open");
treeFile.setChildren(siteFac.getOrganTreeList());
Struts2Util
.renderJson(JSONUtil.toJSON(new TreeNode[] { treeFile }));
return;
}
List<TreeNode> tnList = siteFac.getOrganTreeList(id);
if (tnList.isEmpty()) {
Struts2Util.renderJson("{}");
} else {
Struts2Util.renderJson(JSONUtil.toJSON(tnList));
}
}
/**
* 创建机构.
*/
public void addOrgan() {
try {
Integer id = siteFac.addOrgan(vo.getId(), vo.getName());
Struts2Util.renderJson(JSONUtil.toJSON(id));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 设置机构主站.
*/
public void setSite() {
try {
Organ vo = siteFac.getOrgan(getOrganVo().getId());
if (vo.getHomeSiteId() != null)
siteFac.updSiteParent(vo.getId(), vo.getHomeSiteId(),
getOrganVo().getHomeSiteId());
vo.setHomeSiteId(getOrganVo().getHomeSiteId());
siteFac.updOrgan(vo);
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 删除机构.
*/
public void delOrgan() {
try {
siteFac.delOrgan(vo.getId());
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
//outputInfo(e.toString());
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 重命名机构.
*/
public void renameOrgan() {
try {
Organ vo = siteFac.getOrgan(getOrganVo().getId());
vo.setName(getOrganVo().getName());
siteFac.updOrgan(vo);
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 移动机构.
*/
public void movetoOrgan() {
try {
Organ vo = siteFac.getOrgan(getOrganVo().getId());
if (getOrganVo().getParent().getId() == null) {
vo.setParent(null);
} else {
vo.setParent(siteFac
.getOrgan(getOrganVo().getParent().getId()));
}
siteFac.updOrgan(vo);
//vo.getHomeSiteId()
Struts2Util.renderJson(JSONUtil.toJSON("true"));
} catch (Exception e) {
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
}
/**
* 编辑机构.
*/
public String editOrgan() {
if (getOrganVo() != null && getOrganVo().getId() != null) {
setOrganVo(siteFac.getOrgan(getOrganVo().getId()));
}
return INPUT;
}
public String saveInfo() {
try {
Organ vo = siteFac.getOrgan(getOrganVo().getId());
vo.setUpdateTime(getOrganVo().getUpdateTime());
vo.setDescripe(getOrganVo().getDescripe());
if (iconFile != null) {
InputStream in = null;
try {
byte[] buffer = new byte[Integer.parseInt(String
.valueOf(iconFile.length()))];
in = new BufferedInputStream(
new FileInputStream(iconFile),
Integer.parseInt(String.valueOf(iconFile.length())));
in.read(buffer);
vo.setIcon(buffer);
in.close();
} catch (Exception e) {
} finally {
try{
if (in != null){
in.close();
in = null;
}
} catch (IOException e){}
}
}
siteFac.updOrgan(vo);
addActionMessage("数据保存成功!");
} catch (Exception e) {
addActionMessage("数据保存失败!");
}
return INPUT;
}
public String saveIntroduce() {
try {
siteFac.saveOrganInfo(getOrganVo());
addActionMessage("数据保存成功!");
} catch (Exception e) {
addActionMessage("数据保存失败!");
}
return INPUT;
}
}