Ejemplo n.º 1
0
 public void del() {
   String ids = $V("IDs");
   Transaction tran = new Transaction();
   String[] arr = ids.split("\\,");
   for (int i = 0; i < arr.length; i++) {
     tran.add(new QueryBuilder("delete from ZCFullText where id=?", arr[i]));
     tran.add(
         new QueryBuilder(
             "delete from ZDSchedule where SourceID=? and TypeCode='IndexMaintenance'", arr[i]));
   }
   if (tran.commit()) this.response.setMessage("删除成功");
   else this.response.setError("发生错误,删除失败");
 }
Ejemplo n.º 2
0
  public void addAntiCount() {
    String ip = this.request.getClientIP();
    String id = $V("ID");

    Transaction trans = new Transaction();
    ZCCommentSchema task = new ZCCommentSchema();

    task.setID(id);
    task.fill();
    String supportAntiIP = task.getSupportAntiIP();
    if ((XString.isNotEmpty(supportAntiIP)) && (supportAntiIP.indexOf(ip) >= 0)) {
      this.response.setMessage("您已经评论过,谢谢支持!");
      this.response.put("count", task.getAntiCount());
      return;
    }
    long count = task.getAntiCount();

    task.setAntiCount(count + 1L);
    task.setSupportAntiIP((XString.isEmpty(supportAntiIP) ? "" : supportAntiIP) + ip);
    trans.add(task, OperateType.UPDATE);
    if (trans.commit()) {
      this.response.setStatus(1);
      this.response.setMessage("您的评论提交成功!");
      this.response.put("count", count + 1L);
    } else {
      this.response.setLogInfo(0, "审核失败");
    }
  }
Ejemplo n.º 3
0
 public void Verify() {
   String ID = $V("ID");
   String Type = $V("Type");
   String IDs = $V("IDs");
   if ((XString.isNotEmpty(ID)) && (XString.isEmpty(IDs))) {
     ZCCommentSchema comment = new ZCCommentSchema();
     comment.setID(ID);
     comment.fill();
     if (Type.equals("Pass")) comment.setVerifyFlag("Y");
     else if (Type.equals("NoPass")) {
       comment.setVerifyFlag("N");
     }
     comment.setVerifyUser(User.getUserName());
     comment.setVerifyTime(new Date());
     if (comment.update()) this.response.setLogInfo(1, "审核成功");
     else this.response.setLogInfo(0, "审核失败");
   } else if ((XString.isNotEmpty(IDs)) && (XString.isEmpty(ID))) {
     ZCCommentSchema comment = new ZCCommentSchema();
     ZCCommentSet set = comment.query(new QueryBuilder("where ID in (" + IDs + ")"));
     Transaction trans = new Transaction();
     for (int i = 0; i < set.size(); i++) {
       comment = set.get(i);
       if (Type.equals("Pass")) comment.setVerifyFlag("Y");
       else if (Type.equals("NoPass")) {
         comment.setVerifyFlag("N");
       }
       comment.setVerifyUser(User.getUserName());
       comment.setVerifyTime(new Date());
       trans.add(comment, OperateType.UPDATE);
     }
     if (trans.commit()) this.response.setLogInfo(1, "审核成功");
     else this.response.setLogInfo(0, "审核失败");
   }
 }
Ejemplo n.º 4
0
 public void del() {
   String Codes = $V("Codes");
   if ((Codes.indexOf("\"") >= 0) || (Codes.indexOf("'") >= 0)) {
     this.response.setStatus(0);
     this.response.setMessage("传入ID时发生错误!");
     return;
   }
   Codes = XString.replaceEx(Codes, ",", "','");
   Transaction trans = new Transaction();
   ZDMemberFieldSchema field = new ZDMemberFieldSchema();
   ZDMemberFieldSet set =
       field.query(
           new QueryBuilder(
               "where SiteID = "
                   + ApplicationPage.getCurrentSiteID()
                   + " and Code in ('"
                   + Codes
                   + "')"));
   trans.add(set, OperateType.DELETE);
   if (trans.commit()) {
     this.response.setStatus(1);
     this.response.setMessage("删除成功!");
   } else {
     this.response.setStatus(0);
     this.response.setMessage("操作数据库时发生错误!");
   }
 }
