@Transactional(propagation = Propagation.REQUIRED) public void delete(int id) { MultiSite childsite = this.get(id); List<Theme> list = themeManager.list(id); // 读取此站点的主题 String contextPath = EopContext.getContext().getContextPath(); for (Theme theme : list) { /** 删除模板静态资源文件* */ String targetPath = EopSetting.IMG_SERVER_PATH + contextPath + "/themes/" + theme.getPath() + "_" + id; FileUtil.removeFile(new File(targetPath)); /** 删除模板文件* */ targetPath = EopSetting.EOP_PATH + contextPath + "/themes/" + theme.getPath() + "_" + id; FileUtil.removeFile(new File(targetPath)); } /** 删除域名 */ this.siteManager.deleteDomain(childsite.getDomain()); /** 删除主题* */ this.baseDaoSupport.execute("delete from theme where siteid = ?", id); /** 删除站点 */ this.baseDaoSupport.execute("delete from site where siteid = ?", id); }
@Transactional(propagation = Propagation.REQUIRED) public void add(MultiSite site) { /** 读取父* */ MultiSite parent = this.get(site.getParentid()); /** 读取本级最大code* */ String sql = "select max(code) code from site where parentid=? "; int maxcode = this.baseDaoSupport.queryForInt(sql, site.getParentid()); // cat code maxcode = maxcode == 0 ? maxcode = parent.getCode() : maxcode; int level = parent.getLevel() + 1; // 级别 site.setCode(this.createCode(maxcode, level)); site.setLevel(level); this.baseDaoSupport.insert("site", site); int siteid = this.baseDaoSupport.getLastId("site"); Integer userid = EopContext.getContext().getCurrentSite().getUserid(); EopSiteDomain eopSiteDomain = new EopSiteDomain(); eopSiteDomain.setUserid(userid); eopSiteDomain.setDomain(site.getDomain()); eopSiteDomain.setSiteid(EopContext.getContext().getCurrentSite().getId()); siteManager.addDomain(eopSiteDomain); try { /** * 此处逻辑:先取出所指定的theme信息,取得其对应的文件目录,<br> * 然后修改theme.path并插入theme,取得插入的themeid并写回到site */ site.setSiteid(siteid); Theme theme = this.themeManager.getTheme(site.getThemeid()); String contextPath = EopContext.getContext().getContextPath(); // 复制资源到静态资源服务器 String basePath = EopSetting.IMG_SERVER_PATH + contextPath + "/themes/" + theme.getPath(); String targetPath = EopSetting.IMG_SERVER_PATH + contextPath + "/themes/" + theme.getPath() + "_" + siteid; FileUtil.copyFolder(basePath, targetPath); // 复制theme basePath = EopSetting.EOP_PATH + contextPath + "/themes/" + theme.getPath(); targetPath = EopSetting.EOP_PATH + contextPath + "/themes/" + theme.getPath() + "_" + siteid; FileUtil.copyFolder(basePath, targetPath); theme.setPath(theme.getPath() + "_" + siteid); theme.setSiteid(siteid); theme.setId(null); this.baseDaoSupport.insert("theme", theme); int themeid = this.baseDaoSupport.getLastId("theme"); site.setThemeid(themeid); this.update(site); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("创建主题出错"); } }
/* */ public void changeTheme(Integer themeid) /* */ { /* 464 */ EopSite site = EopContext.getContext().getCurrentSite(); /* 465 */ Theme theme = this.themeManager.getTheme(themeid); /* 466 */ String sql = "update eop_site set themeid=?,themepath=? where userid=? and id=?"; /* 467 */ this.daoSupport.execute( sql, new Object[] {themeid, theme.getPath(), site.getUserid(), site.getId()}); /* */ /* 469 */ site.setThemeid(themeid); /* 470 */ site.setThemepath(theme.getPath()); /* 471 */ ResourceStateManager.setDisplayState(1); /* */ }
/* */ private void fillThemesElement(Element parentEl) /* */ { /* 206 */ List themeList = this.themeManager.list(); /* 207 */ EopSite site = EopContext.getContext().getCurrentSite(); /* 208 */ for (Theme theme : themeList) { /* 209 */ Element themeEl = new Element("theme"); /* 210 */ themeEl.setAttribute("id", theme.getPath()); /* 211 */ themeEl.setAttribute("name", theme.getThemename()); /* 212 */ if (site.getThemeid().intValue() == theme.getId().intValue()) { /* 213 */ themeEl.setAttribute("default", "yes"); /* */ } /* 215 */ parentEl.addContent(themeEl); /* */ } /* */ }