ExportController.java
package org.darkroomlibrary.controller;
import org.darkroomlibrary.aop.RequireRole;
import org.darkroomlibrary.domain.type.UserRole;
import org.darkroomlibrary.web.dto.query.BookPageQuery;
import org.darkroomlibrary.web.dto.query.BorrowRecordPageQuery;
import org.darkroomlibrary.web.dto.query.UserPageQuery;
import org.darkroomlibrary.service.ExportService;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
/**
* 数据导出控制器
*/
@RestController
@RequestMapping("/export")
public class ExportController {
@Resource
private ExportService exportService;
/**
* 导出借阅记录
*/
@RequireRole({UserRole.ADMIN, UserRole.SUPER_ADMIN})
@GetMapping("/borrowRecords")
public void exportBorrowRecords(HttpServletResponse response,
@RequestParam(required = false) Integer userId,
@RequestParam(required = false) Integer bookId,
@RequestParam(required = false) Boolean status) {
BorrowRecordPageQuery dto = new BorrowRecordPageQuery();
dto.setUserId(userId);
dto.setBookId(bookId);
dto.setStatus(status);
exportService.exportBorrowRecords(response, dto);
}
/**
* 导出图书信息
*/
@RequireRole({UserRole.ADMIN, UserRole.SUPER_ADMIN})
@GetMapping("/books")
public void exportBooks(HttpServletResponse response,
@RequestParam(required = false) String name,
@RequestParam(required = false) String category) {
BookPageQuery dto = new BookPageQuery();
dto.setName(name);
dto.setCategory(category);
exportService.exportBooks(response, dto);
}
/**
* 导出用户信息
*/
@RequireRole({UserRole.ADMIN, UserRole.SUPER_ADMIN})
@GetMapping("/users")
public void exportUsers(HttpServletResponse response) {
exportService.exportUsers(response, null);
}
/**
* 导出逾期记录
*/
@RequireRole({UserRole.ADMIN, UserRole.SUPER_ADMIN})
@GetMapping("/overdueRecords")
public void exportOverdueRecords(HttpServletResponse response) {
exportService.exportOverdueRecords(response);
}
}