feat(cms): 在CmsNavigation实体中添加文章列表关联
- 在CmsNavigation类中新增articles字段用于存储栏目文章列表 - 在CmsNavigationServiceImpl的pageRel方法中关联查询每个栏目对应的最多5篇文章 - 调用CmsArticleService获取文章列表并设置到CmsNavigation实体中 - 优化栏目分页查询,增加文章数据支持展示
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user