Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
吕剑
/
iqiyi-inject-management
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
4f399134
...
4f399134e0e3ecfd2a30249952eec8080e46335d
authored
2021-06-16 09:29:51 +0800
by
姬傲辉
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
添加了导出excel并发送邮件功能
修改了查询全部
1 parent
ad69ee0d
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
710 additions
and
63 deletions
src/main/java/com/hui/iqiyi/Util/MailUtil.java
src/main/java/com/hui/iqiyi/Util/TestFileUtil.java
src/main/java/com/hui/iqiyi/controller/MovieController.java
src/main/java/com/hui/iqiyi/excel/DownloadExcel.java
src/main/java/com/hui/iqiyi/excel/MoveExcel.java
src/main/java/com/hui/iqiyi/excel/ProgramAllExcel.java
src/main/java/com/hui/iqiyi/excel/ProgramsExcel.java
src/main/java/com/hui/iqiyi/excel/ProsevenDownload.java
src/main/java/com/hui/iqiyi/response/ProgramXRespone.java
src/main/java/com/hui/iqiyi/schedule/Timedtask.java
src/main/resources/mail.setting
src/main/java/com/hui/iqiyi/Util/MailUtil.java
0 → 100644
View file @
4f39913
package
com
.
hui
.
iqiyi
.
Util
;
import
java.io.File
;
import
java.io.InputStream
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.extra.mail.GlobalMailAccount
;
import
cn.hutool.extra.mail.Mail
;
import
cn.hutool.extra.mail.MailAccount
;
/**
* 邮件工具类,基于javax.mail封装
*
* @author looly
* @since 3.1.2
*/
public
class
MailUtil
{
/**
* 使用配置文件中设置的账户发送文本邮件,发送给单个或多个收件人<br>
* 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人
* @param subject 标题
* @param content 正文
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
sendText
(
String
to
,
String
subject
,
String
content
,
File
...
files
)
{
send
(
to
,
subject
,
content
,
false
,
files
);
}
/**
* 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人<br>
* 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人
* @param subject 标题
* @param content 正文
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
sendHtml
(
String
to
,
String
subject
,
String
content
,
File
...
files
)
{
send
(
to
,
subject
,
content
,
true
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
* 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML
* @param files 附件列表
*/
public
static
void
send
(
String
to
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
splitAddress
(
to
),
subject
,
content
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
* 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML
* @param files 附件列表
* @since 4.0.3
*/
public
static
void
send
(
String
to
,
String
cc
,
String
bcc
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
splitAddress
(
to
),
splitAddress
(
cc
),
splitAddress
(
bcc
),
subject
,
content
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送文本邮件,发送给多人
*
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param files 附件列表
*/
public
static
void
sendText
(
Collection
<
String
>
tos
,
String
subject
,
String
content
,
File
...
files
)
{
send
(
tos
,
subject
,
content
,
false
,
files
);
}
/**
* 使用配置文件中设置的账户发送HTML邮件,发送给多人
*
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
sendHtml
(
Collection
<
String
>
tos
,
String
subject
,
String
content
,
File
...
files
)
{
send
(
tos
,
subject
,
content
,
true
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送给多人
*
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML
* @param files 附件列表
*/
public
static
void
send
(
Collection
<
String
>
tos
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
tos
,
null
,
null
,
subject
,
content
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送给多人
*
* @param tos 收件人列表
* @param ccs 抄送人列表,可以为null或空
* @param bccs 密送人列表,可以为null或空
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML
* @param files 附件列表
* @since 4.0.3
*/
public
static
void
send
(
Collection
<
String
>
tos
,
Collection
<
String
>
ccs
,
Collection
<
String
>
bccs
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
GlobalMailAccount
.
INSTANCE
.
getAccount
(),
true
,
tos
,
ccs
,
bccs
,
subject
,
content
,
null
,
isHtml
,
files
);
}
// ------------------------------------------------------------------------------------------------------------------------------- Custom MailAccount
/**
* 发送邮件给多人
*
* @param mailAccount 邮件认证对象
* @param to 收件人,多个收件人逗号或者分号隔开
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
send
(
MailAccount
mailAccount
,
String
to
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
splitAddress
(
to
),
subject
,
content
,
isHtml
,
files
);
}
/**
* 发送邮件给多人
*
* @param mailAccount 邮件帐户信息
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML格式
* @param files 附件列表
*/
public
static
void
send
(
MailAccount
mailAccount
,
Collection
<
String
>
tos
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
tos
,
null
,
null
,
subject
,
content
,
isHtml
,
files
);
}
/**
* 发送邮件给多人
*
* @param mailAccount 邮件帐户信息
* @param tos 收件人列表
* @param ccs 抄送人列表,可以为null或空
* @param bccs 密送人列表,可以为null或空
* @param subject 标题
* @param content 正文
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 4.0.3
*/
public
static
void
send
(
MailAccount
mailAccount
,
Collection
<
String
>
tos
,
Collection
<
String
>
ccs
,
Collection
<
String
>
bccs
,
String
subject
,
String
content
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
false
,
tos
,
ccs
,
bccs
,
subject
,
content
,
null
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人<br>
* 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人
* @param subject 标题
* @param content 正文
* @param files 附件列表
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @since 3.2.0
*/
public
static
void
sendHtml
(
String
to
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
File
...
files
)
{
send
(
to
,
subject
,
content
,
imageMap
,
true
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
* 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML
* @param files 附件列表
*/
public
static
void
send
(
String
to
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
splitAddress
(
to
),
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
* 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔
*
* @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML
* @param files 附件列表
* @since 4.0.3
*/
public
static
void
send
(
String
to
,
String
cc
,
String
bcc
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
splitAddress
(
to
),
splitAddress
(
cc
),
splitAddress
(
bcc
),
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送HTML邮件,发送给多人
*
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
sendHtml
(
Collection
<
String
>
tos
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
File
...
files
)
{
send
(
tos
,
subject
,
content
,
imageMap
,
true
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送给多人
*
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML
* @param files 附件列表
*/
public
static
void
send
(
Collection
<
String
>
tos
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
tos
,
null
,
null
,
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
/**
* 使用配置文件中设置的账户发送邮件,发送给多人
*
* @param tos 收件人列表
* @param ccs 抄送人列表,可以为null或空
* @param bccs 密送人列表,可以为null或空
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML
* @param files 附件列表
* @since 4.0.3
*/
public
static
void
send
(
Collection
<
String
>
tos
,
Collection
<
String
>
ccs
,
Collection
<
String
>
bccs
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
GlobalMailAccount
.
INSTANCE
.
getAccount
(),
true
,
tos
,
ccs
,
bccs
,
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
// ------------------------------------------------------------------------------------------------------------------------------- Custom MailAccount
/**
* 发送邮件给多人
*
* @param mailAccount 邮件认证对象
* @param to 收件人,多个收件人逗号或者分号隔开
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 3.2.0
*/
public
static
void
send
(
MailAccount
mailAccount
,
String
to
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
splitAddress
(
to
),
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
/**
* 发送邮件给多人
*
* @param mailAccount 邮件帐户信息
* @param tos 收件人列表
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 4.6.3
*/
public
static
void
send
(
MailAccount
mailAccount
,
Collection
<
String
>
tos
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
tos
,
null
,
null
,
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
/**
* 发送邮件给多人
*
* @param mailAccount 邮件帐户信息
* @param tos 收件人列表
* @param ccs 抄送人列表,可以为null或空
* @param bccs 密送人列表,可以为null或空
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 4.6.3
*/
public
static
void
send
(
MailAccount
mailAccount
,
Collection
<
String
>
tos
,
Collection
<
String
>
ccs
,
Collection
<
String
>
bccs
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
send
(
mailAccount
,
false
,
tos
,
ccs
,
bccs
,
subject
,
content
,
imageMap
,
isHtml
,
files
);
}
// ------------------------------------------------------------------------------------------------------------------------ Private method start
/**
* 发送邮件给多人
*
* @param mailAccount 邮件帐户信息
* @param useGlobalSession 是否全局共享Session
* @param tos 收件人列表
* @param ccs 抄送人列表,可以为null或空
* @param bccs 密送人列表,可以为null或空
* @param subject 标题
* @param content 正文
* @param imageMap 图片与占位符,占位符格式为cid:${cid}
* @param isHtml 是否为HTML格式
* @param files 附件列表
* @since 4.6.3
*/
private
static
void
send
(
MailAccount
mailAccount
,
boolean
useGlobalSession
,
Collection
<
String
>
tos
,
Collection
<
String
>
ccs
,
Collection
<
String
>
bccs
,
String
subject
,
String
content
,
Map
<
String
,
InputStream
>
imageMap
,
boolean
isHtml
,
File
...
files
)
{
final
Mail
mail
=
Mail
.
create
(
mailAccount
).
setUseGlobalSession
(
useGlobalSession
);
// 可选抄送人
if
(
CollUtil
.
isNotEmpty
(
ccs
))
{
mail
.
setCcs
(
ccs
.
toArray
(
new
String
[
ccs
.
size
()]));
}
// 可选密送人
if
(
CollUtil
.
isNotEmpty
(
bccs
))
{
mail
.
setBccs
(
bccs
.
toArray
(
new
String
[
bccs
.
size
()]));
}
mail
.
setTos
(
tos
.
toArray
(
new
String
[
tos
.
size
()]));
mail
.
setTitle
(
subject
);
mail
.
setContent
(
content
);
mail
.
setHtml
(
isHtml
);
mail
.
setFiles
(
files
);
// 图片
if
(
MapUtil
.
isNotEmpty
(
imageMap
))
{
for
(
Entry
<
String
,
InputStream
>
entry
:
imageMap
.
entrySet
())
{
mail
.
addImage
(
entry
.
getKey
(),
entry
.
getValue
());
// 关闭流
IoUtil
.
close
(
entry
.
getValue
());
}
}
mail
.
send
();
}
/**
* 将多个联系人转为列表,分隔符为逗号或者分号
*
* @param addresses 多个联系人,如果为空返回null
* @return 联系人列表
*/
private
static
List
<
String
>
splitAddress
(
String
addresses
)
{
if
(
StrUtil
.
isBlank
(
addresses
))
{
return
null
;
}
List
<
String
>
result
;
if
(
StrUtil
.
contains
(
addresses
,
','
))
{
result
=
StrUtil
.
splitTrim
(
addresses
,
','
);
}
else
if
(
StrUtil
.
contains
(
addresses
,
';'
))
{
result
=
StrUtil
.
splitTrim
(
addresses
,
';'
);
}
else
{
result
=
CollUtil
.
newArrayList
(
addresses
);
}
return
result
;
}
}
src/main/java/com/hui/iqiyi/Util/TestFileUtil.java
0 → 100644
View file @
4f39913
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
);
}
}
src/main/java/com/hui/iqiyi/controller/MovieController.java
View file @
4f39913
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
...
...
src/main/java/com/hui/iqiyi/excel/DownloadExcel.java
0 → 100644
View file @
4f39913
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
;
}
src/main/java/com/hui/iqiyi/excel/MoveExcel.java
0 → 100644
View file @
4f39913
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
;
}
src/main/java/com/hui/iqiyi/excel/ProgramAllExcel.java
0 → 100644
View file @
4f39913
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
;
}
src/main/java/com/hui/iqiyi/excel/ProgramsExcel.java
0 → 100644
View file @
4f39913
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
;
}
src/main/java/com/hui/iqiyi/excel/ProsevenDownload.java
0 → 100644
View file @
4f39913
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
;
}
src/main/java/com/hui/iqiyi/response/ProgramXRespone.java
0 → 100644
View file @
4f39913
package
com
.
hui
.
iqiyi
.
response
;
import
lombok.Data
;
@Data
public
class
ProgramXRespone
{
//时间
private
String
day
;
//下载数量
private
Long
TotlFee
;
//下载容量
private
Double
TotlSize
;
//下载时长
private
Double
TotlDuration
;
}
src/main/java/com/hui/iqiyi/schedule/Timedtask.java
0 → 100644
View file @
4f39913
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
());
}
}
}
src/main/resources/mail.setting
0 → 100644
View file @
4f39913
# 邮件服务器的SMTP地址
host = smtp.ym.163.com
# 邮件服务器的SMTP端口
port = 25
# 发件人(必须正确,否则发送失败)
from = test@topdraw.cn
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
user = test@topdraw.cn
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = 123456789
Please
register
or
sign in
to post a comment