Package com.jeecms.cms.manager.main.impl

Source Code of com.jeecms.cms.manager.main.impl.ContentMngImpl

package com.jeecms.cms.manager.main.impl;

import static com.jeecms.cms.entity.main.ContentCheck.DRAFT;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;

import com.jeecms.cms.dao.main.ContentDao;
import com.jeecms.cms.entity.assist.CmsFile;
import com.jeecms.cms.entity.main.Channel;
import com.jeecms.cms.entity.main.CmsGroup;
import com.jeecms.cms.entity.main.CmsSite;
import com.jeecms.cms.entity.main.CmsTopic;
import com.jeecms.cms.entity.main.CmsUser;
import com.jeecms.cms.entity.main.CmsUserSite;
import com.jeecms.cms.entity.main.Content;
import com.jeecms.cms.entity.main.ContentCheck;
import com.jeecms.cms.entity.main.ContentCount;
import com.jeecms.cms.entity.main.ContentExt;
import com.jeecms.cms.entity.main.ContentTag;
import com.jeecms.cms.entity.main.ContentTxt;
import com.jeecms.cms.entity.main.Channel.AfterCheckEnum;
import com.jeecms.cms.entity.main.Content.ContentStatus;
import com.jeecms.cms.manager.assist.CmsCommentMng;
import com.jeecms.cms.manager.assist.CmsFileMng;
import com.jeecms.cms.manager.main.ChannelMng;
import com.jeecms.cms.manager.main.CmsGroupMng;
import com.jeecms.cms.manager.main.CmsTopicMng;
import com.jeecms.cms.manager.main.CmsUserMng;
import com.jeecms.cms.manager.main.ContentCheckMng;
import com.jeecms.cms.manager.main.ContentCountMng;
import com.jeecms.cms.manager.main.ContentExtMng;
import com.jeecms.cms.manager.main.ContentMng;
import com.jeecms.cms.manager.main.ContentTagMng;
import com.jeecms.cms.manager.main.ContentTxtMng;
import com.jeecms.cms.manager.main.ContentTypeMng;
import com.jeecms.cms.service.ChannelDeleteChecker;
import com.jeecms.cms.service.ContentListener;
import com.jeecms.cms.staticpage.StaticPageSvc;
import com.jeecms.cms.staticpage.exception.ContentNotCheckedException;
import com.jeecms.cms.staticpage.exception.GeneratedZeroStaticPageException;
import com.jeecms.cms.staticpage.exception.StaticPageNotOpenException;
import com.jeecms.cms.staticpage.exception.TemplateNotFoundException;
import com.jeecms.cms.staticpage.exception.TemplateParseException;
import com.jeecms.common.hibernate3.Updater;
import com.jeecms.common.page.Pagination;

import freemarker.template.TemplateException;

@Service
@Transactional
public class ContentMngImpl implements ContentMng, ChannelDeleteChecker {
  @Transactional(readOnly = true)
  public Pagination getPageByRight(String title, Integer typeId,
      Integer inputUserId, boolean topLevel, boolean recommend,
      ContentStatus status, Byte checkStep, Integer siteId,
      Integer channelId, Integer userId, int orderBy, int pageNo,
      int pageSize) {
    CmsUser user = cmsUserMng.findById(userId);
    CmsUserSite us = user.getUserSite(siteId);
    Pagination p;
    boolean allChannel = us.getAllChannel();
    boolean selfData = user.getSelfAdmin();
    if (allChannel && selfData) {
      // 拥有所有栏目权限,只能管理自己的数据
      p = dao.getPageBySelf(title, typeId, inputUserId, topLevel,
          recommend, status, checkStep, siteId, channelId, userId,
          orderBy, pageNo, pageSize);
    } else if (allChannel && !selfData) {
      // 拥有所有栏目权限,能够管理不属于自己的数据
      p = dao.getPage(title, typeId, inputUserId, topLevel, recommend,
          status, checkStep, siteId, channelId, orderBy, pageNo,
          pageSize);
    } else {
      p = dao.getPageByRight(title, typeId, inputUserId, topLevel,
          recommend, status, checkStep, siteId, channelId, userId,
          selfData, orderBy, pageNo, pageSize);
    }
    return p;
  }

  public Pagination getPageForMember(String title, Integer channelId,
      Integer siteId, Integer memberId, int pageNo, int pageSize) {
    return dao
        .getPage(title, null, memberId, false, false,
            ContentStatus.all, null, siteId, channelId, 0, pageNo,
            pageSize);
  }

  @Transactional(readOnly = true)
  public Content getSide(Integer id, Integer siteId, Integer channelId,
      boolean next) {
    return dao.getSide(id, siteId, channelId, next, true);
  }

  @Transactional(readOnly = true)
  public List<Content> getListByIdsForTag(Integer[] ids, int orderBy) {
    if (ids.length == 1) {
      Content content = findById(ids[0]);
      List<Content> list;
      if (content != null) {
        list = new ArrayList<Content>(1);
        list.add(content);
      } else {
        list = new ArrayList<Content>(0);
      }
      return list;
    } else {
      return dao.getListByIdsForTag(ids, orderBy);
    }
  }

  @Transactional(readOnly = true)
  public Pagination getPageBySiteIdsForTag(Integer[] siteIds,
      Integer[] typeIds, Boolean titleImg, Boolean recommend,
      String title, int orderBy, int pageNo, int pageSize) {
    return dao.getPageBySiteIdsForTag(siteIds, typeIds, titleImg,
        recommend, title, orderBy, pageNo, pageSize);
  }

  @Transactional(readOnly = true)
  public List<Content> getListBySiteIdsForTag(Integer[] siteIds,
      Integer[] typeIds, Boolean titleImg, Boolean recommend,
      String title, int orderBy, Integer first, Integer count) {
    return dao.getListBySiteIdsForTag(siteIds, typeIds, titleImg,
        recommend, title, orderBy, first, count);
  }

  @Transactional(readOnly = true)
  public Pagination getPageByChannelIdsForTag(Integer[] channelIds,
      Integer[] typeIds, Boolean titleImg, Boolean recommend,
      String title, int orderBy, int option, int pageNo, int pageSize) {
    return dao.getPageByChannelIdsForTag(channelIds, typeIds, titleImg,
        recommend, title, orderBy, option, pageNo, pageSize);
  }

  @Transactional(readOnly = true)
  public List<Content> getListByChannelIdsForTag(Integer[] channelIds,
      Integer[] typeIds, Boolean titleImg, Boolean recommend,
      String title, int orderBy, int option, Integer first, Integer count) {
    return dao.getListByChannelIdsForTag(channelIds, typeIds, titleImg,
        recommend, title, orderBy, option, first, count);
  }

  @Transactional(readOnly = true)
  public Pagination getPageByChannelPathsForTag(String[] paths,
      Integer[] siteIds, Integer[] typeIds, Boolean titleImg,
      Boolean recommend, String title, int orderBy, int pageNo,
      int pageSize) {
    return dao.getPageByChannelPathsForTag(paths, siteIds, typeIds,
        titleImg, recommend, title, orderBy, pageNo, pageSize);
  }

  @Transactional(readOnly = true)
  public List<Content> getListByChannelPathsForTag(String[] paths,
      Integer[] siteIds, Integer[] typeIds, Boolean titleImg,
      Boolean recommend, String title, int orderBy, Integer first,
      Integer count) {
    return dao.getListByChannelPathsForTag(paths, siteIds, typeIds,
        titleImg, recommend, title, orderBy, first, count);
  }

  @Transactional(readOnly = true)
  public Pagination getPageByTopicIdForTag(Integer topicId,
      Integer[] siteIds, Integer[] channelIds, Integer[] typeIds,
      Boolean titleImg, Boolean recommend, String title, int orderBy,
      int pageNo, int pageSize) {
    return dao.getPageByTopicIdForTag(topicId, siteIds, channelIds,
        typeIds, titleImg, recommend, title, orderBy, pageNo, pageSize);
  }

  @Transactional(readOnly = true)
  public List<Content> getListByTopicIdForTag(Integer topicId,
      Integer[] siteIds, Integer[] channelIds, Integer[] typeIds,
      Boolean titleImg, Boolean recommend, String title, int orderBy,
      Integer first, Integer count) {
    return dao.getListByTopicIdForTag(topicId, siteIds, channelIds,
        typeIds, titleImg, recommend, title, orderBy, first, count);
  }

