public String exportUsersCSV(QueryUsersRequestVo queryUsersRequestVo, HttpServletResponse response) {
// 获取数据
Page<JfBusinessInfo> jfBusinessInfoPage = PageHelper.startPage(queryUsersRequestVO.getPage(), queryUsersRequestVO.getSize())
.doSelectPage(() -> jfBusinessInfoMapper.queryUsersPage(queryUsersRequestVO));
// 将查询结果转换为需要导出的实体类列表
List<UsersModelDO> usersModelDOList = BeanUtil.copyToList(jfBusinessInfoPage.getResult(), UsersModelDO.class);
// 设置导出文件的表头信息
final String header = "商户代码|商户名称|商户性质0-线下,1-线上|签约地区|签约机构|起始时间|截至时间|商户地址|商户联系人|联系";
// 生成导出文件的文件名
String fileName = ".".concat(File.separator).concat(ExCsvUtil.getUniqueKey()).concat(".csv");
try {
File file = new File(fileName);
// 写入数据到生成的CSV文件中
if (ExCsvUtil.writeCsv(usersModelDOList, UsersModelDO.class, file, header) == 1) {
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment; filename=model.csv");
response.setContentType("application/csv;charset=UTF-8");
InputStream inputStream = new FileInputStream(file);
int len;
byte[] bytes = new byte[1024 * 8];
// 将数据流写入Response输出流中,用于下载
while ((len = inputStream.read(bytes)) != -1) {
response.getOutputStream().write(bytes, 0, len);
}
}
inputStream.close();
file.delete();
return "导出成功";
} catch (FileNotFoundException e) {
return "文件异常";
} catch (IOException e) {
return "上传异常";
}
return "导出失败";
}