Ejemplo n.º 5
0
 public boolean addJobs(long siteID, ArrayList list, String operation) {
   ZCDeployJobSet set = getJobs(siteID, list, operation);
   Transaction trans = new Transaction();
   trans.add(set, OperateType.INSERT);
   if (trans.commit()) {
     return true;
   }
   LogUtil.getLogger().info("添加部署任务时,数据库操作失败");
   return false;
 }
Ejemplo n.º 6
0
 public void add() {
   Transaction tran = new Transaction();
   ZCFullTextSchema ft = new ZCFullTextSchema();
   if (XString.isEmpty($V("ID"))) {
     ft.setValue(this.request);
     ft.setID(NoUtil.getMaxID("FullTextID"));
     ft.setSiteID(ApplicationPage.getCurrentSiteID());
     ft.setAddTime(new Date());
     ft.setAddUser(User.getUserName());
     tran.add(ft, OperateType.INSERT);
   } else {
     ft.setID(Long.parseLong($V("ID")));
     ft.fill();
     ft.setValue(this.request);
     ft.setModifyTime(new Date());
     ft.setModifyUser(User.getUserName());
     tran.add(ft, OperateType.UPDATE);
   }
   if (tran.commit()) this.response.setMessage("保存成功");
   else this.response.setError("发生错误,保存失败");
 }
Ejemplo n.º 7
0
 public void del() {
   String ids = $V("IDs");
   if ((ids.indexOf("\"") >= 0) || (ids.indexOf("'") >= 0)) {
     this.response.setLogInfo(0, "传入ID时发生错误");
     return;
   }
   Transaction trans = new Transaction();
   ZCCommentSchema task = new ZCCommentSchema();
   ZCCommentSet set = task.query(new QueryBuilder("where id in (" + ids + ")"));
   trans.add(set, OperateType.DELETE_AND_BACKUP);
   if (trans.commit()) this.response.setLogInfo(1, "删除评论成功");
   else this.response.setLogInfo(0, "删除评论失败");
 }
Ejemplo n.º 8
0
  public boolean addOneJob(long configID, boolean immediate) {
    ZCDeployJobSchema job = new ZCDeployJobSchema();
    ZCDeployConfigSchema config = new ZCDeployConfigSchema();
    config.setID(configID);
    if (!config.fill()) {
      return false;
    }

    String staticDir =
        Config.getContextRealPath() + Config.getValue("Statical.TargetDir").replace('\\', '/');
    String sourcePath =
        staticDir + "/" + ApplicationPage.getCurrentSiteAlias() + config.getSourceDir();
    job.setID(NoUtil.getMaxID("DeployJobID"));
    job.setConfigID(config.getID());
    job.setSource(sourcePath);
    job.setMethod(config.getMethod());

    String targetDir = config.getTargetDir();
    if (XString.isEmpty(targetDir)) {
      targetDir = "/";
    } else if (!targetDir.endsWith("/")) {
      targetDir = targetDir + "/";
    }

    job.setTarget(targetDir);
    job.setSiteID(config.getSiteID());
    job.setHost(config.getHost());
    job.setPort(config.getPort());
    job.setUserName(config.getUserName());
    job.setPassword(config.getPassword());
    job.setStatus(0L);
    job.setAddTime(new Date());
    job.setAddUser(User.getUserName());

    Transaction trans = new Transaction();
    trans.add(job, OperateType.INSERT);
    if (trans.commit()) {
      if (immediate) {
        executeJob(config, job);
      }
      return true;
    }
    LogUtil.getLogger().info("添加部署任务时,数据库操作失败");
    return false;
  }
