package com.zheng.cms.web.controller;
import com.zheng.cms.dao.model.CmsArticle;
import com.zheng.cms.dao.model.CmsArticleExample;
import com.zheng.cms.dao.model.CmsTag;
import com.zheng.cms.dao.model.CmsTagExample;
import com.zheng.cms.rpc.api.CmsArticleService;
import com.zheng.cms.rpc.api.CmsTagService;
import com.zheng.common.base.BaseController;
import com.zheng.common.util.Paginator;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 搜索控制器
* Created by shuzheng on 2017/3/26.
*/
@Controller
@RequestMapping(value = "/search")
public class SearchController extends BaseController {
private static Logger _log = LoggerFactory.getLogger(SearchController.class);
@Autowired
private CmsArticleService cmsArticleService;
@RequestMapping(value = "/{keyword}", method = RequestMethod.GET)
public String index(@PathVariable("keyword") String keyword,
@RequestParam(required = false, defaultValue = "1", value = "page") int page,
@RequestParam(required = false, defaultValue = "orders", value = "sort") String sort,
@RequestParam(required = false, defaultValue = "desc", value = "order") String order,
HttpServletRequest request,
Model model) {
// 该关键字文章列表
int rows = 10;
CmsArticleExample cmsArticleExample = new CmsArticleExample();
cmsArticleExample.createCriteria()
.andStatusEqualTo((byte) 1)
.andTitleLike(keyword);
if (!StringUtils.isBlank(sort) && !StringUtils.isBlank(order)) {
cmsArticleExample.setOrderByClause(sort + " " + order);
}
List<CmsArticle> articles = cmsArticleService.selectByExampleForOffsetPage(cmsArticleExample, (page - 1) * rows, rows);
model.addAttribute("articles", articles);
// 文章总数
long total = cmsArticleService.countByExample(cmsArticleExample);
// 分页
Paginator paginator = new Paginator(total, page, rows, request);
model.addAttribute("paginator", paginator);
return thymeleaf("/search/index");
}
}