package com.lst.lc.web.service; import org.hibernate.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import com.lst.lc.dao.QueryDao; import com.lst.lc.dao.QuestionAnswerDao; import com.lst.lc.entities.Question; import com.lst.lc.entities.QuestionAnswer; import com.lst.lc.page.Page; import com.lst.lc.page.PageHandler; @Service public class QuestionPageHandler { @Autowired private PageHandler<Question> questionPageHandler; @Autowired private PageHandler<QuestionAnswer> answerPageHandler; @Autowired @Qualifier("queryDao") private QueryDao queryDao; @Autowired @Qualifier("questionAnswerDao") private QuestionAnswerDao questionAnswerDao; public Page<Question> getQuestions(int pageNum, int pageSize, int type) { // 按照回答数量排序,type=1 String hql1 = "from Question as question order by question.answerNums desc"; // 按照阅读数量排序,type=2 String hql2 = "from Question as question order by question.readNums desc"; // 按照发布时间排序,type=3 String hql3 = "from Question as question order by question.time desc"; String hql = null; if (type == 1) hql = hql1; else if (type == 2) hql = hql2; else hql = hql3; Query query = queryDao.getQuery(hql); Page<Question> page = questionPageHandler.getPage(pageNum, pageSize, Question.class, query); return page; } public Page<QuestionAnswer> getAnswers(int questionId, int pageNum, int pageSize) { String hql = "from QuestionAnswer as questionAnswer where questionAnswer.question.questionId = ?"; Query query = queryDao.getQuery(hql); query.setInteger(0, questionId); Page<QuestionAnswer> page = answerPageHandler.getPage(pageNum, pageSize, QuestionAnswer.class, query); return page; } }