package com.yssh.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.yssh.entity.xls.XlsReport; import com.yssh.mapper.XlsReportMapper; import com.yssh.service.XlsReportService; import com.yssh.utils.DateUtils; import com.yssh.utils.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @Api(tags="Excel报告") @RestController @RequestMapping("/xlsReport") @SuppressWarnings("rawtypes") public class XlsReportController { @Resource XlsReportMapper xlsReportMapper; @Resource XlsReportService xlsReportService; private static List TYPES = new ArrayList<>(Arrays.asList("day", "week", "month")); @ApiOperationSupport(order = 1) @GetMapping("/selectByPage") @ApiOperation(value = "分页查询", notes = "分页查询") public Result selectByPage(@RequestParam(value = "type", required = false) String type, @RequestParam(value = "start", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start, @RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end, @RequestParam(value = "pageSize", required = false) Integer pageSize, @RequestParam(value = "pageIndex", required = false) Integer pageIndex) { if (null == type || !TYPES.contains(type)) return Result.error("类型只能为:day,week,month。"); if (null != start && null != end && start.getTime() > end.getTime()) { Date tmp = start; start = end; end = tmp; } String strStart = null == start ? null : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, start); String strEnd = null == end ? null : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, end); pageSize = null == pageSize || pageSize < 1 ? 10 : pageSize; pageIndex = null == pageIndex || pageIndex < 1 ? 1 : pageIndex; Integer offset = pageSize * (pageIndex - 1); List list = xlsReportMapper.selectReportByPage(type, strStart, strEnd, pageSize, offset); return Result.OK(list); } @ApiOperationSupport(order = 2) @GetMapping("/downloadById") @ApiOperation(value = "根据ID下载", notes = "根据ID下载") public void downloadById(@RequestParam(value = "id", required = true) int id, HttpServletResponse res) { xlsReportService.downloadById(id, res); } }