Package org.osforce.connect.service.knowledge.impl

Source Code of org.osforce.connect.service.knowledge.impl.AnswerServiceImpl

package org.osforce.connect.service.knowledge.impl;

import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.osforce.connect.dao.knowledge.AnswerDao;
import org.osforce.connect.dao.knowledge.QuestionDao;
import org.osforce.connect.dao.system.UserDao;
import org.osforce.connect.entity.knowledge.Answer;
import org.osforce.connect.entity.knowledge.Question;
import org.osforce.connect.entity.system.User;
import org.osforce.connect.service.knowledge.AnswerService;
import org.osforce.spring4me.dao.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
*
* @author gavin
* @since 1.0.0
* @create Mar 24, 2011 - 11:53:36 AM
*  <a href="http://www.opensourceforce.org">开源力量</a>
*/
@Service
@Transactional
public class AnswerServiceImpl implements AnswerService {

  private UserDao userDao;
  private AnswerDao answerDao;
  private QuestionDao questionDao;
 
  public AnswerServiceImpl() {
  }
 
  @Autowired
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
 
  @Autowired
  public void setAnswerDao(AnswerDao answerDao) {
    this.answerDao = answerDao;
  }
 
  @Autowired
  public void setQuestionDao(QuestionDao questionDao) {
    this.questionDao = questionDao;
  }

  public Answer getAnswer(Long answerId) {
    return answerDao.get(answerId);
  }

  public void createAnswer(Answer answer) {
    updateAnswer(answer);
  }

  public void updateAnswer(Answer answer) {
    if(answer.getEnteredId()!=null) {
      User enteredBy = userDao.get(answer.getEnteredId());
      answer.setEnteredBy(enteredBy);
    }
    if(answer.getModifiedId()!=null) {
      User modifiedBy = userDao.get(answer.getModifiedId());
      answer.setModifiedBy(modifiedBy);
    }
    if(answer.getQuestionId()!=null) {
      Question question = questionDao.get(answer.getQuestionId());
      answer.setQuestion(question);
    }
    Date now = new Date();
    answer.setModified(now);
    if(answer.getId()==null) {
      answer.setEntered(now);
      answerDao.save(answer);
    } else {
      answerDao.update(answer);
    }
  }

  public void deleteAnswer(Long answerId) {
    answerDao.delete(answerId);
  }
 
  public Page<Answer> getAnswerPage(Page<Answer> page, Long questionId) {
    return answerDao.findAnswerPage(page, questionId);
  }
 
  public Page<Answer> getAnswerPage(Page<Answer> page, Long questionId,
      String answerOrder) {
    if(StringUtils.equals("vote", answerOrder)) {
      page.desc("a.votes");
    } else {
      page.desc("a.modified");
    }
    return answerDao.findAnswerPage(page, questionId);
  }
 
}
TOP

Related Classes of org.osforce.connect.service.knowledge.impl.AnswerServiceImpl

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.