package com.xiaopeng.operation.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.xiaopeng.api.model.operation.XpWhitelist; import com.xiaopeng.api.model.operation.XpWhitelistOperlog; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.utils.WebUtils; import com.xiaopeng.common.core.web.domain.AjaxResult; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.operation.exportExcle.XpWhitelistExportExcel; import com.xiaopeng.operation.exportExcle.XpWhitelistLogExportExcel; import com.xiaopeng.operation.query.WhitelistLogPageListQuery; import com.xiaopeng.operation.query.WhitelistPageListQuery; import com.xiaopeng.operation.service.IXpWhitelistOperlogService; import com.xiaopeng.operation.service.IXpWhitelistService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; /** *

* 白名单操作日志 前端控制器 *

* * @author mitao * @since 2026-02-03 */ @RequestMapping("/api/v1/whitelistLog") @RestController @Api(tags = "白名单日志管理") @Slf4j public class XpWhitelistOperlogController { @Resource private IXpWhitelistOperlogService xpWhitelistOperlogService; @ApiOperation(value = "白名单日志管理分页列表",response = XpWhitelist.class) @PostMapping("/pageList") public R> pageList(@RequestBody WhitelistLogPageListQuery query) { PageInfo pageList = xpWhitelistOperlogService.pageList(query); return R.ok(pageList); } @ApiOperation(value = "白名单日志导出") @PostMapping(value = "/exportExcel") public void exportExcel(@RequestBody WhitelistLogPageListQuery query) { List list = xpWhitelistOperlogService.exportList(query); List xpWhitelistLogExportExcels = new ArrayList<>(); for (XpWhitelistOperlog xpWhitelistOperlog : list) { XpWhitelistLogExportExcel xpWhitelistExportExcel = new XpWhitelistLogExportExcel(); xpWhitelistExportExcel.setId(xpWhitelistOperlog.getId()); xpWhitelistExportExcel.setOperationAccount(xpWhitelistOperlog.getOperationAccount()); xpWhitelistExportExcel.setOperationName(xpWhitelistOperlog.getOperationName()); xpWhitelistExportExcel.setOperationContent(xpWhitelistOperlog.getOperationContent()); xpWhitelistExportExcel.setOperationIp(xpWhitelistOperlog.getOperationIp()); xpWhitelistExportExcel.setOperationType(xpWhitelistOperlog.getOperationType()); LocalDateTime createTime = xpWhitelistOperlog.getCreateTime(); // 将LocalDateTime转化为yyyy-MM-dd HH:mm:ss格式字符串 xpWhitelistExportExcel.setCreateTime(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); xpWhitelistLogExportExcels.add(xpWhitelistExportExcel); } //1.获取excel模板 Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), XpWhitelistLogExportExcel.class, xpWhitelistLogExportExcels); HttpServletResponse response = WebUtils.response(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); ServletOutputStream outputStream = null; try { String fileName = URLEncoder.encode("白名单日志列表.xls", "utf-8"); response.setHeader("Content-dispodition", "attachment;filename=" + fileName); outputStream = response.getOutputStream(); workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } finally { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }