开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情
后台管理新增图书开发
1.BookService新增方法
public Book createBook(Book book);
2.BookServiceImpl实现方法
@Override
public Book createBook(Book book) {
bookMapper.insert(book);
return book;
}
3.引入依赖,用来处理富文本数据
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
发布到lib
4.控制器组装数据
@PostMapping("/create")
@ResponseBody
public Map createBook(Book book){
Map result = new HashMap<>();
try {
book.setEvaluationQuantity(0L);
book.setEvaluationScore(0f);
Document doc = Jsoup.parse(book.getDescription());
Element img = doc.select("img").first();
String cover = img.attr("src");
book.setCover(cover);
bookService.createBook(book);
result.put("code",0);
result.put("msg","success");
}catch (BusinessException ex){
ex.printStackTrace();
result.put("code",ex.getCode());
result.put("msg",ex.getMsg());
}
return result;
}
代码说明:
- Document doc = Jsoup.parse(book.getDescription()):获取图书详情数据
- Element img = doc.select("img").first():选中img标签的第一张图片
- String cover = img.attr("src"):获取图片url
5.重启项目
查看数据库数据:
图书列表接口开发
1.图书列表控制器
@GetMapping("/list")
@ResponseBody
public Map list(Integer page, Integer limit) {
Map result = new HashMap<>();
if (page == null) {
page = 1;
}
if (limit == null) {
limit = 10;
}
IPage<Book> pageObject = bookService.paging(null, null, page, limit);
result.put("code", 0);
result.put("msg", "success");
result.put("data", pageObject.getRecords());
result.put("count", pageObject.getTotal());
return result;
}
代码说明:
- page == null:对参数进行判断,如果传递的参数为null,我们则把pag设置成1
- IPage<Book> pageObject bookService.paging(null, null, page, limit):分页请求数据,前面两个参数为null,是因为我们不需要对分类和排序进行查询
- pageObject.getRecords():图书列表,赋值给data字段
- pageObject.getTotal():把总记录数赋值给cout,前段可以计算出需要分页的数量