本次工作总结
- 完成新闻相关的后端功能
包括:分页返回所有新闻、返回新闻总页数、返回主页展示所需部分新闻
相关业务实现
分页返回所有新闻
作为新闻资源页面展示的数据支持,需要根据前端传过来的页码,返回响应页数据。
Controller层:
所有新闻:
@PostMapping("/newslist")
public Result allnews(int pageNum){
PageParams pageParams = new PageParams(pageNum);
List<News> newsList = newsService.listNewsPage(pageParams);
return Result.success(newsList);
}
总页数:
@PostMapping("/newspageNum")
public Result newspageNum(){
Integer newsPageNum = newsService.getAllNews().size();
if(newsPageNum % 20 == 0){
return Result.success(newsPageNum / 20);
}else {
return Result.success((newsPageNum / 20) + 1);
}
}
这里根据前端传过来的pageNum来返回后端数据
Service层:
@Override
public List<News> listNewsPage(PageParams pageParams) {
List<News> newsList = newsMapper.listPaperByParams((pageParams.getPageNum()-1)*pageParams.getPageSize(), pageParams.getPageSize());
int size = newsList.size();
int count=0;
int pageSize = pageParams.getPageSize();
if(size%pageSize!=0){
count=pageSize-size%pageSize;
}
for(int i=0;i<count;i++){
newsList.add(new News());
}
return newsList;
}
mapper层:
<select id="listPaperByParams" resultType="com.sanelysong.riscv.pojo.News">
SELECT *
FROM t_news
ORDER BY time desc
limit #{pageStart},#{pageSize}
</select>
Postman测试效果:
主页展示所需
实现比较简单的,主要是查询语句的编写,返回最新的几个新闻
Controller
@PostMapping("/somenews")
public Result somenews(){
List<News> list = newsService.getNewNews(1);
return Result.success(list);
}
Service
@Override
public List<News> getNewNews(int num) {
return newsMapper.getSomeNews();
}
mapper
<select id="getSomeNews" resultType="com.sanelysong.riscv.pojo.News">
SELECT *
FROM t_news
ORDER BY time DESC
LIMIT 7
</select>
Postman测试效果
本次工作总结
这次完成了新闻资源后端功能的实现。
下个博客可以分享一下Gitee的使用和Vue前端项目的部署。