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.BlogCommentDao;
import com.lst.lc.entities.Blog;
import com.lst.lc.entities.BlogComment;
import com.lst.lc.page.Page;
import com.lst.lc.page.PageHandler;
@Service
public class BlogPageHandler {
@Autowired
private PageHandler<Blog> blogPageHandler;
@Autowired
private PageHandler<BlogComment> commentPageHandler;
@Autowired
@Qualifier("queryDao")
private QueryDao queryDao;
@Autowired
@Qualifier("blogCommentDao")
private BlogCommentDao blogCommentDao;
public Page<Blog> getBlogs(int pageNum, int pageSize, int type) {
// 按照回答数量排序,type=1
String hql1 = "from Blog as blog order by blog.commentNums desc";
// 按照阅读数量排序,type=2
String hql2 = "from Blog as blog order by blog.readNums desc";
// 按照发布时间排序,type=3
String hql3 = "from Blog as blog order by blog.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<Blog> page = blogPageHandler.getPage(pageNum, pageSize,
Blog.class, query);
return page;
}
public Page<BlogComment> getComments(int blogId, int pageNum,
int pageSize) {
String hql = "from BlogComment as blogComment where blogComment.blog.blogId = ?";
Query query = queryDao.getQuery(hql);
query.setInteger(0, blogId);
Page<BlogComment> page = commentPageHandler.getPage(pageNum, pageSize,
BlogComment.class, query);
return page;
}
}