  @Transactional(readOnly = true)
  public Pagination getPageByTagIdsForTag(Integer[] tagIds,
      Integer[] siteIds, Integer[] channelIds, Integer[] typeIds,
      Integer excludeId, Boolean titleImg, Boolean recommend,
      String title, int orderBy, int pageNo, int pageSize) {
    return dao.getPageByTagIdsForTag(tagIds, siteIds, channelIds, typeIds,
        excludeId, titleImg, recommend, title, orderBy, pageNo,
        pageSize);
  }

  @Transactional(readOnly = true)
  public List<Content> getListByTagIdsForTag(Integer[] tagIds,
      Integer[] siteIds, Integer[] channelIds, Integer[] typeIds,
      Integer excludeId, Boolean titleImg, Boolean recommend,
      String title, int orderBy, Integer first, Integer count) {
    return dao.getListByTagIdsForTag(tagIds, siteIds, channelIds, typeIds,
        excludeId, titleImg, recommend, title, orderBy, first, count);
  }

  @Transactional(readOnly = true)
  public Content findById(Integer id) {
    Content entity = dao.findById(id);
    return entity;
  }

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

  public Content update(Content bean, ContentExt ext, ContentTxt txt,
      String[] tagArr, Integer[] channelIds, Integer[] topicIds,
      Integer[] viewGroupIds, String[] attachmentPaths,
      String[] attachmentNames, String[] attachmentFilenames,
      String[] picPaths, String[] picDescs, Map<String, String> attr,
      Integer channelId, Integer typeId, Boolean draft, CmsUser user,
      boolean forMember) {
    Content entity = findById(bean.getId());
    // 执行监听器
    List<Map<String, Object>> mapList = preChange(entity);
    // 更新主表
    Updater<Content> updater = new Updater<Content>(bean);
    bean = dao.updateByUpdater(updater);
    // 审核更新处理,如果站点设置为审核退回,且当前文章审核级别大于管理员审核级别,则将文章审核级别修改成管理员的审核级别。
    Byte userStep;
    if (forMember) {
      // 会员的审核级别按0处理
      userStep = 0;
    } else {
      CmsSite site = bean.getSite();
      userStep = user.getCheckStep(site.getId());
    }
    AfterCheckEnum after = bean.getChannel().getAfterCheckEnum();
    if (after == AfterCheckEnum.BACK_UPDATE
        && bean.getCheckStep() > userStep) {
      bean.getContentCheck().setCheckStep(userStep);
      if (bean.getCheckStep() >= bean.getChannel().getFinalStepExtends()) {
        bean.setStatus(ContentCheck.CHECKED);
      } else {
        bean.setStatus(ContentCheck.CHECKING);
      }
    }
    // 草稿
    if (draft != null) {
      if (draft) {
        bean.setStatus(DRAFT);
      } else {
        if (bean.getStatus() == DRAFT) {
          if (bean.getCheckStep() >= bean.getChannel()
              .getFinalStepExtends()) {
            bean.setStatus(ContentCheck.CHECKED);
          } else {
            bean.setStatus(ContentCheck.CHECKING);
          }
        }
      }
    }
    // 是否有标题图
    bean.setHasTitleImg(!StringUtils.isBlank(ext.getTitleImg()));
    // 更新栏目
    if (channelId != null) {
      bean.setChannel(channelMng.findById(channelId));
    }
    // 更新类型
    if (typeId != null) {
      bean.setType(contentTypeMng.findById(typeId));
    }
    // 更新扩展表
    contentExtMng.update(ext);
    // 更新文本表
    contentTxtMng.update(txt, bean);
    // 更新属性表
    if (attr != null) {
      Map<String, String> attrOrig = bean.getAttr();
      attrOrig.clear();
      attrOrig.putAll(attr);
    }
    // 更新副栏目表
    Set<Channel> channels = bean.getChannels();
    channels.clear();
    if (channelIds != null && channelIds.length > 0) {
      for (Integer cid : channelIds) {
        channels.add(channelMng.findById(cid));
      }
    }
    channels.add(bean.getChannel());
    // 更新专题表
    Set<CmsTopic> topics = bean.getTopics();
    topics.clear();
    if (topicIds != null && topicIds.length > 0) {
      for (Integer tid : topicIds) {
        topics.add(cmsTopicMng.findById(tid));
      }
    }
    // 更新浏览会员组
    Set<CmsGroup> groups = bean.getViewGroups();
    groups.clear();
    if (viewGroupIds != null && viewGroupIds.length > 0) {
      for (Integer gid : viewGroupIds) {
        groups.add(cmsGroupMng.findById(gid));
      }
    }
    // 更新标签
    contentTagMng.updateTags(bean.getTags(), tagArr);
    // 更新附件
    bean.getAttachments().clear();
    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]);
        }
      }
    }
    // 更新图片集
    bean.getPictures().clear();
    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]);
        }
      }
    }
    // 执行监听器
    afterChange(bean, mapList);
    return bean;
  }

  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[] check(Integer[] ids, CmsUser user) {
    Content[] beans = new Content[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = check(ids[i], user);
    }
    return beans;
  }

  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[] reject(Integer[] ids, CmsUser user, Byte step,
      String opinion) {
    Content[] beans = new Content[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = reject(ids[i], user, step, opinion);
    }
    return beans;
  }

  public Content cycle(Integer id) {
    Content content = findById(id);
    // 执行监听器
    List<Map<String, Object>> mapList = preChange(content);
    content.setStatus(ContentCheck.RECYCLE);
    // 执行监听器
    afterChange(content, mapList);
    return content;
  }

  public Content[] cycle(Integer[] ids) {
    Content[] beans = new Content[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = cycle(ids[i]);
    }
    return beans;
  }

  public Content recycle(Integer id) {
    Content content = findById(id);
    // 执行监听器
    List<Map<String, Object>> mapList = preChange(content);
    byte contentStep = content.getCheckStep();
    byte finalStep = content.getChannel().getFinalStepExtends();
    if (contentStep >= finalStep && !content.getRejected()) {
      content.setStatus(ContentCheck.CHECKED);
    } else {
      content.setStatus(ContentCheck.CHECKING);
    }
    // 执行监听器
    afterChange(content, mapList);
    return content;
  }

  public Content[] recycle(Integer[] ids) {
    Content[] beans = new Content[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = recycle(ids[i]);
    }
    return beans;
  }

  public Content deleteById(Integer id) {
    Content bean = findById(id);
    // 执行监听器
    preDelete(bean);
    // 移除tag
    contentTagMng.removeTags(bean.getTags());
    // 删除评论
    cmsCommentMng.deleteByContentId(id);
    bean.clear();
    bean = dao.deleteById(id);
    // 执行监听器
    afterDelete(bean);
    return bean;
  }

  public Content[] deleteByIds(Integer[] ids) {
    Content[] beans = new Content[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = deleteById(ids[i]);
    }
    return beans;
  }

  public Content[] contentStatic(Integer[] ids)
      throws TemplateNotFoundException, TemplateParseException,
      GeneratedZeroStaticPageException, StaticPageNotOpenException, ContentNotCheckedException {
    int count = 0;
    List<Content> list = new ArrayList<Content>();
    for (int i = 0, len = ids.length; i < len; i++) {
      Content content = findById(ids[i]);
      try {
        if (!content.getChannel().getStaticContent()) {
          throw new StaticPageNotOpenException(
              "content.staticNotOpen", count, content.getTitle());
        }
        if(!content.isChecked()){
          throw new ContentNotCheckedException("content.notChecked", count, content.getTitle());
        }
        if (staticPageSvc.content(content)) {
          list.add(content);
          count++;
        }
      } catch (IOException e) {
        throw new TemplateNotFoundException(
            "content.tplContentNotFound", count, content.getTitle());
      } catch (TemplateException e) {
        throw new TemplateParseException("content.tplContentException",
            count, content.getTitle());
      }
    }
    if (count == 0) {
      throw new GeneratedZeroStaticPageException(
          "content.staticGenerated");
    }
    Content[] beans = new Content[count];
    return list.toArray(beans);
  }
 
  public Pagination getPageForCollection(Integer siteId, Integer memberId, int pageNo, int pageSize){
    return dao.getPageForCollection(siteId,memberId,pageNo,pageSize);
  }
 
  public void updateFileByContent(Content bean,Boolean valid){
    Set<CmsFile>files;
    Iterator<CmsFile>it;
    CmsFile tempFile;
    //处理附件
    files=bean.getFiles();
    it=files.iterator();
    while(it.hasNext()){
      tempFile=it.next();
      tempFile.setFileIsvalid(valid);
      fileMng.update(tempFile);
    }
  }

  public String checkForChannelDelete(Integer channelId) {
    int count = dao.countByChannelId(channelId);
    if (count > 0) {
      return "content.error.cannotDeleteChannel";
    } else {
      return null;
    }
  }

  private void preSave(Content content) {
    if (listenerList != null) {
      for (ContentListener listener : listenerList) {
        listener.preSave(content);
      }
    }
  }

  private void afterSave(Content content) {
    if (listenerList != null) {
      for (ContentListener listener : listenerList) {
        listener.afterSave(content);
      }
    }
  }

  private List<Map<String, Object>> preChange(Content content) {
    if (listenerList != null) {
      int len = listenerList.size();
      List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(
          len);
      for (ContentListener listener : listenerList) {
        list.add(listener.preChange(content));
      }
      return list;
    } else {
      return null;
    }
  }

  private void afterChange(Content content, List<Map<String, Object>> mapList) {
    if (listenerList != null) {
      Assert.notNull(mapList);
      Assert.isTrue(mapList.size() == listenerList.size());
      int len = listenerList.size();
      ContentListener listener;
      for (int i = 0; i < len; i++) {
        listener = listenerList.get(i);
        listener.afterChange(content, mapList.get(i));
      }
    }
  }

  private void preDelete(Content content) {
    if (listenerList != null) {
      for (ContentListener listener : listenerList) {
        listener.preDelete(content);
      }
    }
  }

  private void afterDelete(Content content) {
    if (listenerList != null) {
      for (ContentListener listener : listenerList) {
        listener.afterDelete(content);
      }
    }
  }

  private List<ContentListener> listenerList;

  public void setListenerList(List<ContentListener> listenerList) {
    this.listenerList = listenerList;
  }

  private ChannelMng channelMng;
  private ContentExtMng contentExtMng;
  private ContentTxtMng contentTxtMng;
  private ContentTypeMng contentTypeMng;
  private ContentCountMng contentCountMng;
  private ContentCheckMng contentCheckMng;
  private ContentTagMng contentTagMng;
  private CmsGroupMng cmsGroupMng;
  private CmsUserMng cmsUserMng;
  private CmsTopicMng cmsTopicMng;
  private CmsCommentMng cmsCommentMng;
  private ContentDao dao;
  private StaticPageSvc staticPageSvc;
  private CmsFileMng fileMng;

  @Autowired
  public void setChannelMng(ChannelMng channelMng) {
    this.channelMng = channelMng;
  }

  @Autowired
  public void setContentTypeMng(ContentTypeMng contentTypeMng) {
    this.contentTypeMng = contentTypeMng;
  }

  @Autowired
  public void setContentCountMng(ContentCountMng contentCountMng) {
    this.contentCountMng = contentCountMng;
  }

  @Autowired
  public void setContentExtMng(ContentExtMng contentExtMng) {
    this.contentExtMng = contentExtMng;
  }

  @Autowired
  public void setContentTxtMng(ContentTxtMng contentTxtMng) {
    this.contentTxtMng = contentTxtMng;
  }

  @Autowired
  public void setContentCheckMng(ContentCheckMng contentCheckMng) {
    this.contentCheckMng = contentCheckMng;
  }

  @Autowired
  public void setCmsTopicMng(CmsTopicMng cmsTopicMng) {
    this.cmsTopicMng = cmsTopicMng;
  }

  @Autowired
  public void setContentTagMng(ContentTagMng contentTagMng) {
    this.contentTagMng = contentTagMng;
  }

  @Autowired
  public void setCmsGroupMng(CmsGroupMng cmsGroupMng) {
    this.cmsGroupMng = cmsGroupMng;
  }

  @Autowired
  public void setCmsUserMng(CmsUserMng cmsUserMng) {
    this.cmsUserMng = cmsUserMng;
  }

  @Autowired
  public void setCmsCommentMng(CmsCommentMng cmsCommentMng) {
    this.cmsCommentMng = cmsCommentMng;
  }
 
  @Autowired
  public void setFileMng(CmsFileMng fileMng) {
    this.fileMng = fileMng;
  }

  @Autowired
  public void setDao(ContentDao dao) {
    this.dao = dao;
  }

  @Autowired
  public void setStaticPageSvc(StaticPageSvc staticPageSvc) {
    this.staticPageSvc = staticPageSvc;
  }
}
TOP

Related Classes of com.jeecms.cms.manager.main.impl.ContentMngImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.