/** * 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.SiteDAO; import com.ewcms.core.site.model.Organ; import com.ewcms.core.site.model.Site; import com.ewcms.core.site.model.SiteServer; import com.ewcms.web.context.EwcmsContextHolder; import com.ewcms.web.util.EwcmsContextUtil; import com.ewcms.web.vo.TreeNode; /** * @author 周冬初 * */ @Service public class SiteService implements SiteServiceable{ @Autowired private SiteDAO siteDAO; public Integer addSite(Integer parentId, String siteName, Integer organId) { Site vo = new Site(); vo.setSiteName(siteName); if(parentId!=null) vo.setParent(siteDAO.get(parentId)); Organ organVo = new Organ(); organVo.setId(organId); vo.setOrgan(organVo); siteDAO.persist(vo); return vo.getId(); } public Integer saveSiteServer(Site vo) { Site oldvo = getSite(vo.getId()); SiteServer siteServer = vo.getSiteServer(); if(siteServer.getPassword()==null||siteServer.getPassword().length()==0){ if(oldvo.getSiteServer()!=null){ siteServer.setPassword(oldvo.getSiteServer().getPassword()); } } oldvo.setSiteServer(vo.getSiteServer()); updSite(oldvo); return oldvo.getSiteServer().getId(); } public void delSiteBatch(List<Integer> idList) { for (Integer id : idList) { delSite(id); } } public Integer updSite(Site vo) { siteDAO.merge(vo); Site currSite = getCurSite(); if(currSite != null){ if(currSite.getId() == vo.getId()){ initSiteInContext(vo); } } return vo.getId(); } public void delSite(Integer id) { siteDAO.removeByPK(id); } public Site getSite(Integer id) { return siteDAO.get(id); } public List<Site> getSiteListByOrgans(Integer[] organs, Boolean publicenable) { return siteDAO.getSiteListByOrgans(organs, publicenable); } public void updSiteParent(Integer organId, Integer parentId, Integer newParentId) { siteDAO.updSiteParent(organId, parentId, newParentId); } /** * 获取机构跟站点集 * */ public List<TreeNode> getOrganSiteTreeList(Integer organId){ return getSiteChildren(null,organId); } /** * 获取机构站点子站点集 * */ public List<TreeNode> getOrganSiteTreeList(Integer parentId,Integer organId){ return getSiteChildren(parentId,organId); } /** * 获取客户跟站点集 * */ public List<TreeNode> getCustomerSiteTreeList(){ return getSiteChildren(null,null); } /** * 获取客户站点子站点集 * */ public List<TreeNode> getCustomerSiteTreeList(Integer parentId){ return getSiteChildren(parentId,null); } /** * 获取子站点. */ public List<TreeNode> getSiteChildren(Integer parentId, Integer organId) { List<TreeNode> tnList = new ArrayList<TreeNode>(); List<Site> siteList = siteDAO.getSiteChildren(parentId, organId); for (Site vo : siteList) { TreeNode tnVo = new TreeNode(); tnVo.setId(vo.getId().toString()); tnVo.setText(vo.getSiteName()); if (vo.hasChildren()) { tnVo.setState("closed"); } else { tnVo.setState("open"); } tnList.add(tnVo); } return tnList; } private Site getCurSite() { return EwcmsContextUtil.getCurrentSite(); } /** * 初始站点到访问上下文中当,提供全局访问 * * @param site */ private void initSiteInContext(Site site){ EwcmsContextHolder.getContext().setSite(site); } }