Ejemplo n.º 9
0
  public boolean executeBatchJob(ZCDeployConfigSchema config, ZCDeployJobSet jobs) {
    if ((config == null) || (jobs.size() < 1)) {
      return false;
    }

    Transaction trans = new Transaction();
    String message = "";
    boolean connectFlag = true;

    String deployMethod = config.getMethod();
    if ("DIR".equals(deployMethod)) {
      for (int i = 0; i < jobs.size(); i++) {
        ZCDeployJobSchema job = jobs.get(i);

        ZCDeployLogSchema jobLog = new ZCDeployLogSchema();
        jobLog.setID(NoUtil.getMaxID("DeployLogID"));
        jobLog.setSiteID(job.getSiteID());
        jobLog.setJobID(job.getID());
        jobLog.setBeginTime(new Date());

        if (job.getStatus() == 3L) {
          job.setRetryCount(job.getRetryCount() + 1L);
        }

        String sourceFile = job.getSource();
        if (sourceFile.indexOf("template") != -1) {
          LogUtil.getLogger().info("模板文件" + sourceFile + "不复制,跳过");
          return true;
        }

        String target = job.getTarget();
        target = target.replace('\\', '/');
        String targetDir = target.substring(0, target.lastIndexOf("/"));
        File dir = new File(targetDir);
        if (!dir.exists()) {
          dir.mkdirs();
        }
        if (!targetDir.endsWith("/template")) {
          if ("delete".equalsIgnoreCase(job.getOperation())) {
            if (FileUtil.delete(target)) {
              message = "成功删除文件" + target;
              LogUtil.getLogger().info(message);
              job.setStatus(2L);
            } else {
              message = "失败:删除文件" + target;
              LogUtil.getLogger().info(message);
              job.setStatus(3L);
              Errorx.addError(message);
            }
          } else if (FileUtil.copy(sourceFile, target)) {
            message = "成功复制文件" + sourceFile + "到" + target;
            LogUtil.getLogger().info(message);
            job.setStatus(2L);
          } else {
            message = "失败:复制文件" + sourceFile + "到" + target;
            LogUtil.getLogger().info(message);
            job.setStatus(3L);
            Errorx.addError(message);
          }
        }

        jobLog.setMessage(message);
        jobLog.setEndTime(new Date());
        LogUtil.getLogger().info(message);

        trans.add(jobLog, OperateType.INSERT);
        trans.add(job, OperateType.UPDATE);
      }
    } else if ("FTP".equals(deployMethod)) {
      CommonFtp ftp = new CommonFtp();
      try {
        ftp.connect(
            config.getHost(), (int) config.getPort(), config.getUserName(), config.getPassword());
        connectFlag = true;
      } catch (IOException e1) {
        e1.printStackTrace();

        ZCDeployLogSchema jobLog = new ZCDeployLogSchema();
        jobLog.setID(NoUtil.getMaxID("DeployLogID"));
        jobLog.setSiteID(config.getSiteID());
        jobLog.setJobID(jobs.get(0).getID());
        jobLog.setBeginTime(new Date());
        jobLog.setEndTime(new Date());
        jobLog.setMessage(e1.getMessage());
        trans.add(jobLog, OperateType.INSERT);
        connectFlag = false;
      }
      if (connectFlag) {
        for (int i = 0; i < jobs.size(); i++) {
          ZCDeployJobSchema job = jobs.get(i);

          ZCDeployLogSchema jobLog = new ZCDeployLogSchema();
          jobLog.setID(NoUtil.getMaxID("DeployLogID"));
          jobLog.setSiteID(job.getSiteID());
          jobLog.setJobID(job.getID());
          jobLog.setBeginTime(new Date());

          if (job.getStatus() == 3L) {
            job.setRetryCount(job.getRetryCount() + 1L);
          }

          String target = job.getTarget();
          target = target.replace('\\', '/');
          if ("delete".equalsIgnoreCase(job.getOperation()))
            try {
              target = target.replaceAll("///", "/");
              if (ftp.delete(target)) {
                message = "FTP删除文件成功";
                job.setStatus(2L);
                jobLog.setMessage(message);
                jobLog.setEndTime(new Date());
                LogUtil.getLogger().info(message);

                trans.add(jobLog, OperateType.INSERT);
                trans.add(job, OperateType.UPDATE);
                break;
              }
              message = "FTP删除文件失败";
              job.setStatus(3L);
            } catch (Exception e) {
              job.setStatus(3L);
              message = e.getMessage();
              Errorx.addError(message);
            }
          else {
            try {
              String srcFile = job.getSource();
              srcFile = srcFile.replaceAll("///", "/");
              srcFile = srcFile.replaceAll("//", "/");
              String path = srcFile;
              ArrayList list = FileList.getAllFiles(path);
              if (list.size() == 0) {
                job.setStatus(3L);
                message = "文件不存在:" + path;
                Errorx.addError(message);
              } else {
                for (int j = 0; j < list.size(); j++) {
                  String name = (String) list.get(j);
                  if (name.indexOf("template") != -1) {
                    continue;
                  }
                  name = name.replace('\\', '/');
                  String targetName = name.replaceAll(path, "");
                  ftp.upload(name, target + targetName);
                }
                job.setStatus(2L);
                message = "FTP上传成功";
              }
            } catch (Exception e) {
              job.setStatus(3L);
              message = e.getMessage();
              Errorx.addError(message);
            }
          }
          label1106:
          jobLog.setMessage(message);
          jobLog.setEndTime(new Date());
          LogUtil.getLogger().info(message);

          trans.add(jobLog, OperateType.INSERT);
          trans.add(job, OperateType.UPDATE);
        }
      }
      ftp.disconnect();
    } else if ("SFTP".equals(deployMethod)) {
      SFtp sftp = new SFtp();
      try {
        sftp.connect(
            config.getHost(), (int) config.getPort(), config.getUserName(), config.getPassword());
        connectFlag = true;
      } catch (JSchException e1) {
        e1.printStackTrace();

        ZCDeployLogSchema jobLog = new ZCDeployLogSchema();
        jobLog.setID(NoUtil.getMaxID("DeployLogID"));
        jobLog.setSiteID(config.getSiteID());
        jobLog.setJobID(jobs.get(0).getID());
        jobLog.setBeginTime(new Date());
        jobLog.setEndTime(new Date());
        jobLog.setMessage(e1.getMessage());
        trans.add(jobLog, OperateType.INSERT);
        connectFlag = false;
      }
      if (connectFlag) {
        for (int i = 0; i < jobs.size(); i++) {
          ZCDeployJobSchema job = jobs.get(i);

          ZCDeployLogSchema jobLog = new ZCDeployLogSchema();
          jobLog.setID(NoUtil.getMaxID("DeployLogID"));
          jobLog.setSiteID(job.getSiteID());
          jobLog.setJobID(job.getID());
          jobLog.setBeginTime(new Date());

          if (job.getStatus() == 3L) {
            job.setRetryCount(job.getRetryCount() + 1L);
          }

          String target = job.getTarget();
          target = target.replace('\\', '/');
          if ("delete".equalsIgnoreCase(job.getOperation()))
            try {
              target = target.replaceAll("///", "/");
              if (sftp.delete(target)) {
                message = "SFTP删除文件成功";
                job.setStatus(2L);
                jobLog.setMessage(message);
                jobLog.setEndTime(new Date());
                LogUtil.getLogger().info(message);

                trans.add(jobLog, OperateType.INSERT);
                trans.add(job, OperateType.UPDATE);
              }
              message = "SFTP删除文件失败";
              job.setStatus(3L);
            } catch (Exception e) {
              job.setStatus(3L);
              message = e.getMessage();
              Errorx.addError(message);
            }
          else {
            try {
              String srcFile = job.getSource();
              srcFile = srcFile.replaceAll("///", "/");
              srcFile = srcFile.replaceAll("//", "/");
              String path = srcFile;
              ArrayList list = FileList.getAllFiles(path);
              if (list.size() == 0) {
                job.setStatus(3L);
                message = "文件不存在" + srcFile;
              } else {
                for (int j = 0; j < list.size(); j++) {
                  String name = (String) list.get(j);
                  if (name.indexOf("template") != -1) {
                    continue;
                  }
                  name = name.replace('\\', '/');
                  String targetName = name.replaceAll(path, "");
                  sftp.upload(name, target + targetName);
                }
                job.setStatus(2L);
                message = "SFTP上传成功";
              }
            } catch (Exception e) {
              job.setStatus(3L);
              message = e.getMessage();
              Errorx.addError(message);
            }
          }
          label1730:
          jobLog.setMessage(message);
          jobLog.setEndTime(new Date());
          LogUtil.getLogger().info(message);

          trans.add(jobLog, OperateType.INSERT);
          trans.add(job, OperateType.UPDATE);
        }
      }
      sftp.disconnect();
    }

    if (trans.commit()) {
      return true;
    }
    LogUtil.getLogger().info("添加部署任务时,数据库操作失败");
    Errorx.addError(message);
    return false;
  }
