修改文章列表的搜索参数

This commit is contained in:
TinyAnts 2023-01-10 09:54:00 +08:00
parent 712538213b
commit ae398bf417
4 changed files with 33 additions and 12 deletions

View File

@ -48,10 +48,9 @@ public class ArticleController {
*/
@GetMapping("/list")
public AjaxResult<PageResult<ArticleListedVo>> list(@Validated PageValidate pageValidate,
@Validated ArticleSearchValidate searchValidate,
@RequestParam(value = "cid", defaultValue = "0") Integer cid) {
@Validated ArticleSearchValidate searchValidate) {
Integer userId = LikeFrontThreadLocal.getUserId();
PageResult<ArticleListedVo> list = iArticleService.list(pageValidate, cid, userId);
PageResult<ArticleListedVo> list = iArticleService.list(userId, pageValidate, searchValidate);
return AjaxResult.success(list);
}

View File

@ -1,6 +1,7 @@
package com.mdd.front.service;
import com.mdd.common.core.PageResult;
import com.mdd.front.validate.ArticleSearchValidate;
import com.mdd.front.validate.commons.PageValidate;
import com.mdd.front.vo.article.ArticleCateVo;
import com.mdd.front.vo.article.ArticleCollectVo;
@ -26,12 +27,12 @@ public interface IArticleService {
* 文章分类
*
* @author fzr
* @param pageValidate 分页参数
* @param cid 分类ID
* @param userId 用户ID
* @param pageValidate 分页参数
* @param searchValidate 搜索参数
* @return PageResult<ArticleListVo>
*/
PageResult<ArticleListedVo> list(PageValidate pageValidate, Integer cid, Integer userId);
PageResult<ArticleListedVo> list(Integer userId, PageValidate pageValidate, ArticleSearchValidate searchValidate);
/**
* 文章详情

View File

@ -17,6 +17,7 @@ import com.mdd.common.util.StringUtils;
import com.mdd.common.util.TimeUtils;
import com.mdd.common.util.UrlUtils;
import com.mdd.front.service.IArticleService;
import com.mdd.front.validate.ArticleSearchValidate;
import com.mdd.front.validate.commons.PageValidate;
import com.mdd.front.vo.article.ArticleCateVo;
import com.mdd.front.vo.article.ArticleCollectVo;
@ -74,13 +75,13 @@ public class ArticleServiceImpl implements IArticleService {
* 文章列表
*
* @author fzr
* @param pageValidate 分页参数
* @param cid 分类ID
* @param userId 用户ID
* @param pageValidate 分页参数
* @param searchValidate 搜索参数
* @return PageResult<ArticleListVo>
*/
@Override
public PageResult<ArticleListedVo> list(PageValidate pageValidate, Integer cid, Integer userId) {
public PageResult<ArticleListedVo> list( Integer userId, PageValidate pageValidate, ArticleSearchValidate searchValidate) {
Integer pageNo = pageValidate.getPageNo();
Integer pageSize = pageValidate.getPageSize();
@ -88,9 +89,23 @@ public class ArticleServiceImpl implements IArticleService {
queryWrapper.select("id,title,image,intro,visit,create_time");
queryWrapper.eq("is_delete", 0);
queryWrapper.eq("is_show", 1);
queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
if (cid > 0) {
queryWrapper.eq("cid", cid);
articleMapper.setSearch(queryWrapper, searchValidate, new String[]{
"=:cid:int",
"like:keyword@title:str"
});
if (StringUtils.isNotNull(searchValidate.getSort())) {
switch (searchValidate.getSort()) {
case "hot": // 最热
queryWrapper.orderByDesc(Arrays.asList("visit", "id"));
break;
case "new": // 最新
queryWrapper.orderByDesc("id");
break;
default: // 默认
queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
}
}
IPage<Article> iPage = articleMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);

View File

@ -1,6 +1,8 @@
package com.mdd.front.validate;
import com.mdd.common.validator.annotation.StringContains;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
@ -12,8 +14,12 @@ public class ArticleSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
private Integer cid;
@Length(max = 100, message = "关键词过长了")
private String keyword;
@StringContains(values = {"hot", "new"})
private String sort;
}