package com.ruoyi.web; import com.itextpdf.text.Document; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.domain.Book; import com.ruoyi.service.BookService; import com.ruoyi.web.request.BookDeleteRequest; import com.ruoyi.web.request.BookListRequest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.skywalking.apm.toolkit.trace.Tag; import org.apache.skywalking.apm.toolkit.trace.Tags; import org.apache.skywalking.apm.toolkit.trace.Trace; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.util.Arrays; import java.util.List; @Api("书籍管理") @RestController @RequestMapping("/book") public class BookController extends BaseController { @Autowired private BookService bookService; @ApiOperation("添加书籍") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/add") public R add(@Validated @RequestBody Book book) { bookService.save(book); return R.ok(); } @ApiOperation("修改书籍") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/edit") public R edit(@Validated @RequestBody Book book) { bookService.updateById(book); return R.ok(); } @ApiOperation("查询书籍列表") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/list") public TableDataInfo list(@Validated @RequestBody BookListRequest request) { startPage(request); List<Book> books = bookService.selectBookList(request.getName()); return getDataTable(books); } @ApiOperation("删除书籍") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/remove") public R remove(@Validated @RequestBody BookDeleteRequest request) { bookService.removeBatchByIds(Arrays.asList(request.getIds())); return R.ok(); } @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/listException") public TableDataInfo listException(@Validated @RequestBody BookListRequest request) { startPage(request); List<Book> books = bookService.selectBookListException(request.getName()); return getDataTable(books); } @Anonymous @ApiOperation("Download") @GetMapping(value = "/download", produces = "application/json") public void download(HttpServletResponse response) { response.setHeader("content-disposition","attachment;fileName="+"ReceiptPrinter.pdf"); try { // demo-API渲染 bookService.generateItextPdfDocument(response.getOutputStream()); // demo-模板 // bookService.generateTempPDF(response); // demo-动态表格 // bookService.testGeneratePDF(response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } } }