Commit ad69ee0d ad69ee0db1645496d114b59c0c4232dd9f4ad496 by 姬傲辉

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

修改了查询全部
1 parent d386a68e
Showing 31 changed files with 563 additions and 65 deletions
......@@ -31,6 +31,13 @@
<version>1.2.75</version>
</dependency>
<!--EasyExcel 阿里巴巴-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.0-beta2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
......@@ -54,6 +61,13 @@
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!-- 邮件注解 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!--Mysql依赖包-->
......@@ -76,6 +90,12 @@
<version>1.2.11</version>
</dependency>
<!-- 日志-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
......@@ -91,6 +111,17 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>repository.cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......@@ -160,9 +191,18 @@
</excludes>
</configuration>
</plugin>
<!-- 让maven不编译xls文件,但仍将其打包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>
</project>
......
......@@ -3,8 +3,10 @@ package com.hui;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling//开启定时任务
@MapperScan("com.hui")
public class IqiyiApplication {
......
......@@ -7,13 +7,16 @@ import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Content;
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.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
import com.hui.iqiyi.service.IProgramService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......@@ -35,6 +38,8 @@ import java.util.concurrent.LinkedBlockingQueue;
public class ContentController {
@Resource
private IContentService iContentService;
@Autowired
private IProgramService iProgramService;
@PostMapping("/selectAllSingle")
@ApiOperation("查询单集")
......@@ -60,4 +65,23 @@ public class ContentController {
return iContentService.selectAllCont();
}
@GetMapping("/selectAllIqIyDrama")
@ApiOperation("查询全部剧集信息")
@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));
}
else if (contentRequest.getType() == 1) {
return new PageInfo(iContentService.selectAllContenten(contentRequest));
}
return null ;
}
}
......
......@@ -8,6 +8,7 @@ import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.service.IMediaService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -38,6 +39,7 @@ public class MediaController {
@ResponseBody
public PageInfo<Media> selectAllIqIy(MediaRequest request) {
PageHelper.startPage(request.getPageNo(), request.getPageSize());
return new PageInfo(iMediaService.selectAllIqIyList(request));
}
......
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;
......@@ -31,22 +43,71 @@ import java.util.Map;
@RequestMapping("/iqiyi/movie")
public class MovieController {
@Autowired
private IMovieService iMovieService;
@Resource
private IProgramService iProgramService;
@GetMapping("/selectAllPopulation")
@ApiOperation("查询总下载")
@ResponseBody
public List<Movie> selectAllPopulation(Movie Movie) {
return iMovieService.selectAllPopulation(Movie);
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
public List<MovieResponse> selectAllSeven(ProRequest proRequest) {
public List<MovieResponse> selectAllSeven (ProRequest proRequest){
return iMovieService.selectAllSevenxz(proRequest);
}
}
}
......
package com.hui.iqiyi.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
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;
......@@ -14,6 +18,7 @@ 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.service.IProgramService;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import io.swagger.annotations.Api;
......@@ -23,6 +28,7 @@ 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;
/**
......@@ -67,7 +73,7 @@ public class ProgramController {
@GetMapping("/selectAllSeven")
@ApiOperation("近七日下载情况")
@ResponseBody
public List<ProgramSyResponse> selectAllSeven(ProRequest proRequest) {
public List<ProgramXRespone> selectAllSeven(ProRequest proRequest) {
return iProgramService.selectAllSeven(proRequest);
}
......@@ -79,5 +85,14 @@ public class ProgramController {
return iProgramService.selectAllProgramCount();
}
@GetMapping("/selectAllMonolithic")
@ApiOperation("查询全部单片信息")
@ResponseBody
public PageInfo<Program> selectAllIqIy(ProgramRequest programRequest) {
PageHelper.startPage(programRequest.getPageNo(), programRequest.getPageSize());
return new PageInfo(iProgramService.selectAllProgra(programRequest));
}
}
......
......@@ -186,7 +186,7 @@ public class Content implements Serializable {
/**
* 专辑已有视频的最大集数,不严格等于已上线的视频数量
*/
private Integer currCount;
private Long currCount;
/**
* 是否收费
......@@ -282,4 +282,11 @@ public class Content implements Serializable {
* 扩展字段
*/
private List<Long> ContentIdList;
/**
* 标识下载状态
*/
private String downloadStatus;
}
......
......@@ -125,4 +125,7 @@ public class Movie implements Serializable {
private Long capacity;
//标识下载状态
private String LocalStatuss;
}
......
......@@ -307,4 +307,9 @@ public class Program implements Serializable {
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 标识下载状态
*/
private String downloadStatus;
}
......
......@@ -54,4 +54,13 @@ public interface ContentMapper extends BaseMapper<Content> {
List<Integer> selectAllCont();
/**
* 查询所有剧集
* @param contentRequest
* @return
*/
List<Content> selectAllContenten(ContentRequest contentRequest);
}
......
......@@ -31,7 +31,7 @@ public interface MovieMapper extends BaseMapper<Movie> {
//查询总体下载情况
List<Movie> selectAllPopulation(Movie movie);
List<Movie> selectAllPopulation();
/**
......@@ -42,4 +42,6 @@ public interface MovieMapper extends BaseMapper<Movie> {
List<MovieResponse> selectAllSevenxz(@Param("proRequest") ProRequest proRequest);
}
......
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.response.*;
......@@ -62,7 +64,7 @@ public interface ProgramMapper extends BaseMapper<Program> {
*
* @return
*/
List<ProgramSyResponse> selectAllSeven(@Param("proRequest") ProRequest proRequest);
List<ProgramXRespone> selectAllSeven(@Param("proRequest") ProRequest proRequest);
/**
......@@ -72,5 +74,23 @@ public interface ProgramMapper extends BaseMapper<Program> {
*/
List<ProgramQBRequest> selectAllProgramCount();
/**
* 全部片单信息
*
* @param
* @return
*/
List<Integer> selectAllPrograms();
/**
* 查询所有单片
* @param programRequest
* @return
*/
List<Program> selectAllProgra(ProgramRequest programRequest);
}
......
......@@ -273,4 +273,24 @@ public class ContentRequest extends AppPagingRequest {
*/
private Integer SeriesFlag;
//开始时间
private String beginTime;
//结束时间
private String EndTime;
/**
* 标识调用哪个方法
* 0单片
* 1剧集
*/
private Long type;
/**
* 下载状态
*/
private Integer downloadStatus;
}
......
......@@ -307,4 +307,15 @@ public class ProgramRequest extends AppPagingRequest {
* 下载状态
*/
private String localStatus;
/**
* 下载状态1
*/
private Integer downloadStatus;
//开始时间
private String beginTime;
//结束时间
private String EndTime;
}
......
......@@ -11,7 +11,7 @@ public class ContentResponse {
private Long num;
//剧集
private Integer Drama;
private Integer drama;
//单片
private Integer monolithic;
......
......@@ -20,9 +20,9 @@ public class MovieResponse {
private Integer Duration;
private Date day1;
private Double TotlSize2;
private Long TotlFee3;
private Double TotlDuration4;
private String day1;
private Double totlSize2;
private Long totlFee3;
private Double totlDuration4;
}
......
......@@ -6,9 +6,8 @@ import lombok.Data;
@Data
public class ProgramSyResponse {
private String day;
//剧集
private Integer Drama;
private Integer drama;
//单片
private Integer monolithic;
//下载数量
......@@ -17,7 +16,6 @@ public class ProgramSyResponse {
private Double xzSize;
//下载时长
private Double totlDuration;
//下载失败的数量
private Long failSum;
//同步未下载数量
......
......@@ -54,4 +54,18 @@ public interface IContentService extends IService<Content> {
ContentResponse selectAllCont();
/**
* 查询所有剧集
* @param contentRequest
* @return
*/
List<Content> selectAllContenten(ContentRequest contentRequest);
}
......
......@@ -30,7 +30,7 @@ public interface IMovieService extends IService<Movie> {
//查询总体下载情况
List<Movie> selectAllPopulation(Movie movie);
List<Movie> selectAllPopulation();
/**
......@@ -39,4 +39,7 @@ public interface IMovieService extends IService<Movie> {
* @return
*/
List<MovieResponse> selectAllSevenxz(ProRequest proRequest);
}
......
......@@ -7,10 +7,10 @@ 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.MovieResponse;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.response.ProgramResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import org.springframework.context.annotation.Primary;
import com.hui.iqiyi.response.ProgramXRespone;
import java.util.List;
import java.util.Map;
......@@ -59,7 +59,7 @@ public interface IProgramService extends IService<Program> {
*
* @return
*/
List<ProgramSyResponse> selectAllSeven(ProRequest proRequest);
List<ProgramXRespone> selectAllSeven(ProRequest proRequest);
/**
......@@ -71,4 +71,23 @@ public interface IProgramService extends IService<Program> {
ProgramSyResponse selectAllProgramCount();
/**
* 全部片单信息
*
* @param
* @return
*/
ContentResponse selectAllPrograms();
/**
* 查询所有单片
* @param programRequest
* @return
*/
List<Program> selectAllProgra(ProgramRequest programRequest);
}
......
......@@ -2,10 +2,12 @@ package com.hui.iqiyi.service.impl;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Media;
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.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -19,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
......@@ -81,5 +84,41 @@ public class ContentServiceImpl extends ServiceImpl<ContentMapper, Content> impl
return response;
}
@Override
public List<Content> selectAllContenten(ContentRequest contentRequest) {
List<Content> list = null;
try {
list = contentMapper.selectAllContenten(contentRequest);
if (list.size() == 0)
return list;
ProgramRequest programRequest = new ProgramRequest();
programRequest.setContentIdList(list.stream().map(Long -> Long.getId()).collect(Collectors.toList()));
List<ProgramRequest> listPro = iProgramService.selectDownload(programRequest);
for (Content content : list) {
for (ProgramRequest pro : listPro) {
if (content.getId().compareTo(pro.getIqiyiContentId()) == 0) {
//如果剧头的总集数与下载量一至则显示全部下载完成
if (content.getCurrCount().compareTo(pro.getDownloadCount()) == 0) {
content.setDownloadStatus("全部下载完成");
continue;
}
//如果剧头的总集数 大于 下载量 就显示未全部下载
if (content.getCurrCount().compareTo(pro.getDownloadCount()) > 0) {
content.setDownloadStatus("未全部下载");
continue;
}
}
}
//里面是关联查询匹配,如果没有下载记录,就塞入未下载
if (ObjectUtils.isEmpty(content.getDownloadStatus()))
content.setDownloadStatus("未下载");
}
} catch (Exception e) {
throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
}
return list;
}
}
......
......@@ -63,7 +63,7 @@ public class MediaServiceImpl extends ServiceImpl<MediaMapper, Media> implements
for (Media media : list) {
for (ProgramRequest pro : listPro) {
if (media.getId().compareTo(pro.getIqiyiContentId()) == 0) {
//如果剧头的总集数与下载量一则显示全部下载完成
//如果剧头的总集数与下载量一则显示全部下载完成
if (media.getCurrCount().compareTo(pro.getDownloadCount()) == 0) {
media.setDownloadStatus("全部下载完成");
continue;
......
package com.hui.iqiyi.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.Util.TestFileUtil;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.excel.DownloadExcel;
import com.hui.iqiyi.mapper.MovieMapper;
import com.hui.iqiyi.request.MovieRequest;
import com.hui.iqiyi.request.ProRequest;
......@@ -28,6 +32,7 @@ import java.util.List;
@Primary
public class MovieServiceImpl extends ServiceImpl<MovieMapper, Movie> implements IMovieService {
@Autowired
private MovieMapper movieMapper;
......@@ -48,12 +53,21 @@ public class MovieServiceImpl extends ServiceImpl<MovieMapper, Movie> implements
@Override
public List<Movie> selectAllPopulation(Movie movie) {
return movieMapper.selectAllPopulation(movie);
public List<Movie> selectAllPopulation() {
List<Movie> list= movieMapper.selectAllPopulation();
list.stream().forEach(item->{
if (item.getLocalStatus() == 0)
item.setLocalStatuss("未下载");
if (item.getLocalStatus() == 100)
item.setLocalStatuss("已下载");
});
System.out.printf(JSON.toJSONString(list));
return list;
}
@Override
public List<MovieResponse> selectAllSevenxz(ProRequest proRequest) {
return movieMapper.selectAllSevenxz(proRequest);
}
}
......
......@@ -5,6 +5,7 @@ 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;
......@@ -17,6 +18,7 @@ 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;
......@@ -24,7 +26,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -52,6 +53,8 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
@Resource
private ContentMapper contentMapper;
public Long CurrCount;
@Override
@Transactional
public ReturnBean updateByProgramIds(List<ByIdsRequest> requests) {
......@@ -189,7 +192,7 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
}
@Override
public List<ProgramSyResponse> selectAllSeven(ProRequest proRequest) {
public List<ProgramXRespone> selectAllSeven(ProRequest proRequest) {
return programMapper.selectAllSeven(proRequest);
}
......@@ -222,4 +225,50 @@ public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> impl
}
@Override
public ContentResponse selectAllPrograms() {
List<Integer> integers=programMapper.selectAllPrograms();
ContentResponse response = new ContentResponse();
response.setDrama(integers.get(0));
response.setMonolithic(integers.get(1));
return response;
}
@Override
public List<Program> selectAllProgra(ProgramRequest programRequest) {
CurrCount = 1L;
List<Program> list = null;
try {
list = programMapper.selectAllProgra(programRequest);
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);
for (Program program : list) {
for (ProgramRequest pro : listPro) {
if (program.getId().compareTo(pro.getIqiyiContentId()) == 0) {
//如果剧头的总集数与下载量一至则显示全部下载完成
if (CurrCount.compareTo(pro.getDownloadCount()) == 0) {
program.setDownloadStatus("全部下载完成");
continue;
}
//如果剧头的总集数 大于 下载量 就显示未全部下载
if (CurrCount.compareTo(pro.getDownloadCount()) > 0) {
program.setDownloadStatus("未全部下载");
continue;
}
}
}
//里面是关联查询匹配,如果没有下载记录,就塞入未下载
if (ObjectUtils.isEmpty(program.getDownloadStatus()))
program.setDownloadStatus("未下载");
}
} catch (Exception e) {
throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
}
return list;
}
}
\ No newline at end of file
......
......@@ -16,9 +16,20 @@ spring:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mvc:
async:
request-timeout: 200000
mybatis-plus:
mapper-locations: classpath:mapper/iqiyi/*.xml
logging:
config: classpath:logback.xml
recievers:
shoujianren: jiaohui@topdraw.cn
filePath: D:\java\爱奇艺下载情况.xlsx\
......
<?xml version="1.0" encoding="utf-8" ?>
<!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
<!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 -->
<!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志-->
<!-- 属性描述 scan:性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,
默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 定义日志文件 输入位置 -->
<property name="logPath" value="d:/test_log" />
<!-- 日志最大的历史 30天 -->
<property name="maxHistory" value="30"/>
<logger name="com.hui.iqiyi.controller.MovieController" level="DEBUG" />
<!-- 配置项, 通过此节点配置日志输出位置(控制台、文件、数据库)、输出格式等-->
<!-- ConsoleAppender代表输出到控制台 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<!-- layout代表输出格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</layout>
</appender>
<!-- 日志输出文件 -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</encoder>
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
<!-- 滚动策略,它根据时间来制定滚动策略.既负责滚动也负责触发滚动 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 输出路径 -->
<fileNamePattern>${logPath}/info/%d.log</fileNamePattern>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,
则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除-->
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
<!-- 按照固定窗口模式生成日志文件,当文件大于20MB时,生成新的日志文件。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志。
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${logPath}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy> -->
<!-- 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy> -->
</appender>
<!-- 特殊记录Error日志 -->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 只记录ERROR级别日志,添加范围过滤,可以将该类型的日志特殊记录到某个位置 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logPath}/error/%d.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<!-- 根节点,表名基本的日志级别,里面可以由多个appender规则 -->
<!-- level="info"代表基础日志级别为info -->
<root level="info">
<!-- 引入控制台输出规则 -->
<appender-ref ref="consoleLog" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>
\ No newline at end of file
......@@ -31,12 +31,46 @@
group by contentType,cname order by contentType,cname
</select>
<select id="selectAllCont" resultType="java.lang.Integer">
select count(1) from iqiyi_content where platform_info like '%1%'
union
select count(1) from iqiyi_program where series_flag = 0 and platform_info like '%1%'
</select>
<select id="selectAllContenten" resultType="com.hui.iqiyi.entity.Content" parameterType="com.hui.iqiyi.request.ContentRequest">
select a.*
from iqiyi_content as a
where 1=1
<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 #{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="score != null">
and score = #{score}
</if>
<if test="platformInfo != null">
and platform_info = #{platformInfo}
</if>
<if test="downloadStatus !=null" >
and local_status=#{downloadStatus}
</if>
ORDER BY create_time desc
</select>
<sql id="Where_Cloumn">
<where>
......
......@@ -6,8 +6,6 @@
select im.*
from iqiyi_media as im
left join iqiyi_program as ip on im.id =ip.iqiyi_content_id
LEFT JOIN iqiyi_movie as i on ip.id=i.iqiyi_program_id
where 1=1
<if test="id != null and id != ''">
and id = #{id}
......@@ -36,7 +34,6 @@
<if test="platformInfo != null">
and platform_info = #{platformInfo}
</if>
<if test="follow != null">
and platform_info is not null
</if>
......@@ -61,32 +58,4 @@
</select>
<!-- <select id="selectAllIqIy" resultType="com.hui.iqiyi.entity.Media" parameterType="com.hui.iqiyi.request.MediaRequest">-->
<!-- select im.*-->
<!-- from iqiyi_media as im-->
<!-- where 1=1-->
<!-- <if test="param2.type != null and param2.type != ''">-->
<!-- and type = #{param2.type}-->
<!-- </if>-->
<!-- <if test="param2.name!= null and param2.name!= ''">-->
<!-- AND name = #{param2.name}-->
<!-- </if>-->
<!-- <if test="param2.cname!= null and param2.cname!= ''">-->
<!-- AND cname = #{param2.cname}-->
<!-- </if>-->
<!-- <if test="param2.beginTime != null">-->
<!-- and create_time &gt;= #{param2.beginTime}-->
<!-- </if>-->
<!-- <if test="param2.EndTime != null">-->
<!-- and create_time &lt;= #{param2.EndTime}-->
<!-- </if>-->
<!-- <if test="param2.score != null">-->
<!-- and score = #{param2.score}-->
<!-- </if>-->
<!-- <if test="param2.platform_info != null">-->
<!-- and platform_info = #{param2.platform_info}-->
<!-- </if>-->
<!-- ORDER BY create_time-->
<!-- </select>-->
</mapper>
......
......@@ -23,16 +23,16 @@
</update>
<select id="selectAllPopulation" resultType="com.hui.iqiyi.entity.Movie" parameterType="com.hui.iqiyi.entity.Movie">
<select id="selectAllPopulation" resultType="com.hui.iqiyi.entity.Movie">
select local_status, count(1) as'number',sum(file_size)/1024/1024/1024 as'capacity', sum(duration)/60/60 as'duration'
from iqiyi_movie where local_status >= 0
GROUP BY local_status;
from iqiyi_movie where local_status >= 0 and vid > 0
GROUP BY local_status
</select>
<select id="selectAllSevenxz" resultType="com.hui.iqiyi.response.MovieResponse" parameterType="com.hui.iqiyi.request.ProRequest">
SELECT DATE_FORMAT(p.update_time,"%Y-%m-%d")as day1 ,count(p.id) as TotlFee3 ,
sum(m.file_size)/1024/1024/1024 as TotlSize2,sum(m.duration)/60/60 as TotlDuration4
SELECT DATE_FORMAT(p.update_time,"%Y-%m-%d")as day1 ,count(p.id) as totlFee3 ,
sum(m.file_size)/1024/1024/1024 as totlSize2,sum(m.duration)/60/60 as totlDuration4
FROM iqiyi_program p left join iqiyi_movie m on p.id = m.iqiyi_program_id
<where>
<if test="proRequest.startTime != null">
......
......@@ -53,7 +53,7 @@
</select>
<select id="selectAllSeven" parameterType="com.hui.iqiyi.request.ProRequest" resultType="com.hui.iqiyi.response.ProgramSyResponse">
<select id="selectAllSeven" parameterType="com.hui.iqiyi.request.ProRequest" resultType="com.hui.iqiyi.response.ProgramXRespone">
SELECT DATE_FORMAT(update_time,"%Y-%m-%d")as day ,count(1) as TotlFee ,
sum(file_size)/1024/1024/1024 as TotlSize,sum(duration)/60/60 as TotlDuration
......@@ -82,6 +82,53 @@
group by local_status
</select>
<select id="selectAllPrograms" resultType="java.lang.Integer">
select count(1) from iqiyi_content
union
select count(1) from iqiyi_program where series_flag = 0
</select>
<select id="selectAllProgra" resultType="com.hui.iqiyi.entity.Program" parameterType="com.hui.iqiyi.request.ProgramRequest">
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}
</if>
<if test="cid != null and cid != ''">
and cid = #{cid}
</if>
<if test="name!= null and name!= ''">
AND name like #{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="score != null">
and score = #{score}
</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
</select>
<sql id="Pro_Cloumn">
......
package com.hui.iqiyi;
import com.alibaba.excel.EasyExcel;
import com.hui.iqiyi.Util.TestFileUtil;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.excel.DownloadExcel;
import com.hui.iqiyi.service.IMovieService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class IqiyiApplicationTests {
@Test
void contextLoads() {
}
}
......