|
@@ -1,11 +1,20 @@
|
|
|
package com.sf.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.sf.dto.req.BookSearchReqDto;
|
|
|
+import com.sf.dto.resp.BookInfoRespDto;
|
|
|
+import com.sf.dto.resp.PageRespDto;
|
|
|
import com.sf.entity.BookInfo;
|
|
|
import com.sf.mapper.BookInfoMapper;
|
|
|
import com.sf.service.IBookInfoService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 小说信息 服务实现类
|
|
@@ -19,4 +28,37 @@ import org.springframework.stereotype.Service;
|
|
|
public class BookInfoServiceImpl extends ServiceImpl<BookInfoMapper, BookInfo>
|
|
|
implements IBookInfoService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BookInfoMapper bookInfoMapper;
|
|
|
+
|
|
|
+ // 分页的本质是limit select * from book_info
|
|
|
+ @Override
|
|
|
+ public PageRespDto<BookInfoRespDto> searchBooks(BookSearchReqDto bookSearchReqDto) {
|
|
|
+ Page<BookInfo> page = new Page<>();
|
|
|
+ page.setCurrent(bookSearchReqDto.getPageNum());
|
|
|
+ page.setSize(bookSearchReqDto.getPageSize());
|
|
|
+
|
|
|
+ // 可以只使用mybatis plus来拼接
|
|
|
+// LambdaQueryWrapper<BookInfo> wrapper = new LambdaQueryWrapper<>();
|
|
|
+// if(!bookSearchReqDto.getKeyword().isBlank()){
|
|
|
+// // book_name = 'keyword'
|
|
|
+// wrapper.eq(BookInfo::getBookName,bookSearchReqDto.getKeyword());
|
|
|
+// }
|
|
|
+// if(bookSearchReqDto.getCategoryId() != null ){
|
|
|
+// // and categoryId = 'categoryId'
|
|
|
+// wrapper.eq(BookInfo::getCategoryId,bookSearchReqDto.getCategoryId());
|
|
|
+// }
|
|
|
+// bookInfoMapper.selectPage(page,wrapper);
|
|
|
+
|
|
|
+ // 还可以使用mybatis自身的sql语句来实现
|
|
|
+ List<BookInfo> bookInfos = bookInfoMapper.searchBooks(page, bookSearchReqDto);
|
|
|
+ List<BookInfoRespDto> bookInfoRespDtos = bookInfos.stream().map(bookInfo -> {
|
|
|
+ BookInfoRespDto bookInfoRespDto = new BookInfoRespDto();
|
|
|
+ BeanUtils.copyProperties(bookInfo, bookInfoRespDto);
|
|
|
+ return bookInfoRespDto;
|
|
|
+ }).toList();
|
|
|
+ PageRespDto<BookInfoRespDto> pageRespDto = PageRespDto.of(
|
|
|
+ bookSearchReqDto.getPageNum(), bookSearchReqDto.getPageSize(), 0, bookInfoRespDtos);
|
|
|
+ return pageRespDto;
|
|
|
+ }
|
|
|
}
|