feat(cms): 在CmsNavigation实体中添加文章列表关联

- 在CmsNavigation类中新增articles字段用于存储栏目文章列表
- 在CmsNavigationServiceImpl的pageRel方法中关联查询每个栏目对应的最多5篇文章
- 调用CmsArticleService获取文章列表并设置到CmsNavigation实体中
- 优化栏目分页查询,增加文章数据支持展示
This commit is contained in:
2026-05-06 19:39:03 +08:00
parent 8fca992e37
commit a306f53336
2 changed files with 13 additions and 0 deletions

View File

@@ -227,6 +227,10 @@ public class CmsNavigation implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String text; private String text;
@Schema(description = "栏目文章")
@TableField(exist = false)
private List<CmsArticle> articles;
public String getCategoryName() { public String getCategoryName() {
return this.title; return this.title;
} }

View File

@@ -4,9 +4,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.cms.entity.CmsArticle;
import com.gxwebsoft.cms.entity.CmsDesign; import com.gxwebsoft.cms.entity.CmsDesign;
import com.gxwebsoft.cms.entity.CmsModel; import com.gxwebsoft.cms.entity.CmsModel;
import com.gxwebsoft.cms.mapper.CmsNavigationMapper; import com.gxwebsoft.cms.mapper.CmsNavigationMapper;
import com.gxwebsoft.cms.service.CmsArticleService;
import com.gxwebsoft.cms.service.CmsDesignService; import com.gxwebsoft.cms.service.CmsDesignService;
import com.gxwebsoft.cms.service.CmsModelService; import com.gxwebsoft.cms.service.CmsModelService;
import com.gxwebsoft.cms.service.CmsNavigationService; import com.gxwebsoft.cms.service.CmsNavigationService;
@@ -38,6 +40,8 @@ public class CmsNavigationServiceImpl extends ServiceImpl<CmsNavigationMapper, C
private CmsModelService cmsModelService; private CmsModelService cmsModelService;
@Resource @Resource
private UserService userService; private UserService userService;
@Resource
private CmsArticleService cmsArticleService;
@Override @Override
public PageResult<CmsNavigation> pageRel(CmsNavigationParam param) { public PageResult<CmsNavigation> pageRel(CmsNavigationParam param) {
@@ -53,6 +57,11 @@ public class CmsNavigationServiceImpl extends ServiceImpl<CmsNavigationMapper, C
// 排序 // 排序
PageParam<CmsNavigation, CmsNavigationParam> page = new PageParam<>(); PageParam<CmsNavigation, CmsNavigationParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, position asc,navigation_id asc"); page.setDefaultOrder("sort_number asc, position asc,navigation_id asc");
list.forEach(item -> {
// 关联信息
final List<CmsArticle> articleList = cmsArticleService.list(new LambdaQueryWrapper<CmsArticle>().eq(CmsArticle::getCategoryId, item.getNavigationId()).last("limit 5"));
item.setArticles(articleList);
});
return page.sortRecords(list); return page.sortRecords(list);
} }