修改文章列表的搜索参数

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") @GetMapping("/list")
public AjaxResult<PageResult<ArticleListedVo>> list(@Validated PageValidate pageValidate, public AjaxResult<PageResult<ArticleListedVo>> list(@Validated PageValidate pageValidate,
@Validated ArticleSearchValidate searchValidate, @Validated ArticleSearchValidate searchValidate) {
@RequestParam(value = "cid", defaultValue = "0") Integer cid) {
Integer userId = LikeFrontThreadLocal.getUserId(); Integer userId = LikeFrontThreadLocal.getUserId();
PageResult<ArticleListedVo> list = iArticleService.list(pageValidate, cid, userId); PageResult<ArticleListedVo> list = iArticleService.list(userId, pageValidate, searchValidate);
return AjaxResult.success(list); return AjaxResult.success(list);
} }

View File

@ -1,6 +1,7 @@
package com.mdd.front.service; package com.mdd.front.service;
import com.mdd.common.core.PageResult; import com.mdd.common.core.PageResult;
import com.mdd.front.validate.ArticleSearchValidate;
import com.mdd.front.validate.commons.PageValidate; import com.mdd.front.validate.commons.PageValidate;
import com.mdd.front.vo.article.ArticleCateVo; import com.mdd.front.vo.article.ArticleCateVo;
import com.mdd.front.vo.article.ArticleCollectVo; import com.mdd.front.vo.article.ArticleCollectVo;
@ -26,12 +27,12 @@ public interface IArticleService {
* 文章分类 * 文章分类
* *
* @author fzr * @author fzr
* @param pageValidate 分页参数
* @param cid 分类ID
* @param userId 用户ID * @param userId 用户ID
* @param pageValidate 分页参数
* @param searchValidate 搜索参数
* @return PageResult<ArticleListVo> * @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.TimeUtils;
import com.mdd.common.util.UrlUtils; import com.mdd.common.util.UrlUtils;
import com.mdd.front.service.IArticleService; import com.mdd.front.service.IArticleService;
import com.mdd.front.validate.ArticleSearchValidate;
import com.mdd.front.validate.commons.PageValidate; import com.mdd.front.validate.commons.PageValidate;
import com.mdd.front.vo.article.ArticleCateVo; import com.mdd.front.vo.article.ArticleCateVo;
import com.mdd.front.vo.article.ArticleCollectVo; import com.mdd.front.vo.article.ArticleCollectVo;
@ -74,13 +75,13 @@ public class ArticleServiceImpl implements IArticleService {
* 文章列表 * 文章列表
* *
* @author fzr * @author fzr
* @param pageValidate 分页参数
* @param cid 分类ID
* @param userId 用户ID * @param userId 用户ID
* @param pageValidate 分页参数
* @param searchValidate 搜索参数
* @return PageResult<ArticleListVo> * @return PageResult<ArticleListVo>
*/ */
@Override @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 pageNo = pageValidate.getPageNo();
Integer pageSize = pageValidate.getPageSize(); Integer pageSize = pageValidate.getPageSize();
@ -88,9 +89,23 @@ public class ArticleServiceImpl implements IArticleService {
queryWrapper.select("id,title,image,intro,visit,create_time"); queryWrapper.select("id,title,image,intro,visit,create_time");
queryWrapper.eq("is_delete", 0); queryWrapper.eq("is_delete", 0);
queryWrapper.eq("is_show", 1); queryWrapper.eq("is_show", 1);
queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
if (cid > 0) { articleMapper.setSearch(queryWrapper, searchValidate, new String[]{
queryWrapper.eq("cid", cid); "=: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); IPage<Article> iPage = articleMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);

View File

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