Ejemplo n.º 10
0
  public static void dealAutoIndex(long siteID, boolean autoIndex) {
    ZCFullTextSchema ft = new ZCFullTextSchema();
    ft.setSiteID(siteID);
    ft.setProp1("AutoIndex");
    ZCFullTextSet set = ft.query();
    if (!autoIndex) {
      if (set.size() == 0) {
        return;
      }
      long sourceID = set.get(0).getID();
      ZDScheduleSchema sd = new ZDScheduleSchema();
      sd.setSourceID(sourceID);
      ZDScheduleSet sdSet = sd.query();
      if (sdSet.size() == 0) {
        return;
      }
      sd = sdSet.get(0);
      if ("N".equals(sd.getIsUsing())) {
        return;
      }
      sd.setIsUsing("N");
      sd.update();
    } else if (set.size() == 0) {
      ft.setID(NoUtil.getMaxID("FullTextID"));
      ft.setRelaText("-1");
      ft.setType("Article");
      ft.setName("全站索引-" + SiteUtil.getName(ft.getSiteID()));
      ft.setCode("AllArticle");
      ft.setAddUser("SYS");
      ft.setAddTime(new Date());

      ZDScheduleSchema sd = new ZDScheduleSchema();
      sd.setAddTime(new Date());
      sd.setAddUser("SYS");
      sd.setCronExpression("*/3 * * * *");
      sd.setID(NoUtil.getMaxID("ScheduleID"));
      sd.setIsUsing("Y");
      sd.setPlanType("Period");
      sd.setTypeCode("IndexMaintenance");
      sd.setStartTime(new Date());
      sd.setSourceID(ft.getID());

      Transaction tran = new Transaction();
      tran.add(ft, OperateType.INSERT);
      tran.add(sd, OperateType.INSERT);
      tran.commit();
    } else {
      ft = set.get(0);
      long sourceID = set.get(0).getID();
      ZDScheduleSchema sd = new ZDScheduleSchema();
      sd.setSourceID(sourceID);
      ZDScheduleSet sdSet = sd.query();
      if (sdSet.size() == 0) {
        sd.setAddTime(new Date());
        sd.setAddUser("SYS");
        sd.setCronExpression("*/3 * * * *");
        sd.setID(NoUtil.getMaxID("ScheduleID"));
        sd.setIsUsing("Y");
        sd.setPlanType("Period");
        sd.setTypeCode("IndexMaintenance");
        sd.setStartTime(new Date());
        sd.setSourceID(ft.getID());
        sd.insert();
      }
    }
  }
