/**
* 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.service;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ewcms.core.site.dao.OrganDAO;
import com.ewcms.core.site.model.Organ;
import com.ewcms.web.vo.TreeNode;
/**
* @author 周冬初
*
*/
@Service
public class OrganService implements OrganServiceable{
@Autowired
private OrganDAO organDAO;
@Override
public Integer addOrgan(Integer parentId, String organName) {
Organ vo = new Organ();
if(parentId != null)
vo.setParent(organDAO.get(parentId));
vo.setName(organName);
organDAO.persist(vo);
return vo.getId();
}
@Override
public Integer updOrgan(Organ vo) {
organDAO.merge(vo);
return vo.getId();
}
@Override
public void delOrgan(Integer id) {
organDAO.removeByPK(id);
}
@Override
public Organ getOrgan(Integer id) {
return organDAO.get(id);
}
@Override
public Integer saveOrganInfo(Organ vo) {
Organ oldvo = getOrgan(vo.getId());
oldvo.setOrganInfo(vo.getOrganInfo());
updOrgan(oldvo);
return oldvo.getOrganInfo().getId();
}
@Override
public List<TreeNode> getOrganTreeList(){
return getOrganChildren(null);
}
@Override
public List<TreeNode> getOrganTreeList(Integer parentId){
return getOrganChildren(parentId);
}
private List<TreeNode> getOrganChildren(Integer parentId) {
List<TreeNode> tnList = new ArrayList<TreeNode>();
List<Organ> organList = organDAO.getOrganChildren(parentId);
for (Organ vo : organList) {
TreeNode tnVo = new TreeNode();
tnVo.setId(vo.getId().toString());
tnVo.setText(vo.getName());
tnVo.setIconCls("icon-organ");
if (vo.hasChildren()) {
tnVo.setState("closed");
} else {
tnVo.setState("open");
}
tnList.add(tnVo);
}
return tnList;
}
}