예제 #1
0
  /**
   * 把模板保存至模板库
   *
   * @return
   */
  @SuppressWarnings("unchecked")
  @Transactional(rollbackFor = {RuntimeException.class, Exception.class})
  public void saveAsTemplateLibDeal(Map paramMap) throws BusinessServiceException {
    PageTemplateInfo pageTemplateInfo = (PageTemplateInfo) paramMap.get("pageTemplateInfo");
    String currentUser = (String) paramMap.get("currentUser");
    Date date = new Date();

    // 查询当前模板信息及参数信息
    CmsSiteTpl cmsSiteTpl = findTplByTemplateId(pageTemplateInfo.getTemplateId());

    PreparedTemplateManageBo preparedTemplateManageBo =
        SpringBeanUtil.getBean("preparedTemplateManageBo");

    if (preparedTemplateManageBo.queryTemplateByKey(cmsSiteTpl.getTemplateKey()) == null) {
      List<CmsSiteTplDt> list = queryTemplateDatatags(cmsSiteTpl.getTemplateId());

      // 复制模板库内容
      CmsTemplateLib lib = new CmsTemplateLib();
      lib.setCreatedBy(currentUser);
      lib.setCreatedDate(date);
      lib.setUpdateBy(currentUser);
      lib.setUpdateDate(date);
      lib.setLibDescription(cmsSiteTpl.getCmsSite().getSiteName());
      lib.setLibName(cmsSiteTpl.getCmsSite().getSiteName());

      // 复制模板内容
      CmsTemplate template = new CmsTemplate();
      template.setCmsTemplateLib(lib);
      template.setCreatedBy(currentUser);
      template.setCreatedDate(date);
      template.setUpdateBy(currentUser);
      template.setUpdateDate(date);
      template.setDescription(cmsSiteTpl.getDescription());
      template.setPath(cmsSiteTpl.getPath());
      template.setTargetFile(cmsSiteTpl.getTargetFile());
      template.setTemplateFile(cmsSiteTpl.getTemplateFile());
      template.setTemplateKey(cmsSiteTpl.getTemplateKey());
      template.setTemplateName(cmsSiteTpl.getTemplateName());
      // 模板文件保存到文件系统中
      // url = systemConfigBo.getSysParam().getTemplatepath() + url;
      // template.setTemplateContent(FileOperationUtils.readFile(url));

      // 复制模板参数
      for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
        CmsSiteTplDt cmsSiteTplDt = (CmsSiteTplDt) iterator.next();
        // 新建模板对象
        CmsTplDt cmsTplDt = new CmsTplDt();
        cmsTplDt.setCreatedBy(currentUser);
        cmsTplDt.setCreatedDate(date);
        cmsTplDt.setUpdateBy(currentUser);
        cmsTplDt.setUpdateDate(date);
        cmsTplDt.setDatatagId(cmsSiteTplDt.getDatatagId());
        cmsTplDt.setDatatagKey(cmsSiteTplDt.getDatatagKey());
        // cmsTplDt.setTemplateKey(cmsSiteTpl.getTemplateKey());
        // //2010-08-13
        cmsTplDt.setCmsTemplate(template);

        for (Iterator iterator2 = cmsSiteTplDt.getCmsSiteTplDtparams().iterator();
            iterator2.hasNext(); ) {
          CmsSiteTplDtparam cmsSiteTplDtparam = (CmsSiteTplDtparam) iterator2.next();
          // 新建参数对象
          CmsTplDtparam cmsTplDtparam = new CmsTplDtparam();
          // cmsTplDtparam.setDatatagId(cmsSiteTplDt.getDatatagId());
          // cmsTplDtparam.setTemplateKey(cmsSiteTpl.getTemplateKey());
          // //2010-08-13
          cmsTplDtparam.setCmsTplDt(cmsTplDt);
          cmsTplDtparam.setDefaultValue(cmsSiteTplDtparam.getValue());
          cmsTplDtparam.setParamKey(cmsSiteTplDtparam.getParamKey());
          cmsTplDtparam.setParamName(cmsSiteTplDtparam.getParamName());
          // 添加到模板信息中
          cmsTplDt.getCmsTplDtparams().add(cmsTplDtparam);
        }
        template.getCmsTplDts().add(cmsTplDt);
      }

      Map map = new HashMap();
      map.put("cmsTemplateLib", lib);
      map.put("cmsTemplate", template);

      saveAsTemplateLib(map);
    } else {
      throw new BusinessServiceException("该模板已经存在模板库中!");
    }
  }