社交项目(十九)

82 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

后台管理新增图书开发

1.BookService新增方法

public Book createBook(Book book);

image.png

2.BookServiceImpl实现方法

image.png

@Override
public Book createBook(Book book) {
    bookMapper.insert(book);
    return book;
}

3.引入依赖,用来处理富文本数据

image.png

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.12.1</version>
</dependency>

发布到lib image.png

4.控制器组装数据

image.png

@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.重启项目

image.png 查看数据库数据: image.png

图书列表接口开发

1.图书列表控制器

image.png

@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,前段可以计算出需要分页的数量

2.重启项目

image.png