コード例 #1
0
 public Content check(Integer id, CmsUser user) {
   Content content = findById(id);
   // 执行监听器
   List<Map<String, Object>> mapList = preChange(content);
   ContentCheck check = content.getContentCheck();
   byte userStep = user.getCheckStep(content.getSite().getId());
   byte contentStep = check.getCheckStep();
   byte finalStep = content.getChannel().getFinalStepExtends();
   // 用户审核级别小于当前审核级别,则不能审核
   if (userStep < contentStep) {
     return content;
   }
   check.setRejected(false);
   // 上级审核,清除退回意见。自我审核不清除退回意见。
   if (userStep > contentStep) {
     check.setCheckOpinion(null);
   }
   check.setCheckStep(userStep);
   // 终审
   if (userStep >= finalStep) {
     content.setStatus(ContentCheck.CHECKED);
     // 终审,清除退回意见
     check.setCheckOpinion(null);
     // 终审,设置审核者
     check.setReviewer(user);
     check.setCheckDate(Calendar.getInstance().getTime());
   }
   // 执行监听器
   afterChange(content, mapList);
   return content;
 }
コード例 #2
0
  public Content reject(Integer id, CmsUser user, Byte step, String opinion) {
    Content content = findById(id);
    Integer siteId = content.getSite().getId();
    byte userStep = user.getCheckStep(siteId);
    byte contentStep = content.getCheckStep();
    // 用户审核级别小于当前审核级别,则不能退回
    if (userStep < contentStep) {
      return content;
    }
    // 执行监听器
    List<Map<String, Object>> mapList = preChange(content);
    ContentCheck check = content.getContentCheck();
    if (!StringUtils.isBlank(opinion)) {
      check.setCheckOpinion(opinion);
    }
    check.setRejected(true);
    // 退回稿件一律为未终审
    content.setStatus(ContentCheck.CHECKING);

    if (step != null) {
      // 指定退回级别,不能大于自身级别
      if (step < userStep) {
        check.setCheckStep(step);
      } else {
        check.setCheckStep(userStep);
      }
    } else {
      // 未指定退回级别
      if (contentStep < userStep) {
        // 文档级别小于用户级别,为审核时退回,文档审核级别不修改。
      } else if (contentStep == userStep) {
        // 文档级别等于用户级别,为退回时退回,文档审核级别减一级。
        check.setCheckStep((byte) (check.getCheckStep() - 1));
      }
    }
    // 执行监听器
    afterChange(content, mapList);
    return content;
  }
コード例 #3
0
 public Content save(
     Content bean,
     ContentExt ext,
     ContentTxt txt,
     Integer[] channelIds,
     Integer[] topicIds,
     Integer[] viewGroupIds,
     String[] tagArr,
     String[] attachmentPaths,
     String[] attachmentNames,
     String[] attachmentFilenames,
     String[] picPaths,
     String[] picDescs,
     Integer channelId,
     Integer typeId,
     Boolean draft,
     CmsUser user,
     boolean forMember) {
   bean.setChannel(channelMng.findById(channelId));
   bean.setType(contentTypeMng.findById(typeId));
   bean.setUser(user);
   Byte userStep;
   if (forMember) {
     // 会员的审核级别按0处理
     userStep = 0;
   } else {
     CmsSite site = bean.getSite();
     userStep = user.getCheckStep(site.getId());
   }
   if (draft != null && draft) {
     bean.setStatus(ContentCheck.DRAFT);
   } else {
     if (userStep >= bean.getChannel().getFinalStepExtends()) {
       bean.setStatus(ContentCheck.CHECKED);
     } else {
       bean.setStatus(ContentCheck.CHECKING);
     }
   }
   // 是否有标题图
   bean.setHasTitleImg(!StringUtils.isBlank(ext.getTitleImg()));
   bean.init();
   // 执行监听器
   preSave(bean);
   dao.save(bean);
   contentExtMng.save(ext, bean);
   contentTxtMng.save(txt, bean);
   ContentCheck check = new ContentCheck();
   check.setCheckStep(userStep);
   contentCheckMng.save(check, bean);
   contentCountMng.save(new ContentCount(), bean);
   // 保存副栏目
   if (channelIds != null && channelIds.length > 0) {
     for (Integer cid : channelIds) {
       bean.addToChannels(channelMng.findById(cid));
     }
   }
   // 主栏目也作为副栏目一并保存,方便查询,提高效率。
   bean.addToChannels(channelMng.findById(channelId));
   // 保存专题
   if (topicIds != null && topicIds.length > 0) {
     for (Integer tid : topicIds) {
       bean.addToTopics(cmsTopicMng.findById(tid));
     }
   }
   // 保存浏览会员组
   if (viewGroupIds != null && viewGroupIds.length > 0) {
     for (Integer gid : viewGroupIds) {
       bean.addToGroups(cmsGroupMng.findById(gid));
     }
   }
   // 保存标签
   List<ContentTag> tags = contentTagMng.saveTags(tagArr);
   bean.setTags(tags);
   // 保存附件
   if (attachmentPaths != null && attachmentPaths.length > 0) {
     for (int i = 0, len = attachmentPaths.length; i < len; i++) {
       if (!StringUtils.isBlank(attachmentPaths[i])) {
         bean.addToAttachmemts(attachmentPaths[i], attachmentNames[i], attachmentFilenames[i]);
       }
     }
   }
   // 保存图片集
   if (picPaths != null && picPaths.length > 0) {
     for (int i = 0, len = picPaths.length; i < len; i++) {
       if (!StringUtils.isBlank(picPaths[i])) {
         bean.addToPictures(picPaths[i], picDescs[i]);
       }
     }
   }
   // 执行监听器
   afterSave(bean);
   return bean;
 }