Package com.skyline.base.service.impl

Source Code of com.skyline.base.service.impl.CommentServiceImpl

package com.skyline.base.service.impl;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.skyline.base.dao.CommentDao;
import com.skyline.base.dao.NoticeDao;
import com.skyline.base.dao.ShareDao;
import com.skyline.base.model.Comment;
import com.skyline.base.service.CommentService;
import com.skyline.base.type.CommentType;
import com.skyline.base.type.NotificationType;
import com.skyline.base.type.ResourceType;
import com.skyline.common.bean.Page;
import com.skyline.wo.dao.ResourceDao;

/**
* 评论模块的Service实现
*
* @author Jairus Chan
* @version 0.1
* */
@Service("commentService")
public class CommentServiceImpl extends BaseServiceImpl implements CommentService {
  private static final String COMMENT_SUFFIX = "comment";
  @Autowired
  private CommentDao commentDao;

  @Autowired
  private ResourceDao resourceDao;

  @Autowired
  private NoticeDao noticeDao;

  @Autowired
  private ShareDao shareDao;

  private static final Log LOGGER = LogFactory.getLog(CommentServiceImpl.class);

  public void commentResource(Long commenterId, String commenterNickname, String commenterPortrait, String content, Long ref,
      Long resourceId, String resourceName, CommentType commentType, Long ownerId) {
    String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
    commentDao.insertComment(commenterId, commenterNickname, commenterPortrait, content, ref, resourceId, resourceComment, ownerId);

    if (ref != 0) {
      commentDao.updateCommentRef(resourceId, ref, resourceComment);
    }

    try {
      if (commentType.equals(CommentType.SHARE)) {
        LOGGER.debug("评论分享:" + resourceId);
        shareDao.updateCommentNumAdd(resourceId);
      } else {
        try {
          ResourceType resourceType = ResourceType.valueOf(commentType.toString());
          if (resourceType != null) {
            resourceDao.updateCommentNumAdd(resourceType, resourceId);
          }
        } catch (Exception e) {
          LOGGER.warn("", e);
        }
      }
      NotificationType notificationType = NotificationType.valueOf(commentType.toString() + "_COMMENT");
      noticeDao.insertNotication(ownerId, commenterId, commenterNickname, resourceId, resourceName, notificationType);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public List<Comment> lsComments(Page page, Long resourceId, CommentType commentType) {
  //  long t1=System.currentTimeMillis();
    String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
    List<Comment> comments = commentDao.queryCommentByResource(resourceId, page, resourceComment);
    List<Comment> refComments = commentDao.queryRefedCommentByResource(resourceId, resourceComment);
    for (Comment comment : comments) {
      if (comment.getRef() != 0) {
        Comment cursorComment = comment;
        for (Comment refComment : refComments) {
          // TODO: 空指针判断
          if (refComment.getId()!=null&&refComment.getId().equals(cursorComment.getRef())) {
            cursorComment.setRefComment(refComment);
            if (refComment.getRefComment() != null) {
              break;
            }
            cursorComment = refComment;
          }
        }
      }
    }
  //  long t2=System.currentTimeMillis();
  //  System.out.println(t2-t1);
    return comments;
  }

  public void commentAgree(Long resourceId, Long commentId, CommentType commentType) {
    String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
    commentDao.updateCommentAgree(resourceId, commentId, resourceComment);
  }

  public void commentDisagree(Long resourceId, Long commentId, CommentType commentType) {
    String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
    commentDao.updateCommentDisagree(resourceId, commentId, resourceComment);
  }

  public void deleteComment(Long resourceId, Long commentId, CommentType commentType, Long actionerId) {
    if (actionerId != 0) {
      String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
      commentDao.deleteComment(resourceId, commentId, resourceComment, actionerId);
    }
  }
 
  public Comment getCommentById(Long commentId, CommentType commentType) {
    String resourceComment = commentType.toString().toLowerCase() + COMMENT_SUFFIX;
    return commentDao.queryCommentById(commentId, resourceComment);
  }
}
TOP

Related Classes of com.skyline.base.service.impl.CommentServiceImpl

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.