/** Blog分页 */
  @Override
  @Transactional
  @SuppressWarnings({"rawtypes", "unchecked"})
  public PageConf findBlogPageList(
      int start, int limit, UserInfo userInfo, String type, Integer blogId) throws BlogException {
    try {
      String sql =
          " select temp_0.rowno from (select @rowno := @rowno + 1 as rowno , module.id as id from Blog as module "
              + " , (select @rowno := 0 ) as t_rowno ";
      // 通用查询匹配
      if (type != null) {

        // 找到blogId所在位置
        Long indexStart = 0L;
        if (type.equals("friend") && userInfo != null) {
          sql +=
              " and exists ( select friend.friend.id from Friend friend "
                  + " where friend.friend.id = module.userInfo.id and friend.userId = ? ) "
                  + " order by module.createTime desc ";
          System.out.println(sql);
          List<Object[]> countList = baseDao.findSql(sql, blogId);
          if (countList.iterator().hasNext()) {
            Object[] obj = countList.iterator().next();
            indexStart = (Long) obj[0];
          }
          System.out.println(indexStart);
        } else if (type.equals("my") && userInfo != null) {
          // 查询我自己的日志
          sql +=
              " where module.userId = ? order by module.createTime desc ) as temp_0 where temp_0.id = ? ";
          System.out.println(sql);
          List<Object[]> countList = baseDao.findSql(sql, userInfo.getId(), blogId);
          if (countList.iterator().hasNext()) {
            Object[] obj = countList.iterator().next();
            indexStart = ((Double) obj[0]).longValue();
          }
          System.out.println(indexStart);
        } else if (type.equals("all")) {
          //
          sql += " order by module.createTime desc ) as temp_0 where temp_0.id = ? ";
          System.out.println(sql);
          List<Object[]> countList = baseDao.findSql(sql, blogId);
          if (countList.iterator().hasNext()) {
            Object[] obj = countList.iterator().next();
            indexStart = ((Double) obj[0]).longValue();
          }
          System.out.println(indexStart);
        }
        // 再次进行分页查询
        // 分页是从0开始所以-1
        // 处理第一篇文章
        return findBlogPageList(indexStart.intValue() - 1, limit, userInfo, type);

      } else {
        return null;
      }
    } catch (Exception e) {
      throw new BlogException("Blog分页异常");
    }
  }
 /** Blog分页 */
 @Override
 @Transactional
 public PageConf findBlogPageList(int start, int limit, UserInfo userInfo, String type)
     throws BlogException {
   try {
     String hql =
         " select module from Blog module left join fetch module.userInfo left join fetch module.blogCategory ";
     // 通用查询匹配
     if (type != null) {
       if (type.equals("friend") && userInfo != null) {
         hql +=
             " where exists ( select friend.friend.id from Friend friend "
                 + " where friend.friend.id = module.userInfo.id and friend.userId = ? ) "
                 + " order by module.createTime desc ";
         return baseDao.findPage(start, limit, hql, userInfo.getId());
       } else if (type.equals("my") && userInfo != null) {
         // 查询我自己的日志
         hql += " where module.userInfo.id = ? order by module.createTime desc ";
         return baseDao.findPage(start, limit, hql, userInfo.getId());
       } else if (type.equals("all")) {
         //
         hql += " order by module.createTime desc ";
         return baseDao.findPage(start, limit, hql);
       } else {
         return null;
       }
     } else {
       return null;
     }
   } catch (Exception e) {
     throw new BlogException("Blog分页异常");
   }
 }
 /** Blog删除 */
 @Override
 @Transactional
 public void deleteBlogById(Integer id) throws BlogException {
   try {
     Blog blog = (Blog) baseDao.findById(Blog.class, id);
     baseDao.delete(blog);
   } catch (Exception e) {
     throw new BlogException("Blog删除异常");
   }
 }
 /** Blog按ID查询 */
 @Override
 @Transactional
 public Blog findBlogById(Integer id) throws BlogException {
   try {
     return (Blog) baseDao.findById(Blog.class, id);
   } catch (Exception e) {
     throw new BlogException("Blog按ID查询异常");
   }
 }
 /** 查询Blog全部 */
 @Override
 @Transactional
 public List<Blog> findAllBlog(Map map) throws BlogException {
   try {
     String hql = " select module from Blog module ";
     // 通用查询匹配
     Object[] values = CommonDaoUtil.commonQuery(map);
     hql += values[0].toString();
     // Object[]需要进行强制转换.
     return baseDao.find(hql, (Object[]) values[1]);
   } catch (Exception e) {
     throw new BlogException("查询Blog全部异常");
   }
 }
  /** Blog保存 */
  @Override
  @Transactional
  public void saveBlog(Blog blog) throws BlogException {
    try {
      blog.setCreateTime(new Date());
      blog.setCommentCount(0);
      blog.setReadCount(0);

      baseDao.save(blog);

      feedService.saveFeed(blog);
    } catch (Exception e) {
      throw new BlogException("Blog保存异常");
    }
  }