Commit 4f399134 4f399134e0e3ecfd2a30249952eec8080e46335d by 姬傲辉

添加了导出excel并发送邮件功能

修改了查询全部
1 parent ad69ee0d
package com.hui.iqiyi.Util;
import java.io.File;
import java.io.InputStream;
public class TestFileUtil {
public static InputStream getResourcesFileInputStream(String fileName) {
return Thread.currentThread().getContextClassLoader().getResourceAsStream("" + fileName);
}
public static String getPath() {
return TestFileUtil.class.getResource("/").getPath();
}
public static File createNewFile(String pathName) {
File file = new File(getPath() + pathName);
if (file.exists()) {
file.delete();
} else {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
}
return file;
}
public static File readFile(String pathName) {
return new File(getPath() + pathName);
}
public static File readUserHomeFile(String pathName) {
return new File(System.getProperty("user.home") + File.separator + pathName);
}
}
package com.hui.iqiyi.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.Util.TestFileUtil;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.excel.*;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.MovieResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import com.hui.iqiyi.service.IMovieService;
import com.hui.iqiyi.service.IProgramService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.testng.collections.Lists;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -56,52 +40,6 @@ public class MovieController {
return iMovieService.selectAllPopulation();
}
// @GetMapping("/selectAllPopulationn")
// @ApiOperation("查询总下载")
// @ResponseBody
// public void selectAllPopulationn(Movie Movie) {
//
// try {
// String path = "D:\\java\\爱奇艺下载情况.xlsx\\";
// //新建ExcelWriter
// ExcelWriter excelWriter = EasyExcel.write(path).build();
// //获取sheet0对象
// WriteSheet mainSheet = EasyExcel.writerSheet(0, "介质文件下载统计文件").head(DownloadExcel.class).build();
// //向sheet0写入数据 传入空list这样只导出表头
// excelWriter.write(iMovieService.selectAllPopulation(), mainSheet);
//
// //获取sheet1对象
// WriteSheet detailSheet = EasyExcel.writerSheet(1, "吉林关注片单").head(ProgramsExcel.class).build();
// //向sheet1写入数据 传入空list这样只导出表头
// List<ProgramSyResponse> programSyResponses = new ArrayList<>();
// programSyResponses.add(iProgramService.selectAllProgramCount());
// excelWriter.write(programSyResponses, detailSheet);
//
// //获取sheet1对象
// WriteSheet detailSheet1 = EasyExcel.writerSheet(2, "剧集单片数量").head(ProgramAllExcel.class).build();
// //向sheet1写入数据 传入空list这样只导出表头
// List<ContentResponse> contentResponses = new ArrayList<>();
// contentResponses.add(iProgramService.selectAllPrograms());
// excelWriter.write(contentResponses, detailSheet1);
//
// //获取sheet2对象
// WriteSheet SevenSheetDownload = EasyExcel.writerSheet(3, "近七日下载情况").head(ProsevenDownload.class).build();
// //向sheet0写入数据 传入空list这样只导出表头
// ProRequest proRequest = new ProRequest();
// excelWriter.write(iProgramService.selectAllSeven(proRequest), SevenSheetDownload);
//
// //获取sheet2对象
// WriteSheet SevenSheetzation= EasyExcel.writerSheet(4, "近七日同步情况").head(MoveExcel.class).build();
// //向sheet0写入数据 传入空list这样只导出表头
// ProRequest proRequest1 = new ProRequest();
// excelWriter.write(iMovieService.selectAllSevenxz(proRequest1), SevenSheetzation);
// //关闭流
// excelWriter.finish();
// } catch (Exception e) {
// System.out.println("导出异常"+ e.getMessage());
// }
// }
@GetMapping("/selectAllSevenXz")
@ApiOperation("近七日同步情况")
@ResponseBody
......
package com.hui.iqiyi.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@ColumnWidth(20)//表头宽度
public class DownloadExcel {
@ExcelProperty("下载情况")
private String localStatuss;
@ExcelProperty("下载数量")
private Long number;
@ExcelProperty("下载容量")
private Long capacity;
@ExcelProperty("下载时长")
private Integer duration;
}
package com.hui.iqiyi.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import java.util.Date;
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@ColumnWidth(20)//表头宽度
public class MoveExcel {
@ExcelProperty("日期")
private String day1;
@ExcelProperty("节目同步数量")
private Long totlFee3;
@ExcelProperty("下载容量")
private Double totlSize2;
@ExcelProperty("下载时长")
private Double totlDuration4;
}
package com.hui.iqiyi.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@ColumnWidth(20)//表头宽度
public class ProgramAllExcel {
@ExcelProperty("剧集数量")
private Integer drama;
@ExcelProperty("单片数量")
private Integer monolithic;
}
package com.hui.iqiyi.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@ColumnWidth(20)//表头宽度
public class ProgramsExcel {
//剧集
@ExcelProperty("剧集数量")
private Integer drama;
//单片
@ExcelProperty("单片数量")
private Integer monolithic;
//下载数量
@ExcelProperty("已下载数量")
private Long xzNumbe;
//下载容量
@ExcelProperty("已下载容量(G)")
private Double xzSize;
//下载时长
@ExcelProperty("已下载时长")
private Double totlDuration;
//下载失败的数量
@ExcelProperty("下载失败数量")
private Long failSum;
//同步未下载数量
@ExcelProperty("同步未下载数量")
private Long totlSize;
//未同步介质数量
@ExcelProperty("未同步介质数量")
private Long totlFee;
}
package com.hui.iqiyi.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@ColumnWidth(20)//表头宽度
public class ProsevenDownload {
@ExcelProperty("日期")
private String day;
@ExcelProperty("已下载数量")
private Long totlFee;
@ExcelProperty("已下载容量(G)")
private Double totlSize;
@ExcelProperty("已下载时长")
private Double totlDuration;
}
package com.hui.iqiyi.response;
import lombok.Data;
@Data
public class ProgramXRespone {
//时间
private String day;
//下载数量
private Long TotlFee;
//下载容量
private Double TotlSize;
//下载时长
private Double TotlDuration;
}
package com.hui.iqiyi.schedule;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.hui.iqiyi.Util.MailUtil;
import com.hui.iqiyi.excel.*;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import com.hui.iqiyi.service.IMovieService;
import com.hui.iqiyi.service.IProgramService;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@Component//注入bean
public class Timedtask {
@Autowired
private IMovieService iMovieService;
@Autowired
private IProgramService iProgramService;
@Value("${recievers.shoujianren}")
private String Youxiang;
@Value("${filePath}")
private String path;
//添加定时任务
//@Scheduled(cron = "0 20 16 * * 5 ")//每周五16时20分发送
//@Scheduled(cron = "0/5 * * * * ?")
public void Timedtask() {
try {
//新建ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(path).build();
//获取sheet0对象
WriteSheet mainSheet = EasyExcel.writerSheet(0, "介质文件下载统计文件").head(DownloadExcel.class).build();
//向sheet0写入数据 传入空list这样只导出表头
excelWriter.write(iMovieService.selectAllPopulation(), mainSheet);
//获取sheet1对象
WriteSheet detailSheet = EasyExcel.writerSheet(1, "吉林关注片单").head(ProgramsExcel.class).build();
//向sheet1写入数据 传入空list这样只导出表头
List<ProgramSyResponse> programSyResponses = new ArrayList<>();
programSyResponses.add(iProgramService.selectAllProgramCount());
excelWriter.write(programSyResponses, detailSheet);
//获取sheet1对象
WriteSheet detailSheet1 = EasyExcel.writerSheet(2, "剧集单片数量").head(ProgramAllExcel.class).build();
//向sheet1写入数据 传入空list这样只导出表头
List<ContentResponse> contentResponses = new ArrayList<>();
contentResponses.add(iProgramService.selectAllPrograms());
excelWriter.write(contentResponses, detailSheet1);
//获取sheet2对象
WriteSheet SevenSheetDownload = EasyExcel.writerSheet(3, "近七日下载情况").head(ProsevenDownload.class).build();
//向sheet0写入数据 传入空list这样只导出表头
ProRequest proRequest = new ProRequest();
excelWriter.write(iProgramService.selectAllSeven(proRequest), SevenSheetDownload);
//获取sheet2对象
WriteSheet SevenSheetzation = EasyExcel.writerSheet(4, "近七日同步情况").head(MoveExcel.class).build();
//向sheet0写入数据 传入空list这样只导出表头
ProRequest proRequest1 = new ProRequest();
excelWriter.write(iMovieService.selectAllSevenxz(proRequest1), SevenSheetzation);
//关闭流
excelWriter.finish();
try {
//接收人放到配置文件里
//String to="2292269071@qq.com";
File file = new File(path);
MailUtil.sendText(Youxiang ,"爱奇艺统计", "各位好:\n" +
" 截止至 2021-06-15日 爱奇艺同步下载统计如下\n" +
" 剧集数量:25122 部;\n" +
" 单片数量:194412部;\n" +
" 介质下载 数量:280982集\n" +
" 容量:1678.34G\n" +
" 时长:21624小时\n" +
" 下载速度 大约 5 M/h\n" +
" 吉林片单中 :\n" +
" 剧集:158部\n" +
" 单片:118部\n" +
" 已下载数量:6505集\n" +
" 已下载容量:1252G\n" +
" 已下载时长:1610小时\n" +
" 未下载数量:6525集\n" +
" 未同步数量:6525集\n" +
" \n" +
" 预计容量:1359G\n" +
" 预计时长:2062小时\n" +
" 预计需要下载时间:10天\n" +
"\n" +
"详情见以下附件:", file);
} catch (Exception e) {
System.out.println("发送邮件失败{}"+ e.getMessage());
}
} catch (Exception e) {
System.out.println("导出异常"+ e.getMessage());
}
}
}
# 邮件服务器的SMTP地址
host = smtp.ym.163.com
# 邮件服务器的SMTP端口
port = 25
# 发件人(必须正确,否则发送失败)
from = test@topdraw.cn
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
user = test@topdraw.cn
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = 123456789