Commit dd096b4c dd096b4ca2b416c0bedcf0f09909c757371d4e24 by 姬傲辉

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

修改了查询全部
1 parent ad69ee0d
Showing 31 changed files with 1299 additions and 173 deletions
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;
}
}
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);
}
}
......@@ -10,6 +10,7 @@ import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.request.ProgramExcelRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
......@@ -70,18 +71,21 @@ public class ContentController {
@ResponseBody
public PageInfo<Content> selectAllIqIy(ContentRequest contentRequest) {
PageHelper.startPage(contentRequest.getPageNo(), contentRequest.getPageSize());
ProgramRequest programRequest = new ProgramRequest();
if (contentRequest.getType() == 0) {
return new PageInfo(iProgramService.selectAllProgra(programRequest));
}
if (contentRequest.getType()== 0) {
return new PageInfo(iProgramService.selectAllProgra(contentRequest));
}
else if (contentRequest.getType() == 1) {
return new PageInfo(iContentService.selectAllContenten(contentRequest));
}
return null ;
}
@GetMapping("/selectAllCont11")
@ApiOperation("吉林片单22222222222")
@ResponseBody
public List<ProgramExcelRequest> selectAllCont111() {
return iContentService.selectAllDramaExcel();
}
}
......
......@@ -30,27 +30,27 @@ import java.util.List;
@RestController
@RequestMapping("/iqiyi/media")
public class MediaController {
@Autowired
private IMediaService iMediaService;
@GetMapping("/selectAllIqIy")
@ApiOperation("查询全部剧集信息")
@ResponseBody
public PageInfo<Media> selectAllIqIy(MediaRequest request) {
PageHelper.startPage(request.getPageNo(), request.getPageSize());
return new PageInfo(iMediaService.selectAllIqIyList(request));
}
@GetMapping("/selectAllfollow")
@ApiOperation("查询关注平台的信息")
@ResponseBody
public List<Media> selectAllfollow(Long info) {
MediaRequest mediaRequest = new MediaRequest();
mediaRequest.setPlatformInfo(info);
return iMediaService.selectAllfollow(mediaRequest);
}
//
// @Autowired
// private IMediaService iMediaService;
//
// @GetMapping("/selectAllIqIy")
// @ApiOperation("查询全部剧集信息")
// @ResponseBody
// public PageInfo<Media> selectAllIqIy(MediaRequest request) {
// PageHelper.startPage(request.getPageNo(), request.getPageSize());
//
// return new PageInfo(iMediaService.selectAllIqIyList(request));
// }
//
//
// @GetMapping("/selectAllfollow")
// @ApiOperation("查询关注平台的信息")
// @ResponseBody
// public List<Media> selectAllfollow(Long info) {
// MediaRequest mediaRequest = new MediaRequest();
// mediaRequest.setPlatformInfo(info);
// return iMediaService.selectAllfollow(mediaRequest);
// }
}
......
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 +41,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
......
......@@ -2,33 +2,25 @@ package com.hui.iqiyi.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.excel.DownloadExcel;
import com.hui.iqiyi.excel.ProgramsExcel;
import com.hui.iqiyi.excel.ProsevenDownload;
import com.hui.iqiyi.request.ByIdsRequest;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.ProgramResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import com.hui.iqiyi.response.ProgramXRespone;
import com.hui.iqiyi.excel.jlSheetExcel;
import com.hui.iqiyi.excel.jujiExecl;
import com.hui.iqiyi.request.*;
import com.hui.iqiyi.response.*;
import com.hui.iqiyi.service.IContentService;
import com.hui.iqiyi.service.IProgramService;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -46,6 +38,8 @@ public class ProgramController {
@Resource
private IProgramService iProgramService;
@Autowired
private IContentService iContentService;
@PostMapping("/addFollow")
@ApiOperation("添加关注")
......@@ -54,20 +48,20 @@ public class ProgramController {
}
@PostMapping("/selectFollow")
@ApiOperation("查看关注")
public Object selectProMov(@RequestBody String platFormInfo, int PageNo, int PageSize) {
return iProgramService.selectProMov(new Program().setPlatformInfo(platFormInfo), PageNo, PageSize);
}
// @PostMapping("/selectFollow")
// @ApiOperation("查看关注")
// public Object selectProMov(@RequestBody String platFormInfo, int PageNo, int PageSize) {
// return iProgramService.selectProMov(new Program().setPlatformInfo(platFormInfo), PageNo, PageSize);
// }
@GetMapping("/selectAllSingle")
@ApiOperation("查询单集")
@ResponseBody
public PageInfo<ProgramResponse> selectAllSingle(ProgramRequest request) {
PageHelper.startPage(request.getPageNo(), request.getPageSize());
return new PageInfo(iProgramService.selectProgramDloadList(request));
}
// @GetMapping("/selectAllSingle")
// @ApiOperation("查询单集")
// @ResponseBody
// public PageInfo<ProgramResponse> selectAllSingle(ProgramRequest request) {
// PageHelper.startPage(request.getPageNo(), request.getPageSize());
// return new PageInfo(iProgramService.selectProgramDloadList(request));
// }
@GetMapping("/selectAllSeven")
......@@ -77,22 +71,64 @@ public class ProgramController {
return iProgramService.selectAllSeven(proRequest);
}
//
// @GetMapping("/selectAllProgramCount")
// @ApiOperation("关注平台数据")
// @ResponseBody
// public ProgramSyResponse selectAllProgramCount() {
// return iProgramService.selectAllProgramCount();
// }
@GetMapping("/selectAllProgramCount")
@ApiOperation("关注平台数据")
@GetMapping("/selectAllmonolithic")
@ApiOperation("查询全部单片信息")
@ResponseBody
public ProgramSyResponse selectAllProgramCount() {
return iProgramService.selectAllProgramCount();
public PageInfo<Program> selectAllIqIy(ContentRequest contentRequest) {
PageHelper.startPage(contentRequest.getPageNo(), contentRequest.getPageSize());
return new PageInfo(iProgramService.selectAllProgra(contentRequest));
}
@GetMapping("/selectAllMonolithic")
@ApiOperation("查询全部单片信息")
@GetMapping("/selectAllExcel")
@ApiOperation("导出关注单片信息")
@ResponseBody
public void selectAllExcel() {
try {
String path = "D:\\java\\吉林关注剧集片单.xlsx\\";
//新建ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(path).build();
//获取sheet0对象
WriteSheet mainSheet = EasyExcel.writerSheet(0, "吉林关注单片").head(jlSheetExcel.class).build();
//向sheet0写入数据 传入空list这样只导出表头
excelWriter.write(iProgramService.selectAllExcel(), mainSheet);
//新建ExcelWriter
ExcelWriter excelWriter1 = EasyExcel.write(path).build();
//获取sheet0对象
WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "吉林关注剧集").head(jujiExecl.class).build();
//向sheet0写入数据 传入空list这样只导出表头
excelWriter.write(iContentService.selectAllDramaExcel(), mainSheet1);
//关闭流
excelWriter.finish();
} catch (Exception e) {
System.out.println("导出异常" + e.getMessage());
}
}
@GetMapping("/selectAllmonolithicsss")
@ApiOperation("查询全部单片ss")
@ResponseBody
public PageInfo<Program> selectAllIqIy(ProgramRequest programRequest) {
PageHelper.startPage(programRequest.getPageNo(), programRequest.getPageSize());
return new PageInfo(iProgramService.selectAllProgra(programRequest));
public List<ProgramExcelRequest> selectAllIqIy11() {
return iProgramService.selectAllExcel();
}
}
......
......@@ -287,6 +287,13 @@ public class Content implements Serializable {
*/
private String downloadStatus;
/**
* 标识调用哪个方法
* 0单片
* 1剧集
*/
private Long type =1L;
}
......
......@@ -312,4 +312,10 @@ public class Program implements Serializable {
* 标识下载状态
*/
private String downloadStatus;
/**
* 标识调用哪个方法
* 0单片
* 1剧集
*/
private Long type =0L;
}
......
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.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(40)//表头宽度
public class jlSheetExcel {
//节目名称
@ExcelProperty("节目名称")
private String name;
//节目类型
@ExcelProperty("节目类型")
private String elementType;
//爱奇艺id
@ExcelProperty("爱奇艺id")
private Long externalId;
//节目内容分类
@ExcelProperty("节目内容分类")
private String cname;
//上映年份
@ExcelProperty("上映年份")
private String year;
//首播日期
@ExcelProperty("首播日期")
private String publishTime;
//节目描述
@ExcelProperty("节目描述")
private String desc ;
//节目标签
@ExcelProperty("节目标签")
private String tags;
//节目图片路径
@ExcelProperty("节目图片路径")
private String picUrl;
//导演
@ExcelProperty("导演")
private String directors;
//主演
@ExcelProperty("主演")
private String mainActors;
//编剧
@ExcelProperty("编剧")
private String writers;
//明星
@ExcelProperty("明星")
private String stars;
//索引名称
@ExcelProperty("索引名称")
private String searchName;
//评分
@ExcelProperty("评分")
private String score;
//地区
@ExcelProperty("地区")
private String country;
//语言
@ExcelProperty("语言")
private String language;
//爱奇艺节目id
@ExcelProperty("爱奇艺节目id")
private Long iqiyiContentId;
//码流id
@ExcelProperty("码流id")
private String vid;
//清晰度
@ExcelProperty("清晰度")
private String bitrate;
//时长
@ExcelProperty("时长")
private String duration;
//tar包大小
@ExcelProperty("tar包大小")
private String fileSize;
//下载状态
@ExcelProperty("下载状态")
private Long localStatus;
//下载地址
@ExcelProperty("下载地址")
private String localPath;
}
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(40)//表头宽度
public class jujiExecl {
//节目名称
@ExcelProperty("节目名称")
private String name;
//节目类型
@ExcelProperty("节目类型")
private String elementType;
//爱奇艺id
@ExcelProperty("爱奇艺id")
private Long externalId;
//节目内容分类
@ExcelProperty("节目内容分类")
private String cname;
//上映年份
@ExcelProperty("上映年份")
private String year;
//首播日期
@ExcelProperty("首播日期")
private String publishTime;
//节目描述
@ExcelProperty("节目描述")
private String desc ;
//节目标签
@ExcelProperty("节目标签")
private String tags;
//节目图片路径
@ExcelProperty("节目图片路径")
private String picUrl;
//导演
@ExcelProperty("导演")
private String directors;
//主演
@ExcelProperty("主演")
private String mainActors;
//编剧
@ExcelProperty("编剧")
private String writers;
//明星
@ExcelProperty("明星")
private String stars;
//索引名称
@ExcelProperty("索引名称")
private String searchName;
//评分
@ExcelProperty("评分")
private String score;
//地区
@ExcelProperty("地区")
private String country;
//语言
@ExcelProperty("语言")
private String language;
//爱奇艺节目id
@ExcelProperty("爱奇艺节目id")
private Long iqiyiContentId;
//码流id
@ExcelProperty("码流id")
private String vid;
//单集名称
@ExcelProperty("单集名称")
private String Sname;
//清晰度
@ExcelProperty("清晰度")
private String bitrate;
//时长
@ExcelProperty("时长")
private String duration;
//tar包大小
@ExcelProperty("tar包大小")
private String fileSize;
//下载状态
@ExcelProperty("下载状态")
private Long localStatus;
//下载地址
@ExcelProperty("下载地址")
private String localPath;
//总集数
@ExcelProperty("总集数")
private Long total;
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.request.ProgramExcelRequest;
import com.hui.iqiyi.response.ContentResponse;
import java.util.List;
......@@ -63,4 +64,12 @@ public interface ContentMapper extends BaseMapper<Content> {
List<Content> selectAllContenten(ContentRequest contentRequest);
/**
* 导出关注剧集
* @return
*/
List<ProgramExcelRequest> selectAllDramaExcel();
}
......
package com.hui.iqiyi.mapper;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Program;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hui.iqiyi.request.ByIdsRequest;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.request.*;
import com.hui.iqiyi.response.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Primary;
import sun.rmi.runtime.Log;
import java.util.List;
......@@ -29,17 +23,17 @@ public interface ProgramMapper extends BaseMapper<Program> {
* 根据 给电影添加关注
*/
int updateFilm(Long id);
int updateFilm(Long id,Long platformInfo);
/**
* 根据 id给
*/
int updatePla(Long id);
int updatePla(Long id,Long platformInfo);
/**
*
*/
int updateTeleplay(Long id);
int updateTeleplay(Long id,Long platformInfo);
/**
* 获取每一集的下载状态
......@@ -85,12 +79,26 @@ public interface ProgramMapper extends BaseMapper<Program> {
/**
* 查询所有单片
* @param programRequest
* @param contentRequest
* @return
*/
List<Program> selectAllProgra(ProgramRequest programRequest);
List<Program> selectAllProgra(ContentRequest contentRequest);
/**
* 导出关注单片数据
* @return
*/
List<ProgramExcelRequest> selectAllMonolithicExcel();
/**
* 计算预计容量预计时长
*
* @param
* @return
*/
List<ProgramCalcu> selectCalculation();
}
......
......@@ -12,4 +12,8 @@ public class ByIdsRequest {
@ApiModelProperty(value = "type", required = true)
private Integer type;
@ApiModelProperty(value = "type", required = true)
private Long platformInfo;
}
......
......@@ -292,5 +292,9 @@ public class ContentRequest extends AppPagingRequest {
*/
private Integer downloadStatus;
/**
* 扩展字段
*/
private Long downloadCount;
}
......
package com.hui.iqiyi.request;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ProgramExcelRequest {
private Long id;
//节目名称
private String name;
//节目类型
private String elementType;
//爱奇艺id
private Long externalId;
//节目内容分类
private String cname;
//上映年份
private String year;
//首播日期
private String publishTime;
//节目描述
private String desc ;
//节目标签
private String tags;
//节目图片路径
private String picUrl;
//导演
private String directors;
//主演
private String mainActors;
//编剧
private String writers;
//明星
private String stars;
//索引名称
private String searchName;
//评分
private String score;
//地区
private String country;
//语言
private String language;
//爱奇艺节目id
private Long iqiyiContentId;
//码流id
private String vid;
//单集名称
private String Sname;
//清晰度
private String bitrate;
//时长
private String duration;
//tar包大小
private String fileSize;
//下载状态
private Long localStatus;
//下载地址
private String localPath;
//总集数
private Long total;
/**
* 创建时间
*/
private LocalDateTime createTime;
//开始时间
private String beginTime;
//结束时间
private String EndTime;
//标识下载状态
private String LocalStatuss;
}
......@@ -268,6 +268,11 @@ public class ProgramRequest extends AppPagingRequest {
*/
private String score;
// /**
// * 用户评分2
// */
// private String score2;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
......
package com.hui.iqiyi.response;
import lombok.Data;
@Data
public class ProgramCalcu {
//下载容量
private Long xzSize;
//下载时长
private Long 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.entity.Movie;
import com.hui.iqiyi.excel.*;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.ProgramCalcu;
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.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@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这样只导出表头
List<Movie> movies = iMovieService.selectAllPopulation().stream().filter(item->item.getLocalStatus()==100).collect(Collectors.toList());
excelWriter.write(movies, 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 {
List<ProgramCalcu> integers = iProgramService.selectCalculation();
//接收人放到配置文件里
//String to="2292269071@qq.com";
File file = new File(path);
MailUtil.sendText(Youxiang ,"爱奇艺统计", "各位好:\n" +
" 截止至 "+new SimpleDateFormat("yyyy-MM-dd").format(new Date()) +"日 爱奇艺同步下载统计如下\n" +
" 剧集数量:"+contentResponses.get(0).getDrama()+"部;\n" +
" 单片数量:"+contentResponses.get(0).getMonolithic()+"部;\n" +
" 介质下载 数量:"+movies.get(0).getNumber()+"集\n" +
" 容量"+movies.get(0).getCapacity()+" G\n" +
" 时长:"+movies.get(0).getDuration()+" 小时\n" +
" 下载速度 大约 5 M/s\n" +
" 吉林片单中 :\n" +
" 剧集:"+programSyResponses.get(0).getDrama()+"部\n" +
" 单片:"+programSyResponses.get(0).getMonolithic()+"部\n" +
" 已下载数量:"+programSyResponses.get(0).getXzNumbe()+"集\n" +
" 已下载容量:"+programSyResponses.get(0).getXzSize()+"G\n" +
" 已下载时长:"+programSyResponses.get(0).getTotlDuration()+"小时\n" +
" 未下载数量:"+programSyResponses.get(0).getFailSum()+"集\n" +
" 未同步数量:"+programSyResponses.get(0).getTotlFee()+"集\n" +
" \n" +
" 未下载预计容量: "+integers.get(0).getXzSize()+"G\n" +
" 未下载预计时长:"+integers.get(0).getTotlDuration()+"小时\n" +
" 预计需要下载时间:10天\n" +
"\n" +
"详情见以下附件:", file);
} catch (Exception e) {
System.out.println("发送邮件失败{}"+ e);
}
} catch (Exception e) {
System.out.println("导出异常"+ e.getMessage());
}
}
}
......@@ -4,6 +4,7 @@ import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Content;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProgramExcelRequest;
import com.hui.iqiyi.response.ContentResponse;
import java.util.List;
......@@ -64,6 +65,11 @@ public interface IContentService extends IService<Content> {
/**
* 导出关注剧集
* @return
*/
List<ProgramExcelRequest> selectAllDramaExcel();
......
......@@ -4,13 +4,8 @@ import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.entity.Program;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hui.iqiyi.request.ByIdsRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.ProgramResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import com.hui.iqiyi.response.ProgramXRespone;
import com.hui.iqiyi.request.*;
import com.hui.iqiyi.response.*;
import java.util.List;
import java.util.Map;
......@@ -82,11 +77,29 @@ public interface IProgramService extends IService<Program> {
/**
* 查询所有单片
* @param programRequest
* @param contentRequest
* @return
*/
List<Program> selectAllProgra(ProgramRequest programRequest);
List<Program> selectAllProgra(ContentRequest contentRequest);
/**
* 导出关注单片数据
* @return
*/
List<ProgramExcelRequest> selectAllExcel();
/**
* 计算预计容量预计时长
*
* @param
* @return
*/
List<ProgramCalcu> selectCalculation();
......
......@@ -7,6 +7,7 @@ import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.mapper.ContentMapper;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProgramExcelRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
......@@ -119,6 +120,17 @@ public class ContentServiceImpl extends ServiceImpl<ContentMapper, Content> impl
return list;
}
@Override
public List<ProgramExcelRequest> selectAllDramaExcel() {
List<ProgramExcelRequest> list = contentMapper.selectAllDramaExcel();
// list.stream().forEach(item->{
// if (item.getLocalStatus()==0)
// item.setLocalStatuss("未下载");
// if (item.getLocalStatus()==100)
// item.setLocalStatuss("已下载");
// });
return list;
}
}
......
......@@ -5,20 +5,16 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.Util.ReturnProgram;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.mapper.ContentMapper;
import com.hui.iqiyi.mapper.MovieMapper;
import com.hui.iqiyi.mapper.ProgramMapper;
import com.hui.iqiyi.request.ByIdsRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.request.*;
import com.hui.iqiyi.response.*;
import com.hui.iqiyi.service.IProgramService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
......@@ -26,6 +22,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.mail.FetchProfile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -62,17 +59,16 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
try {
if (ObjectUtils.isEmpty(requests))
returnBean.errorSuccessInfo("传入的ID不能为空");
// requests.stream().filter(item->item.getType().equals(0)).
for (ByIdsRequest id : requests) {
if (id.getType() == 0) {//电影
int i1 = programMapper.updateFilm(id.getId());
int i1 = programMapper.updateFilm(id.getId(),id.getPlatformInfo());
if (i1 == 0) {
throw new RuntimeException("添加关注失败!");
}
} else if (id.getType() == 1) {//剧集
//MyBatisPlus 的通过id查询
int i1 = programMapper.updatePla(id.getId());
int pla = programMapper.updateTeleplay(id.getId());
int i1 = programMapper.updatePla(id.getId(),id.getPlatformInfo());
int pla = programMapper.updateTeleplay(id.getId(),id.getPlatformInfo());
if (i1 == 0 && pla == 0) {
throw new RuntimeException("添加关注失败!");
}
......@@ -235,16 +231,16 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
}
@Override
public List<Program> selectAllProgra(ProgramRequest programRequest) {
public List<Program> selectAllProgra(ContentRequest contentRequest) {
CurrCount = 1L;
List<Program> list = null;
try {
list = programMapper.selectAllProgra(programRequest);
list = programMapper.selectAllProgra(contentRequest);
if (list.size() == 0)
return list;
ProgramRequest request = new ProgramRequest();
programRequest.setContentIdList(list.stream().map(Long -> Long.getId()).collect(Collectors.toList()));
List<ProgramRequest> listPro = programMapper.selectDownload(programRequest);
request.setContentIdList(list.stream().map(Long -> Long.getId()).collect(Collectors.toList()));
List<ProgramRequest> listPro = programMapper.selectDownload(request);
for (Program program : list) {
for (ProgramRequest pro : listPro) {
if (program.getId().compareTo(pro.getIqiyiContentId()) == 0) {
......@@ -270,5 +266,25 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
return list;
}
@Override
public List<ProgramExcelRequest> selectAllExcel() {
// List<ProgramExcelRequest> list = programMapper.selectAllMonolithicExcel();
// list.stream().forEach(item->{
// if (item.getLocalStatus()==0)
// item.setLocalStatuss("未下载");
// if (item.getLocalStatus()==100)
// item.setLocalStatuss("已下载");
// });
return programMapper.selectAllMonolithicExcel();
}
@Override
public List<ProgramCalcu> selectCalculation() {
List<ProgramCalcu> programCalcus = programMapper.selectCalculation();
return programCalcus;
}
}
\ No newline at end of file
......
# 邮件服务器的SMTP地址
host = smtp.ym.163.com
# 邮件服务器的SMTP端口
port = 25
# 发件人(必须正确,否则发送失败)
from = test@topdraw.cn
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
user = test@topdraw.cn
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = 123456789
......@@ -48,7 +48,7 @@
and cid = #{cid}
</if>
<if test="name!= null and name!= ''">
AND name like #{name}
AND name like CONCAT('%',CONCAT(#{name},'%'))
</if>
<if test="cname!= null and cname!= ''">
AND cname = #{cname}
......@@ -68,9 +68,18 @@
<if test="downloadStatus !=null" >
and local_status=#{downloadStatus}
</if>
ORDER BY create_time desc
ORDER BY create_time,score desc
</select>
<select id="selectAllDramaExcel" resultType="com.hui.iqiyi.request.ProgramExcelRequest">
select a.`name`,a.element_type,a.external_id,a.cname,a.`year`,a.publish_time,a.`desc`,a.tags,a.pic_url,a.directors,a.main_actors,a.writers,a.stars,a.search_name,a.score,a.country,a.`language`,a.total,b.sname,b.iqiyi_content_id,
c.vid,c.bitrate,c.duration,c.file_size,c.local_status,c.local_path
from iqiyi_content as a
LEFT JOIN iqiyi_program as b on a.id =b.iqiyi_content_id
LEFT JOIN iqiyi_movie as c on b.id =c.iqiyi_program_id
where a.platform_info=1
ORDER BY a.platform_info
</select>
<sql id="Where_Cloumn">
<where>
......
......@@ -6,20 +6,35 @@
<update id="updateFilm">
UPDATE iqiyi_program as a
LEFT JOIN iqiyi_movie as c on c.iqiyi_program_id=a.id
set a.platform_info=1,c.priority=10
set a.platform_info = (
CASE WHEN IFNULL(platform_info,'') = '' THEN
#{platformInfo}
else
CONCAT(platform_info,',',#{platformInfo})
END ),c.priority=10
where a.id = #{id}
</update>
<update id="updatePla">
UPDATE iqiyi_content AS b
set b.platform_info=1
set b.platform_info=(
CASE WHEN IFNULL(platform_info,'') = '' THEN
#{platformInfo}
else
CONCAT(platform_info,',',#{platformInfo})
END )
where b.id = #{id}
</update>
<update id="updateTeleplay">
UPDATE iqiyi_program as a
LEFT JOIN iqiyi_movie as c on c.iqiyi_program_id=a.id
set a.platform_info=1,c.priority=10
set a.platform_info= (
CASE WHEN IFNULL(platform_info,'') = '' THEN
#{platformInfo}
else
CONCAT(platform_info,',',#{platformInfo})
END ),c.priority=10
where a.iqiyi_content_id = #{id}
</update>
......@@ -94,7 +109,6 @@
select a.*
from iqiyi_program as a
LEFT JOIN iqiyi_movie as b on a.id=b.iqiyi_program_id
<where>
<if test="id != null and id != ''">
and id = #{id}
......@@ -103,7 +117,7 @@
and cid = #{cid}
</if>
<if test="name!= null and name!= ''">
AND name like #{name}
AND name like CONCAT('%',CONCAT(#{name},'%'))
</if>
<if test="cname!= null and cname!= ''">
AND cname = #{cname}
......@@ -115,20 +129,63 @@
and create_time &lt;= #{EndTime}
</if>
<if test="score != null">
and score = #{score}
and score &gt;= #{score}
</if>
<!-- <if test="score2 != null">-->
<!-- and score &lt;= #{score2}-->
<!-- </if>-->
<if test="platformInfo != null">
and platform_info = #{platformInfo}
</if>
<if test="downloadStatus !=null" >
and local_status=#{downloadStatus}
</if>
and series_flag=0
</where>
ORDER BY create_time desc
ORDER BY create_time,score desc
</select>
<select id="selectAllMonolithicExcel" parameterType="com.hui.iqiyi.request.ProgramExcelRequest"
resultType="com.hui.iqiyi.request.ProgramExcelRequest">
select a.`name`,a.element_type,a.external_id,a.cname,a.`year`,a.publish_time,a.`desc`,a.tags,a.pic_url,a.directors,a.main_actors,a.writers,a.stars,a.search_name,a.score,a.country,a.`language`,
c.vid,c.bitrate,c.duration,c.file_size,c.local_status,c.local_path
from iqiyi_program as a
LEFT JOIN iqiyi_movie as c on a.id =c.iqiyi_program_id
<where>
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="cid != null and cid != ''">
and cid = #{cid}
</if>
<if test="name!= null and name!= ''">
AND name like CONCAT('%',CONCAT(#{name},'%'))
</if>
<if test="cname!= null and cname!= ''">
AND cname = #{cname}
</if>
<if test="beginTime != null">
and create_time &gt;= #{beginTime}
</if>
<if test="EndTime != null">
and create_time &lt;= #{EndTime}
</if>
<if test="platformInfo != null">
and platform_info = #{platformInfo}
</if>
and a.platform_info=1
</where>
ORDER BY a.platform_info
</select>
<select id="selectCalculation" resultType="com.hui.iqiyi.response.ProgramCalcu">
SELECT
sum( im.file_size )/ 1024 / 1024 / 1024 AS 'xzSize',
sum( im.duration )/ 60 / 60 AS 'totlDuration'
FROM
iqiyi_movie im
LEFT JOIN iqiyi_program AS ip ON im.iqiyi_program_id = ip.id
WHERE
ip.platform_info = '1'
AND im.local_status = '0'
</select>
<sql id="Pro_Cloumn">
......