package com.ycl.controller.zf;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.api.CommonResult;
import com.ycl.controller.BaseController;
import com.ycl.entity.zf.VideoWarnEventsReport;
import com.ycl.service.zf.IVideowarmEventsreportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
*
* 前端控制器
*
*
* @author wl
* @since 2022-09-16
*/
@RestController
@RequestMapping("/videowarm-eventsreport")
@Api(value = "VideowarmEventsreportController",tags = "违规情况")
public class VideowarmEventsreportController extends BaseController {
@Autowired
IVideowarmEventsreportService iVideowarmEventsreportService;
@GetMapping("/search")
@ApiOperation("查询全部违规情况详情")
public CommonResult getAll(@RequestParam(required = false) String startTime,
@RequestParam(required = false) String endTime,
@RequestParam(required = false) String eventName,
@RequestParam(required = false) String eventType,
@RequestParam(required = false) String eventLocation,
@RequestParam(required = false) String eventRegion,
@RequestParam(required = false) Integer current,
@RequestParam(required = false) Integer size
) {
Page page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return CommonResult.success(iVideowarmEventsreportService.selectPageVo(page,startTime,endTime,eventName,eventType,eventLocation,eventRegion));
}
@GetMapping("/search/one")
@ApiOperation("查询违规情况详情")
public CommonResult getOne(@RequestParam Integer id) {
return CommonResult.success(iVideowarmEventsreportService.getOne(new QueryWrapper().eq("id", id)));
}
@PostMapping("/add")
@ApiOperation("添加违规情况详情")
public CommonResult add(@RequestBody VideoWarnEventsReport videoWarnEventsReport) {
return CommonResult.success(iVideowarmEventsreportService.save(videoWarnEventsReport));
}
@DeleteMapping("/delete")
@ApiOperation("删除违规情况详情")
public CommonResult remove(@RequestParam Integer id) {
return CommonResult.success(iVideowarmEventsreportService.removeById(id));
}
@PutMapping("/update")
@ApiOperation("修改违规情况详情")
public CommonResult modify(@RequestBody VideoWarnEventsReport videoWarnEventsReport) {
return CommonResult.success(iVideowarmEventsreportService.updateById(videoWarnEventsReport));
}
@PostMapping("/download")
@ApiOperation("导出")
@SneakyThrows
public void downloadExcel(@RequestParam(required = false) String startTime,
@RequestParam(required = false) String endTime,
@RequestParam(required = false) String eventName,
@RequestParam(required = false) String eventType,
@RequestParam(required = false) String eventLocation,
@RequestParam(required = false) String eventRegion,
HttpServletResponse response) {
QueryWrapper VideowarmEventsreportQueryWrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
VideowarmEventsreportQueryWrapper.between("cTime", startTime, endTime);
}
if (StringUtils.isNotBlank(eventName)) {
VideowarmEventsreportQueryWrapper.eq("eventName", eventName);
}
if (StringUtils.isNotBlank(eventType)) {
VideowarmEventsreportQueryWrapper.eq("eventType", eventType);
}
if (StringUtils.isNotBlank(eventLocation)) {
VideowarmEventsreportQueryWrapper.eq("eventLocation", eventLocation);
}
if (StringUtils.isNotBlank(eventRegion)) {
VideowarmEventsreportQueryWrapper.eq("eventRegion", eventRegion);
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + URLEncoder.encode("违规情况" + ".xlsx", "utf-8"));
EasyExcel.write(response.getOutputStream(), VideoWarnEventsReport.class).sheet("列表").doWrite(iVideowarmEventsreportService.list(VideowarmEventsreportQueryWrapper));
}
}