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