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; }
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; }
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; }