Esempio n. 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;
 }