Ejemplo n.º 11
0
  public void add() {
    String hCode = $V("hCode");
    boolean update = false;
    int FieldCount =
        new QueryBuilder(
                "select count(*) from ZDMemberField where SiteID = ?",
                ApplicationPage.getCurrentSiteID())
            .executeInt();
    ZDMemberFieldSchema field = new ZDMemberFieldSchema();
    field.setCode($V("Code").trim());
    field.setSiteID(ApplicationPage.getCurrentSiteID());
    if ((XString.isEmpty(hCode)) && (field.fill())) {
      this.response.setLogInfo(0, "已有相同字段");
      return;
    }
    if ((XString.isNotEmpty(hCode)) && (field.fill())) {
      update = true;
    }
    if (!update) {
      if (FieldCount < 20) {
        int index = 1;
        for (int i = 1; i <= 20; i++) {
          if (new QueryBuilder(
                      "select count(*) from ZDMemberField where SiteID = ? and RealField = 'Prop"
                          + i
                          + "'",
                      ApplicationPage.getCurrentSiteID())
                  .executeInt()
              == 0) {
            index = i;
            break;
          }
        }
        field.setRealField("Prop" + index);
      } else {
        this.response.setLogInfo(0, "达到扩展字段上限");
        return;
      }
    }
    field.setValue(this.request);
    field.setName($V("Name"));
    field.setCode($V("Code"));
    field.setAddUser(User.getUserName());
    field.setAddTime(new Date());

    String defaultValue = field.getDefaultValue();
    defaultValue = defaultValue.replaceAll("  ", ",");
    defaultValue = defaultValue.replaceAll(" ", ",");
    defaultValue = defaultValue.replaceAll("  ", ",");
    defaultValue = defaultValue.replaceAll(" ", ",");
    defaultValue = defaultValue.replaceAll(",,", ",");
    defaultValue = defaultValue.replaceAll(",,", ",");
    defaultValue = defaultValue.replaceAll(",", ",");
    if (XString.isEmpty(defaultValue)) {
      defaultValue = "";
    }
    field.setDefaultValue(defaultValue);

    if (Input.equals(field.getInputType())) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setListOption("");
    } else if (Text.equals(field.getInputType())) {
      field.setListOption("");
    } else if (Selecter.equals(field.getInputType())) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if (Radio.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if (Checkbox.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if ((DateInput.equals(field.getInputType()))
        || (TimeInput.equals(field.getInputType()))) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setListOption("");
      field.setVerifyType(STRING);
    } else if (HTMLInput.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setListOption("");
      field.setVerifyType(STRING);
    }

    Transaction trans = new Transaction();
    if (update) trans.add(field, OperateType.UPDATE);
    else {
      trans.add(field, OperateType.INSERT);
    }
    if (trans.commit()) this.response.setLogInfo(1, "保存会员扩展字段成功!");
    else this.response.setLogInfo(0, "发生错误!");
  }
