@Override public void createThemeFolder(String projectPath, String projectModuleName, String themeId) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; String filePath = getPortalSpecPath(projectPath, projectModuleName) + "/ftl/portaldefine/skin/" + themeId; File file = new File(filePath); file.mkdir(); File layoutFile = new File(filePath + "/layout"); layoutFile.mkdir(); File pageFile = new File(filePath + "/page"); pageFile.mkdir(); File portletFile = new File(filePath + "/portlet"); portletFile.mkdir(); /* 同步到portalhome下 */ File runtimePath = new File(runtimeDir + "/portalspec"); if (runtimePath.exists()) { String themePath = runtimeDir + "/portalspec/ftl/portaldefine/skin/" + themeId; file = new File(themePath); file.mkdir(); layoutFile = new File(themePath + "/layout"); layoutFile.mkdir(); pageFile = new File(themePath + "/page"); pageFile.mkdir(); portletFile = new File(themePath + "/portlet"); portletFile.mkdir(); } }
@Override public void deployPortal(String projectModuleName) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; PortalDeployDefinition define = parseModule(runtimeDir); new PtModuleDepoly().deploy(define); }
@Override public PortalDeployDefinition[] getPortalModules() { List<PortalDeployDefinition> moduleList = new ArrayList<PortalDeployDefinition>(); String dir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR; File f = new File(dir); File[] fs = f.listFiles(); for (int i = 0; i < fs.length; i++) { File mDir = fs[i]; if (mDir.isDirectory()) { File specDir = new File(mDir.getAbsolutePath() + "/portalspec"); if (specDir.exists() && specDir.isDirectory()) { File specFile = new File(specDir.getAbsolutePath() + "/portal.xml"); if (specFile.exists() && specFile.isFile()) { PortalDeployDefinition definition = parseModule(mDir.getAbsolutePath()); if (definition != null) moduleList.add(definition); } } } } try { return PortalModuleUtil.sortDefinition(moduleList); } catch (PortalServiceException e) { LfwLogger.info("Error:" + e.getMessage()); return new PortalDeployDefinition[0]; } }
@Override public void deployPtPlugin(String projectModuleName) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; PortalDeployDefinition define = parseModule(runtimeDir); new PtPluginDeploy().deploy(define); PluginManager.newIns().refresh(); }
@Override public void deployPortletApp(String projectModuleName) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; PortalDeployDefinition define = parseModule(runtimeDir); new PtPortletDeploy().deploy(define); PortalCacheManager.notify(CacheKeys.PORTLETS_CACHE, CacheKeys.USER_DIY_PORTLETS_CACHE); PortalCacheManager.notify(CacheKeys.PORTLETS_CACHE, CacheKeys.GROUP_PORTLETS_CACHE); PortalCacheManager.notify(CacheKeys.PORTLETS_CACHE, CacheKeys.SYSTEM_PORTLETS_CACHE); }
@Override public List<Display> getAllDisplays(String projectPath, String projectModuleName) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR; List<Display> displays = new ArrayList<Display>(); InputStream is = null; // 取项目自身displays String displayFile = getPortalSpecPath(projectPath, projectModuleName) + "/display.xml"; try { is = new FileInputStream(displayFile); BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = in.readLine()) != null) { buffer.append(line); } String xml = buffer.toString(); Display display = JaxbMarshalFactory.newIns().encodeXML(Display.class, xml); displays.add(display); } catch (IOException e) { LfwLogger.error(e.getMessage(), e); } // 获得所有依赖的module List<String> modules = new ArrayList<String>(); PortalModule portalModule = getPortal(projectPath, projectModuleName); getDependModules(modules, portalModule, projectModuleName, projectPath, runtimeDir); for (String module : modules) { String file = runtimeDir + "/" + module + "/portalspec/display.xml"; try { is = new FileInputStream(file); BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = in.readLine()) != null) { buffer.append(line); } String xml = buffer.toString(); Display display = JaxbMarshalFactory.newIns().encodeXML(Display.class, xml); displays.add(display); } catch (IOException e) { LfwLogger.error(e.getMessage(), e); } } return displays; }
@Override public void deployPage(String projectModuleName, String pageName) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; try { /*从数据库中删除page,重新部署*/ IPtPortalPageService prs = NCLocator.getInstance().lookup(IPtPortalPageService.class); // PortalServiceUtil.getPageService(); prs.delete(projectModuleName, pageName); PortalDeployDefinition define = parseModule(runtimeDir); new PtPageDeploy().deploy(define); PortalCacheManager.clearCache(CacheKeys.PORTTAL_PAGES_CACHE, CacheKeys.GROUP_PAGES_CACHE); } catch (Exception e) { LfwLogger.error(e.getMessage(), e); } }
@Override public List<Skin> getAllSkins(String projectPath, String projectModuleName, String type) { List<Skin> skins = new ArrayList<Skin>(); String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR; // 获得所有依赖的module List<String> modules = new ArrayList<String>(); modules.add(projectModuleName); PortalModule portalModule = getPortal(projectPath, projectModuleName); getDependModules(modules, portalModule, projectModuleName, projectPath, runtimeDir); for (String module : modules) { String skinDirs = runtimeDir + "/" + module + "/portalspec/ftl/portaldefine/skin/"; File f = new File(skinDirs); if (f.exists() && f.isDirectory()) { addSkins(skins, f, module, type); } } return skins; }
@Override public void saveLookAndFeelToXml( String projectPath, String projectModuleName, LookAndFeel lookAndFeel) { String runtimeDir = RuntimeEnv.getInstance().getNCHome() + PortalEnv.PORTAL_HOME_DIR + "/" + projectModuleName; String filePath = projectPath + "/web/WEB-INF/conf"; File f = new File(filePath); if (!f.exists()) f.mkdirs(); File file = new File(filePath + "/look-and-feel.xml"); String d = JaxbMarshalFactory.newIns().decodeXML(lookAndFeel); try { if (!file.exists()) file.createNewFile(); FileUtils.writeStringToFile(file, d, "UTF-8"); /* 重新部署*/ File runtimePath = new File(runtimeDir + "/portalspec"); if (runtimePath.exists()) { deployLookAndFeel(); } } catch (Exception e) { LfwLogger.error(e.getMessage(), e); throw new LfwRuntimeException(e); } }
// 季凌峰 2012/12/25 附件解密 public String loupadate( String opensource, String pk_xy_proj_main, String pk_xy_pub_step, String price_type) { String keyValue = null; // 附件解密方法 Properties props = new Properties(); // 文件存放的路径。评标会解密的附件压缩 String ebsfile = ""; BaseDAO dao = new BaseDAO(); InputStream is = null; try { // 读取应用下的配置文件 String path = RuntimeEnv.getInstance().getNCHome() + File.separatorChar + "hotwebs" + File.separatorChar + "ebscg" + File.separatorChar + "WEB-INF" + File.separatorChar + "conf" + File.separatorChar + "system.properties"; is = new FileInputStream(path); props.load(is); keyValue = props.getProperty(EbsOperaitonConst.CHECK_KEY); } catch (Exception e) { Logger.error("读取系统配置错误!", e); try { if (is != null) is.close(); } catch (Exception et) { Logger.error("读取系统配置错误!", et); } } finally { try { if (is != null) is.close(); } catch (IOException e) { Logger.error("读取系统配置错误!", e); } } // 如果为1的时候则对文件解密 if (keyValue != null) { // 因为没有从js获取,没有打开界面调用数据,所以参数需要自己定义和获取。 String openvalue = "2"; // 模块类型 model_type 7门户上传附件 String modelType = "7"; // 来源单据类型 bill_type //发标应答 E059 发布应答 E05A String billType = "E059"; // 发标应答 E059 if (opensource != null && opensource.equals("0")) { billType = "E05A"; // 发布应答 E05A } // 所属单据ID bill_id 采购方案主键 String billId = pk_xy_proj_main; // 所属单据明细ID itemid 供应商确定主键 try { String sql = "select * from ebs_xy_proj_item_sup_cfm where pk_xy_proj_main = '" + pk_xy_proj_main + "' and isnull(dr,0) = 0 "; List<ProjItemSupCfmVO> sp = (List<ProjItemSupCfmVO>) dao.executeQuery(sql, new BeanListProcessor(ProjItemSupCfmVO.class)); if (sp != null && sp.size() > 0) { for (ProjItemSupCfmVO sup : sp) { // 获取每次供应商的附件 // 修改下面的方法,主要是为了取得对应的附件类型。 String sqls = "select * from ebs_da_att where model_type='" + modelType + "' and bill_type= '" + billType + "' and bill_id='" + billId + "' and itemid='" + sup.getPk_xy_proj_item_sup_cfm() + "' and zdy3='" + pk_xy_pub_step + "' and price_type in (" + price_type + ") and ISNULL(dr,0) = 0 "; List<AttVO> list = (List<AttVO>) dao.executeQuery(sqls, new BeanListProcessor(AttVO.class)); // List<AttVO> list = getOpenQueryService().getCaFileByPara(modelType, billType, billId, // sup.getPk_xy_proj_item_sup_cfm()); EbscgFileUploadHandler fileHandler = (EbscgFileUploadHandler) LfwClassUtil.newInstance(EbscgFileUploadHandler.class.getName()); if (list != null && list.size() > 0) { SignVO signvo = null; byte[] baOutPlaintext = null; for (AttVO attvo : list) { if (attvo != null && attvo.getAfter_ca() != null && attvo.getAfter_ca() == 1) { continue; } try { // 采用数据库读取文件数据 DataFileFactory dff = DataFileFactory.getInstance(); IDataBaseFileOper ibfo = dff.getFileDealServer(); byte[] content = null; content = ibfo.obtainFileMess(attvo.getPk_da_att(), "ca_content"); EncrypteDecrypte3DES des = new EncrypteDecrypte3DES(); BASE64Decoder base64 = new BASE64Decoder(); des.setKey(base64.decodeBuffer(keyValue)); des.setIv(base64.decodeBuffer("zz7cZtYpVR4=")); baOutPlaintext = des.decrypt(base64.decodeBuffer(new String(content).trim())); ibfo.updateFileMess(attvo.getPk_da_att(), baOutPlaintext, "content"); attvo.setAfter_ca(1); // 设置文档解密状态 dao.updateVO(attvo, new String[] {"after_ca"}); } catch (Exception ex) { // TODO Auto-generated catch block logger.error(ex.getMessage(), ex); return "文件解密失败"; /*throw new LfwRuntimeException("文件解密失败");*/ } } } } } } catch (Exception e) { logger.error(e.getMessage(), e); return "文件解密失败"; /*throw new LfwRuntimeException("文件解密失败");*/ } } return "ok"; }