Ejemplo n.º 12
0
  public void add() {
    if (ForumUtil.isNotSendTheme($V("SiteID"), $V("ForumID"))) {
      this.response.setLogInfo(0, "您没有发帖的权限");
      return;
    }
    ForumScore forumScore = new ForumScore($V("SiteID"));
    ZCThemeSchema theme = new ZCThemeSchema();
    ZCForumMemberSchema user = new ZCForumMemberSchema();
    ZCForumSchema forum = new ZCForumSchema();
    ForumPriv priv = new ForumPriv($V("SiteID"));
    Transaction trans = new Transaction();

    theme.setValue(this.request);
    theme.setID(NoUtil.getMaxID("ThemeID"));

    forum.setID(theme.getForumID());
    forum.fill();
    theme.setSiteID($V("SiteID"));
    theme.setAddUser(User.getUserName());
    theme.setOrderFlag(0L);
    theme.setViewCount(0);
    theme.setReplyCount(0);
    theme.setTopTheme("N");
    theme.setBest("N");
    theme.setType("0");
    theme.setAddTime(new Date());
    theme.setOrderTime(new Date());
    theme.setStatus("Y");
    theme.setVerifyFlag(forum.getVerify().equals("N") ? "Y" : "N");
    trans.add(theme, OperateType.INSERT);

    ZCPostSchema post = new ZCPostSchema();
    post.setValue(this.request);
    post.setFirst("Y");
    post.setID(NoUtil.getMaxID("PostID"));
    post.setThemeID(theme.getID());
    post.setAddUser(User.getUserName());
    post.setAddTime(theme.getAddTime());
    post.setVerifyFlag(forum.getVerify().equals("N") ? "Y" : "N");
    post.setInvisible("Y");
    post.setLayer(1L);
    post.setMessage(PostAdd.processMsg($V("Message")));
    trans.add(post, OperateType.INSERT);
    user.setUserName(theme.getAddUser());
    user.fill();

    if (priv.hasPriv("Verify")) {
      theme.setVerifyFlag("Y");
      post.setVerifyFlag("Y");
    }

    if (theme.getVerifyFlag().equals("Y")) {
      user.setForumScore(user.getForumScore() + forumScore.PublishTheme);
      ForumUtil.userGroupChange(user);
      user.setThemeCount(user.getThemeCount() + 1L);
      forum.setThemeCount(forum.getThemeCount() + 1);
      forum.setLastThemeID(theme.getID());
      forum.setLastPost(theme.getSubject());
      forum.setLastPoster(theme.getAddUser());
    }
    if (post.getVerifyFlag().equals("Y")) {
      forum.setPostCount(forum.getPostCount() + 1);
    }
    trans.add(user, OperateType.UPDATE);
    trans.add(forum, OperateType.UPDATE);
    if ($V("file").length() > 0) {
      String[] Attachments = $V("file").split(",");
      String[] indexs = $V("indexs").split(",");
      for (int i = 0; i < Attachments.length; i++) {
        ZCForumAttachmentSchema attachment = new ZCForumAttachmentSchema();
        attachment.setID(NoUtil.getMaxID("ForumAttachmentID"));
        attachment.setPostID(post.getID());
        attachment.setSiteID($V("SiteID"));
        String suffix =
            $V("file" + indexs[i]).substring($V("file" + indexs[i]).lastIndexOf(".") + 1);
        if (PubFun.isAllowExt(suffix, "Attach")) {
          attachment.setType("attach");
        } else if (PubFun.isAllowExt(suffix, "Image")) {
          attachment.setType("image");
        } else if (PubFun.isAllowExt(suffix, "Audio")) {
          attachment.setType("audio");
        } else if (PubFun.isAllowExt(suffix, "Video")) {
          attachment.setType("video");
        } else {
          this.response.setLogInfo(0, "不允许上传该文件类型");
          return;
        }
        attachment.setSuffix(suffix);
        attachment.setName(
            $V("file" + indexs[i]).substring($V("file" + indexs[i]).lastIndexOf("\\") + 1));
        String[] file = Attachments[i].split("#");
        attachment.setPath(file[0]);
        attachment.setAttSize(file[1]);
        attachment.setDownCount(0L);
        attachment.setAddUser(User.getUserName());
        attachment.setAddTime(new Date());
        trans.add(attachment, OperateType.INSERT);
      }
    }
    if (trans.commit()) {
      if (theme.getVerifyFlag().equals("Y")) {
        CacheManager.set("Forum", "Forum", forum.getID(), forum);
        this.response.setLogInfo(1, "新增成功");
        this.response.put("ThemeID", theme.getID());
      } else {
        this.response.setLogInfo(2, "论坛管理员设置了审核机制,请等待审核!");
      }
    } else this.response.setLogInfo(0, "新增失败!");
  }