Commit a640953a a640953a329a6c122748723187645ca9fd6fe9af by 吕剑

代码初始化 提交

0 parents
Showing 46 changed files with 4135 additions and 0 deletions
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hui</groupId>
<artifactId>iqiyi</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>iqiyi</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<swagger.version>2.9.2</swagger.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--freemarker模板-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!--Mysql依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>iqiyi-inject-managerment</finalName>
<!--配置扫描Mapper-->
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources/config</directory>
<includes>
<include>application.yml</include>
</includes>
</resource>
</resources>
<outputDirectory>${project.build.directory}/config</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- jar包内剔除所有配置文件 -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!--不打入jar包的文件类型或者路径-->
<excludes>
<exclude>config/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.hui;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
public class
CodeGenerator {
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("jobob");
gc.setOpen(false);
// gc.setSwagger2(true); 实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://139.196.37.202:3306/hyperion?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("Topdraw1qaz");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(scanner("模块名"));
pc.setParent("com.hui");
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
// 如果模板引擎是 freemarker
String templatePath = "/templates/mapper.xml.ftl";
// 如果模板引擎是 velocity
// String templatePath = "/templates/mapper.xml.vm";
// 自定义输出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定义配置会被优先输出
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
/*
cfg.setFileCreate(new IFileCreate() {
@Override
public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
// 判断自定义文件夹是否需要创建
checkDir("调用默认方法创建的目录,自定义目录用");
if (fileType == FileType.MAPPER) {
// 已经生成 mapper 文件判断存在,不想重新生成返回 false
return !new File(filePath).exists();
}
// 允许生成模板文件
return true;
}
});
*/
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
// templateConfig.setEntity("templates/entity2.java");
// templateConfig.setService();
// templateConfig.setController();
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 公共父类
// 写于父类中的公共字段
strategy.setSuperEntityColumns("id");
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
}
\ No newline at end of file
package com.hui;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.hui")
public class IqiyiApplication {
public static void main(String[] args) {
SpringApplication.run(IqiyiApplication.class, args);
}
}
package com.hui.iqiyi.Util;
import lombok.Data;
/**
* 公共的返回类
*/
@Data
public class ReturnBean {
private Integer success;//返回1成功,0失败
private String msg;
public static ReturnBean setSuccessInfo(String msg) {
return new ReturnBean(1, msg);
}
public static ReturnBean errorSuccessInfo(String msg) {
return new ReturnBean(0, msg);
}
public ReturnBean(Integer success, String msg) {
this.success = success;
this.msg = msg;
}
}
package com.hui.iqiyi.Util;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.entity.Program;
import lombok.Data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 返回的工具类
*/
@Data
public class ReturnProgram<T> extends PageInfo<T> {
private Map<Program, List<Movie>> programMovieMap = new HashMap<>();
private List<T> list;
}
package com.hui.iqiyi.config;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppPagingRequest {
@ApiModelProperty(value = "pageNo 页数 从1开始", example = "1", required = true)
private Integer pageNo = 1;
@ApiModelProperty(value = "pageSize 条数", example = "10", required = true)
private Integer pageSize = 10;
public static Page getPage(AppPagingRequest request) {
return new Page(request.getPageNo(), request.getPageSize());
}
}
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hui.iqiyi.config;
import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* api页面 /doc.html
*
* @author Zheng Jie
* @date 2018-11-23
*/
@Configuration
@EnableSwagger2
//@ComponentScan(basePackages = "com.springboot.demo.controller")//配置扫描的基础包
class SwaggerConfiguration {
/**
* swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
* 在构建文档的时候 只显示添加了@Api注解的类
*
* @return
*/
@Bean //作为bean纳入spring容器
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.paths(PathSelectors.any())
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//只显示添加了@Api注解的类
.build();
}
/**
* 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
*
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("爱奇艺注入下载服务系统")
.description("API接口文档,及相关接口的说明")
.version("1.0.0")
.build();
}
}
\ No newline at end of file
package com.hui.iqiyi.controller;
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.Media;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.MediaRequest;
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.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
/**
* <p>
* 前端控制器
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Api(tags = "查询单集列表")
@RestController
@RequestMapping("/iqiyi/content")
public class ContentController {
@Resource
private IContentService iContentService;
@PostMapping("/selectAllSingle")
@ApiOperation("查询单集")
@ResponseBody
public PageInfo<Content> selectAllSingle(ContentRequest request) {
PageHelper.startPage(request.getPageNo(), request.getPageSize());
return new PageInfo(iContentService.selectAllSingle(request, request.getId()));
}
@GetMapping("/selectAllType")
@ApiOperation("各类型统计数量")
@ResponseBody
public List<ContentResponse> selectAllfollow(ContentResponse contentResponse) {
return iContentService.selectAllType(contentResponse);
}
@GetMapping("/selectAllCont")
@ApiOperation("吉林片单")
@ResponseBody
public ContentResponse selectAllCont() {
return iContentService.selectAllCont();
}
}
package com.hui.iqiyi.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.service.IMediaService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* VIEW 前端控制器
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Api(tags = "爱奇艺查询")
@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);
}
}
package com.hui.iqiyi.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.MovieResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import com.hui.iqiyi.service.IMovieService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Api(tags = "查询总下载")
@RestController
@RequestMapping("/iqiyi/movie")
public class MovieController {
@Autowired
private IMovieService iMovieService;
@GetMapping("/selectAllPopulation")
@ApiOperation("查询总下载")
@ResponseBody
public List<Movie> selectAllPopulation(Movie Movie) {
return iMovieService.selectAllPopulation(Movie);
}
@GetMapping("/selectAllSevenXz")
@ApiOperation("近七日同步情况")
@ResponseBody
public List<MovieResponse> selectAllSeven(ProRequest proRequest) {
return iMovieService.selectAllSevenxz(proRequest);
}
}
package com.hui.iqiyi.controller;
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.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.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.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Api(tags = "添加关注")
@RestController
@RequestMapping("/iqiyi/program")
public class ProgramController {
@Resource
private IProgramService iProgramService;
@PostMapping("/addFollow")
@ApiOperation("添加关注")
public ReturnBean addFollow(@RequestBody List<ByIdsRequest> requests) {
return iProgramService.updateByProgramIds(requests);
}
@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("/selectAllSeven")
@ApiOperation("近七日下载情况")
@ResponseBody
public List<ProgramSyResponse> selectAllSeven(ProRequest proRequest) {
return iProgramService.selectAllSeven(proRequest);
}
@GetMapping("/selectAllProgramCount")
@ApiOperation("关注平台数据")
@ResponseBody
public ProgramSyResponse selectAllProgramCount() {
return iProgramService.selectAllProgramCount();
}
}
package com.hui.iqiyi.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("iqiyi_content")
public class Content implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 外部id,爱奇艺的id
*/
private Long externalId;
/**
* 类型
*/
private String elementType;
/**
* 全局内容标识
*/
private String contentId;
/**
* 节目名称
*/
private String name;
/**
* 上映年份(YYYY)
*/
private String year;
/**
* 首播日期(YYYYMMDD)
*/
private String publishTime;
/**
* 节目描述
*/
private String desc;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 关联标签
*/
private String tags;
/**
* 是否独播 1:是;其他:否
*/
private Integer excl;
/**
* 专辑类型 1:来源专辑;0:普通专辑
*/
private Integer stype;
/**
* 一句话看点
*/
private String focus;
/**
* 封面图,使用时需要拼接尺寸,结合imgPod字段能使用
*/
private String picUrl;
/**
* 封面图片是否支持按需生产 0:不支持;1:支持
*/
private Integer imgPod;
/**
* 所属频道ID
*/
private Long cid;
/**
* 频道名称
*/
private String cname;
/**
* 人物信息(JSON)
*/
private String persons;
/**
* 作曲
*/
private String composers;
/**
* 主持人
*/
private String hosters;
/**
* 配音
*/
private String dubbers;
/**
* 制片人
*/
private String makers;
/**
* 明星
*/
private String stars;
/**
* 出品人
*/
private String producers;
/**
* 作词
*/
private String songWriters;
/**
* 嘉宾
*/
private String guesters;
/**
* 编剧
*/
private String writers;
/**
* 导演
*/
private String directors;
/**
* 主演(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String mainActors;
/**
* 演员(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String actors;
/**
* 短标题
*/
private String sname;
/**
* 电视剧等多剧集的视频总数量
*/
private Integer total;
/**
* 专辑已有视频的最大集数,不严格等于已上线的视频数量
*/
private Integer currCount;
/**
* 是否收费
*/
private Integer isCharge;
/**
* VIP信息节点(JSON)
*/
private String vipInfo;
/**
* 是否会员节目 0:非会员;1:会员
*/
private Integer isVip;
/**
* 是否点播节目 0:非点播;1:点播
*/
private Integer isTvod;
/**
* 是否点播券节目 0:非点播券;1:点播券
*/
private Integer isCoupon;
/**
* 是否点播套餐节目 0:非点播套餐;1:点播套餐
*/
private Integer isPkg;
/**
* 点播节目原价,仅在is_tvod为1时才有这个字段,单位为分
*/
private Integer orgPrc;
/**
* 有效期,仅在is_tvod为1时才有这个字段,24h、30d
*/
private String validTime;
/**
* 是否支持是看 1:支持;0:不支持
*/
private Integer supportProb;
/**
* 试看时长,单位毫秒
*/
private Integer probDuration;
/**
* 国家地区,多个地区以英文逗号分隔
*/
private String country;
/**
* 语言,多个语言以英文逗号分隔
*/
private String language;
/**
* 索引名称
*/
private String searchName;
/**
* 用户评分
*/
private String score;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer syncStatus;
/**
* 同步平台,分割
*/
private String platformInfo;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 扩展字段
*/
private List<Long> ContentIdList;
}
package com.hui.iqiyi.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* VIEW
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("iqiyi_media")
public class Media implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String contentId;
private Long type;
private String name;
private String year;
private String publishTime;
private Integer status;
private String tags;
private Integer excl;
private String focus;
private String picUrl;
private Integer imgPod;
private Long cid;
private String cname;
private String composers;
private String hosters;
private String dubbers;
private String makers;
private String stars;
private String producers;
private String songWriters;
private String guesters;
private String writers;
private String directors;
private String actors;
private String sname;
private Integer isCharge;
private String vipInfo;
private Integer isVip;
private Integer isTvod;
private Integer isCoupon;
private Integer isPkg;
private Integer orgPrc;
private String validTime;
private Integer supportProb;
private String country;
private String language;
private String searchName;
private String score;
private Integer syncStatus;
private String desc;
private Long stype;
private String persons;
private Long total;
private Long currCount;
private Integer probDuration;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private String beginTime;
private String EndTime;
private Integer platformInfo;
/**
* 标识下载状态
*/
private String downloadStatus;
}
package com.hui.iqiyi.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("iqiyi_movie")
public class Movie implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 码流id
*/
private String vid;
/**
* 类型
*/
private String elementType;
/**
* program对象的父节点series对象
*/
private String parentId;
/**
* 内部关联关系id,iqiyi_program表id
*/
private Long iqiyiProgramId;
/**
* tar包下载地址
*/
private String url;
/**
* tar包大小(单位: Byte)
*/
private Long fileSize;
/**
* 码流时长
*/
private Integer duration;
/**
* 清晰度:1080P、720P等
*/
private String bitrate;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 本地保存的地址
*/
private String localPath;
/**
* 本地保存ftp的地址
*/
private String localFtpPath;
/**
* 本地状态:0 未下载(需要重新下载);10 下载中;-100 下载失败;100 下载成功;200 成功回调
*/
private Integer localStatus;
/**
* md5计算
*/
private String md5;
/**
* 本地下载的文件大小
*/
private Long localFileSize;
/**
* 下载重试次数
*/
private Integer retryTimes;
/**
* 下载优先级
*/
private Integer priority;
/**
* 下载错误描述
*/
private String errorDescription;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
private Long number;
private Long capacity;
}
package com.hui.iqiyi.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("iqiyi_program")
public class Program implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 外部id,爱奇艺的id
*/
private Long externalId;
/**
* 全局内容标识
*/
private String contentId;
/**
* 类型
*/
private String elementType;
/**
* program对象的父节点series对象
*/
private String parentId;
/**
* 内部关联关系id,iqiyi_content表id
*/
private Long iqiyiContentId;
/**
* 区分单视频和剧集
*/
private Integer seriesFlag;
/**
* 节目名称
*/
private String name;
/**
* 国家地区。多个地区以英文逗号分隔
*/
private String country;
/**
* 语言。多个语言以英文逗号分隔
*/
private String language;
/**
* 上映年份(YYYY)
*/
private String year;
/**
* 首播日期(YYYYMMDD)
*/
private String publishTime;
/**
* 节目描述
*/
//private String desc;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 关联标签
*/
private String tags;
/**
* 一句话看点
*/
private String focus;
/**
* 播放时长(单位为分钟)
*/
private Integer length;
/**
* 封面图,使用时需要拼接尺寸,结合imgPod字段能使用
*/
private String picUrl;
/**
* 封面图片是否支持按需生产 0:不支持;1:支持
*/
private Integer imgPod;
/**
* 所属频道ID
*/
private Integer cid;
/**
* 频道名称
*/
private String cname;
/**
* 是否独播 1:是;其他:否
*/
private Integer excl;
/**
* 是否3D:1:是,0:否
*/
private Integer type3d;
/**
* 视频内容类型,枚举参考附录3.2、内容类型
*/
private Integer contentType;
/**
* 人物信息(JSON)
*/
private String persons;
/**
* 作曲
*/
private String composers;
/**
* 主持人
*/
private String hosters;
/**
* 配音
*/
private String dubbers;
/**
* 制片人
*/
private String makers;
/**
* 明星
*/
private String stars;
/**
* 出品人
*/
private String producers;
/**
* 作词
*/
private String songWriters;
/**
* 嘉宾
*/
private String guesters;
/**
* 编剧
*/
private String writers;
/**
* 导演
*/
private String directors;
/**
* 主演(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String mainActors;
/**
* 演员(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String actors;
/**
* 短标题
*/
private String sname;
/**
* 是否收费
*/
private Integer isCharge;
/**
* VIP信息节点(JSON)
*/
private String vipInfo;
/**
* 是否会员节目 0:非会员;1:会员
*/
private Integer isVip;
/**
* 是否点播节目 0:非点播;1:点播
*/
private Integer isTvod;
/**
* 是否点播券节目 0:非点播券;1:点播券
*/
private Integer isCoupon;
/**
* 是否点播套餐节目 0:非点播套餐;1:点播套餐
*/
private Integer isPkg;
/**
* 点播节目原价,仅在is_tvod为1时才有这个字段,单位为分
*/
private Integer orgPrc;
/**
* 有效期,仅在is_tvod为1时才有这个字段,24h、30d
*/
private String validTime;
/**
* 是否支持试看 1:支持;0:不支持
*/
private Integer supportProb;
/**
* 试看时长,单位毫秒
*/
private Integer probDuration;
/**
* 索引名称
*/
private String searchName;
/**
* 排序辅助字段
*/
private Integer multiOrder;
/**
* 当前集数
*/
private Integer volumnCount;
/**
* 用户评分
*/
private String score;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer syncStatus;
/**
* 同步平台,分割
*/
private String platformInfo;
/**
* 码流信息同步标识:0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer fileStatus;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.hui.iqiyi.mapper;
import com.hui.iqiyi.entity.Content;
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.response.ContentResponse;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface ContentMapper extends BaseMapper<Content> {
/**
* 修改剧头表的公共方法
*
* @param content
* @return
*/
int updateContent(Content content);
/**
* 查询单集
*
* @param request
* @param id
* @return
*/
List<Content> selectAllSingle(ContentRequest request, Long id);
/**
* 各类型统计数量
*
* @param contentResponse
* @return
*/
List<ContentResponse> selectAllType(ContentResponse contentResponse);
/**
* 吉林单片
*
* @param
* @return
*/
List<Integer> selectAllCont();
}
package com.hui.iqiyi.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hui.iqiyi.entity.Media;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hui.iqiyi.request.MediaRequest;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* VIEW Mapper 接口
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Repository
@Mapper
public interface MediaMapper extends BaseMapper<Media> {
/**
* 查询所有剧集
*
* @param iqiyiContent
* @return
*/
List<Media> selectAllIqIy(MediaRequest iqiyiContent);
/**
* 查询平台所关注的信息
*
* @param info
* @return
*/
List<Media> selectAllfollow(MediaRequest info);
}
package com.hui.iqiyi.mapper;
import com.hui.iqiyi.entity.Movie;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.MovieResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 电影表
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Repository
@Mapper
public interface MovieMapper extends BaseMapper<Movie> {
/**
* 修改优先级分开写,因为需要关联更新
*
* @return
*/
int updateMoviePriority(Movie movie);
//查询总体下载情况
List<Movie> selectAllPopulation(Movie movie);
/**
* 近七日同步
*
* @return
*/
List<MovieResponse> selectAllSevenxz(@Param("proRequest") ProRequest proRequest);
}
package com.hui.iqiyi.mapper;
import com.hui.iqiyi.entity.Program;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hui.iqiyi.request.ByIdsRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.request.ProgramRequest;
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;
/**
* <p>
* Mapper 接口
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface ProgramMapper extends BaseMapper<Program> {
/**
* 根据 给电影添加关注
*/
int updateFilm(Long id);
/**
* 根据 id给
*/
int updatePla(Long id);
/**
*
*/
int updateTeleplay(Long id);
/**
* 获取每一集的下载状态
*
* @return
*/
List<ProgramRequest> selectDownload(ProgramRequest program);
/**
* 返回Program信息
*/
List<ProgramRequest> selectProgramList(ProgramRequest program);
/**
* 返回Program信息,连带着下载状态
*/
List<ProgramResponse> selectProgramDloadList(ProgramRequest program);
/**
* 近七日下载
*
* @return
*/
List<ProgramSyResponse> selectAllSeven(@Param("proRequest") ProRequest proRequest);
/**
* 关注平台数据
*
* @return
*/
List<ProgramQBRequest> selectAllProgramCount();
}
package com.hui.iqiyi.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ByIdsRequest {
@ApiModelProperty(value = "Id", required = true)
private Long id;
@ApiModelProperty(value = "type", required = true)
private Integer type;
}
package com.hui.iqiyi.request;
import com.hui.iqiyi.config.AppPagingRequest;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class ContentRequest extends AppPagingRequest {
private Long id;
/**
* 外部id,爱奇艺的id
*/
private Long externalId;
/**
* 类型
*/
private String elementType;
/**
* 全局内容标识
*/
private String contentId;
/**
* 节目名称
*/
private String name;
/**
* 上映年份(YYYY)
*/
private String year;
/**
* 首播日期(YYYYMMDD)
*/
private String publishTime;
/**
* 节目描述
*/
private String desc;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 关联标签
*/
private String tags;
/**
* 是否独播 1:是;其他:否
*/
private Integer excl;
/**
* 专辑类型 1:来源专辑;0:普通专辑
*/
private Integer stype;
/**
* 一句话看点
*/
private String focus;
/**
* 封面图,使用时需要拼接尺寸,结合imgPod字段能使用
*/
private String picUrl;
/**
* 封面图片是否支持按需生产 0:不支持;1:支持
*/
private Integer imgPod;
/**
* 所属频道ID
*/
private Long cid;
/**
* 频道名称
*/
private String cname;
/**
* 人物信息(JSON)
*/
private String persons;
/**
* 作曲
*/
private String composers;
/**
* 主持人
*/
private String hosters;
/**
* 配音
*/
private String dubbers;
/**
* 制片人
*/
private String makers;
/**
* 明星
*/
private String stars;
/**
* 出品人
*/
private String producers;
/**
* 作词
*/
private String songWriters;
/**
* 嘉宾
*/
private String guesters;
/**
* 编剧
*/
private String writers;
/**
* 导演
*/
private String directors;
/**
* 主演(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String mainActors;
/**
* 演员(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String actors;
/**
* 短标题
*/
private String sname;
/**
* 电视剧等多剧集的视频总数量
*/
private Integer total;
/**
* 专辑已有视频的最大集数,不严格等于已上线的视频数量
*/
private Integer currCount;
/**
* 是否收费
*/
private Integer isCharge;
/**
* VIP信息节点(JSON)
*/
private String vipInfo;
/**
* 是否会员节目 0:非会员;1:会员
*/
private Integer isVip;
/**
* 是否点播节目 0:非点播;1:点播
*/
private Integer isTvod;
/**
* 是否点播券节目 0:非点播券;1:点播券
*/
private Integer isCoupon;
/**
* 是否点播套餐节目 0:非点播套餐;1:点播套餐
*/
private Integer isPkg;
/**
* 点播节目原价,仅在is_tvod为1时才有这个字段,单位为分
*/
private Integer orgPrc;
/**
* 有效期,仅在is_tvod为1时才有这个字段,24h、30d
*/
private String validTime;
/**
* 是否支持是看 1:支持;0:不支持
*/
private Integer supportProb;
/**
* 试看时长,单位毫秒
*/
private Integer probDuration;
/**
* 国家地区,多个地区以英文逗号分隔
*/
private String country;
/**
* 语言,多个语言以英文逗号分隔
*/
private String language;
/**
* 索引名称
*/
private String searchName;
/**
* 用户评分
*/
private String score;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer syncStatus;
/**
* 同步平台,分割
*/
private String platformInfo;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 扩展字段
*/
private List<Long> ContentIdList;
/**
* 标识单集剧集
*/
private Integer SeriesFlag;
}
package com.hui.iqiyi.request;
import java.time.LocalDateTime;
import com.hui.iqiyi.config.AppPagingRequest;
import lombok.Data;
/**
* <p>
* VIEW
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
public class MediaRequest extends AppPagingRequest {
private Long id;
private String contentId;
private Long type;
private String name;
private String year;
private String publishTime;
private Integer status;
private String tags;
private Integer excl;
private String focus;
private String picUrl;
private Integer imgPod;
private Long cid;
private String cname;
private String composers;
private String hosters;
private String dubbers;
private String makers;
private String stars;
private String producers;
private String songWriters;
private String guesters;
private String writers;
private String directors;
private String actors;
private String sname;
private Integer isCharge;
private String vipInfo;
private Integer isVip;
private Integer isTvod;
private Integer isCoupon;
private Integer isPkg;
private Integer orgPrc;
private String validTime;
private Integer supportProb;
private String country;
private String language;
private String searchName;
private String score;
private Integer syncStatus;
private String desc;
private Long stype;
private String persons;
private Long total;
private Long currCount;
private Integer probDuration;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private Long platformInfo;
private String beginTime;
private String EndTime;
//
private Integer downloadStatus;
//是否是关注列表
private Integer follow;
}
package com.hui.iqiyi.request;
import com.hui.iqiyi.config.AppPagingRequest;
import com.hui.iqiyi.entity.Movie;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class MovieRequest extends AppPagingRequest {
private Integer id;
/**
* 码流id
*/
private String vid;
/**
* 类型
*/
private String elementType;
/**
* program对象的父节点series对象
*/
private String parentId;
/**
* 内部关联关系id,iqiyi_program表id
*/
private Long iqiyiProgramId;
/**
* tar包下载地址
*/
private String url;
/**
* tar包大小(单位: Byte)
*/
private Long fileSize;
/**
* 码流时长
*/
private Integer duration;
/**
* 清晰度:1080P、720P等
*/
private String bitrate;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 本地保存的地址
*/
private String localPath;
/**
* 本地保存ftp的地址
*/
private String localFtpPath;
/**
* 本地状态:0 未下载(需要重新下载);10 下载中;-100 下载失败;100 下载成功;200 成功回调
*/
private Integer localStatus;
/**
* md5计算
*/
private String md5;
/**
* 本地下载的文件大小
*/
private Long localFileSize;
/**
* 下载重试次数
*/
private Integer retryTimes;
/**
* 下载优先级
*/
private Integer priority;
/**
* 下载错误描述
*/
private String errorDescription;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 扩展字段,关联主表ID
* 用于关注更新等操作
*/
private Long contentId;
/**
* 扩展字段,关联主表ID
* 用于关注更新等操作list
*/
private List<Long> contentIdList;
}
package com.hui.iqiyi.request;
import lombok.Data;
@Data
public class ProRequest {
private String startTime;
private String endTime;
}
package com.hui.iqiyi.request;
import com.hui.iqiyi.config.AppPagingRequest;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
public class ProgramRequest extends AppPagingRequest {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 外部id,爱奇艺的id
*/
private Long externalId;
/**
* 全局内容标识
*/
private String contentId;
/**
* 类型
*/
private String elementType;
/**
* program对象的父节点series对象
*/
private String parentId;
/**
* 内部关联关系id,iqiyi_content表id
*/
private Long iqiyiContentId;
/**
* 区分单视频和剧集
*/
private Integer seriesFlag;
/**
* 节目名称
*/
private String name;
/**
* 国家地区。多个地区以英文逗号分隔
*/
private String country;
/**
* 语言。多个语言以英文逗号分隔
*/
private String language;
/**
* 上映年份(YYYY)
*/
private String year;
/**
* 首播日期(YYYYMMDD)
*/
private String publishTime;
/**
* 节目描述
*/
private String desc;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 关联标签
*/
private String tags;
/**
* 一句话看点
*/
private String focus;
/**
* 播放时长(单位为分钟)
*/
private Integer length;
/**
* 封面图,使用时需要拼接尺寸,结合imgPod字段能使用
*/
private String picUrl;
/**
* 封面图片是否支持按需生产 0:不支持;1:支持
*/
private Integer imgPod;
/**
* 所属频道ID
*/
private Integer cid;
/**
* 频道名称
*/
private String cname;
/**
* 是否独播 1:是;其他:否
*/
private Integer excl;
/**
* 是否3D:1:是,0:否
*/
private Integer type3d;
/**
* 视频内容类型,枚举参考附录3.2、内容类型
*/
private Integer contentType;
/**
* 人物信息(JSON)
*/
private String persons;
/**
* 作曲
*/
private String composers;
/**
* 主持人
*/
private String hosters;
/**
* 配音
*/
private String dubbers;
/**
* 制片人
*/
private String makers;
/**
* 明星
*/
private String stars;
/**
* 出品人
*/
private String producers;
/**
* 作词
*/
private String songWriters;
/**
* 嘉宾
*/
private String guesters;
/**
* 编剧
*/
private String writers;
/**
* 导演
*/
private String directors;
/**
* 主演(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String mainActors;
/**
* 演员(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String actors;
/**
* 短标题
*/
private String sname;
/**
* 是否收费
*/
private Integer isCharge;
/**
* VIP信息节点(JSON)
*/
private String vipInfo;
/**
* 是否会员节目 0:非会员;1:会员
*/
private Integer isVip;
/**
* 是否点播节目 0:非点播;1:点播
*/
private Integer isTvod;
/**
* 是否点播券节目 0:非点播券;1:点播券
*/
private Integer isCoupon;
/**
* 是否点播套餐节目 0:非点播套餐;1:点播套餐
*/
private Integer isPkg;
/**
* 点播节目原价,仅在is_tvod为1时才有这个字段,单位为分
*/
private Integer orgPrc;
/**
* 有效期,仅在is_tvod为1时才有这个字段,24h、30d
*/
private String validTime;
/**
* 是否支持试看 1:支持;0:不支持
*/
private Integer supportProb;
/**
* 试看时长,单位毫秒
*/
private Integer probDuration;
/**
* 索引名称
*/
private String searchName;
/**
* 排序辅助字段
*/
private Integer multiOrder;
/**
* 当前集数
*/
private Integer volumnCount;
/**
* 用户评分
*/
private String score;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer syncStatus;
/**
* 同步平台,分割
*/
private String platformInfo;
/**
* 码流信息同步标识:0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer fileStatus;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 扩展字段
*/
private List<Long> ContentIdList;
/**
* 扩展字段
*/
private Long downloadCount;
/**
* 下载状态
*/
private String localStatus;
}
package com.hui.iqiyi.response;
import lombok.Data;
@Data
public class ContentResponse {
private Long contentType;
private String cname;
private Long num;
//剧集
private Integer Drama;
//单片
private Integer monolithic;
}
package com.hui.iqiyi.response;
import lombok.Data;
import java.util.Date;
@Data
public class MovieResponse {
/**
* 清晰度:1080P、720P等
*/
private String bitrate;
/**
* 本地保存的地址
*/
private String localPath;
/**
* maliushichang-
*/
private Integer Duration;
private Date day1;
private Double TotlSize2;
private Long TotlFee3;
private Double TotlDuration4;
}
package com.hui.iqiyi.response;
import lombok.Data;
@Data
public class ProgramQBRequest {
//状态
private Long localStatus;
//数量
private Long totalFee;
//容量
private Double totleSize;
//时长
private Double totalduration;
}
package com.hui.iqiyi.response;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Data
public class ProgramResponse {
private Long id;
/**
* 外部id,爱奇艺的id
*/
private Long externalId;
/**
* 全局内容标识
*/
private String contentId;
/**
* 类型
*/
private String elementType;
/**
* program对象的父节点series对象
*/
private String parentId;
/**
* 内部关联关系id,iqiyi_content表id
*/
private Long iqiyiContentId;
/**
* 区分单视频和剧集
*/
private Integer seriesFlag;
/**
* 节目名称
*/
private String name;
/**
* 国家地区。多个地区以英文逗号分隔
*/
private String country;
/**
* 语言。多个语言以英文逗号分隔
*/
private String language;
/**
* 上映年份(YYYY)
*/
private String year;
/**
* 首播日期(YYYYMMDD)
*/
private String publishTime;
/**
* 节目描述
*/
private String desc;
/**
* 0:失效;1:生效
*/
private Integer status;
/**
* 关联标签
*/
private String tags;
/**
* 一句话看点
*/
private String focus;
/**
* 播放时长(单位为分钟)
*/
private Integer length;
/**
* 封面图,使用时需要拼接尺寸,结合imgPod字段能使用
*/
private String picUrl;
/**
* 封面图片是否支持按需生产 0:不支持;1:支持
*/
private Integer imgPod;
/**
* 所属频道ID
*/
private Integer cid;
/**
* 频道名称
*/
private String cname;
/**
* 是否独播 1:是;其他:否
*/
private Integer excl;
/**
* 是否3D:1:是,0:否
*/
private Integer type3d;
/**
* 视频内容类型,枚举参考附录3.2、内容类型
*/
private Integer contentType;
/**
* 人物信息(JSON)
*/
private String persons;
/**
* 作曲
*/
private String composers;
/**
* 主持人
*/
private String hosters;
/**
* 配音
*/
private String dubbers;
/**
* 制片人
*/
private String makers;
/**
* 明星
*/
private String stars;
/**
* 出品人
*/
private String producers;
/**
* 作词
*/
private String songWriters;
/**
* 嘉宾
*/
private String guesters;
/**
* 编剧
*/
private String writers;
/**
* 导演
*/
private String directors;
/**
* 主演(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String mainActors;
/**
* 演员(JSONArray)character:角色名称;name:演员名称;id:演员id
*/
private String actors;
/**
* 短标题
*/
private String sname;
/**
* 是否收费
*/
private Integer isCharge;
/**
* VIP信息节点(JSON)
*/
private String vipInfo;
/**
* 是否会员节目 0:非会员;1:会员
*/
private Integer isVip;
/**
* 是否点播节目 0:非点播;1:点播
*/
private Integer isTvod;
/**
* 是否点播券节目 0:非点播券;1:点播券
*/
private Integer isCoupon;
/**
* 是否点播套餐节目 0:非点播套餐;1:点播套餐
*/
private Integer isPkg;
/**
* 点播节目原价,仅在is_tvod为1时才有这个字段,单位为分
*/
private Integer orgPrc;
/**
* 有效期,仅在is_tvod为1时才有这个字段,24h、30d
*/
private String validTime;
/**
* 是否支持试看 1:支持;0:不支持
*/
private Integer supportProb;
/**
* 试看时长,单位毫秒
*/
private Integer probDuration;
/**
* 索引名称
*/
private String searchName;
/**
* 排序辅助字段
*/
private Integer multiOrder;
/**
* 当前集数
*/
private Integer volumnCount;
/**
* 用户评分
*/
private String score;
/**
* 同步标识 0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer syncStatus;
/**
* 同步平台,分割
*/
private String platformInfo;
/**
* 码流信息同步标识:0:未进行同步,1:同步成功,-1: 同步失败
*/
private Integer fileStatus;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 扩展字段
*/
private List<Long> ContentIdList;
/**
* 扩展字段
*/
private Long downloadCount;
/**
* 下载状态
*/
private String localStatus;
//剧集资源
List<MovieResponse> movieResponseList;
}
package com.hui.iqiyi.response;
import lombok.Data;
@Data
public class ProgramSyResponse {
private String day;
//剧集
private Integer Drama;
//单片
private Integer monolithic;
//下载数量
private Long xzNumbe;
//下载容量
private Double xzSize;
//下载时长
private Double totlDuration;
//下载失败的数量
private Long failSum;
//同步未下载数量
private Long totlSize;
//未同步介质数量
private Long totlFee;
}
package com.hui.iqiyi.service;
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.response.ContentResponse;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface IContentService extends IService<Content> {
/**
* 修改剧头表的公共方法
*
* @param content
* @return
*/
ReturnBean updateContent(Content content);
/**
* 查询单集
*
* @param request
* @param id
* @return
*/
List<Content> selectAllSingle(ContentRequest request, Long id);
/**
* 各类型统计数量
*
* @param contentResponse
* @return
*/
List<ContentResponse> selectAllType(ContentResponse contentResponse);
/**
* 吉林单片
*
* @param
* @return
*/
ContentResponse selectAllCont();
}
package com.hui.iqiyi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hui.iqiyi.entity.Media;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hui.iqiyi.request.MediaRequest;
import java.util.List;
/**
* <p>
* VIEW 服务类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface IMediaService extends IService<Media> {
/**
* 查询所有剧集
*
* @param iqiyiContent
* @return
*/
IPage<Media> selectAllIqIy(MediaRequest iqiyiContent);
/**
* 查询所有剧集
*
* @param iqiyiContent
* @return
*/
List<Media> selectAllIqIyList(MediaRequest iqiyiContent);
/**
* 查询平台所关注的信息
*
* @param info
* @return
*/
List<Media> selectAllfollow(MediaRequest info);
}
package com.hui.iqiyi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Movie;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hui.iqiyi.request.MovieRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.MovieResponse;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface IMovieService extends IService<Movie> {
/**
* 修改优先级分开写,因为需要关联更新
*
* @return
*/
ReturnBean updateMoviePriority(Movie movie);
//查询总体下载情况
List<Movie> selectAllPopulation(Movie movie);
/**
* 近七日同步
*
* @return
*/
List<MovieResponse> selectAllSevenxz(ProRequest proRequest);
}
package com.hui.iqiyi.service;
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.MovieResponse;
import com.hui.iqiyi.response.ProgramResponse;
import com.hui.iqiyi.response.ProgramSyResponse;
import org.springframework.context.annotation.Primary;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
public interface IProgramService extends IService<Program> {
//最新添加关注
ReturnBean updateByProgramIds(List<ByIdsRequest> requests);
/**
* 获取每一集的下载状态
*
* @return
*/
List<ProgramRequest> selectDownload(ProgramRequest program);
/**
* 查询关注平台信息
*
* @param program
* @return
*/
Map<Program, List<Movie>> selectProMov(Program program, int PageNo, int PageSize);
/**
* 返回Program信息
*/
List<ProgramRequest> selectProgramList(ProgramRequest program);
/**
* 返回Program信息,连带着下载状态
*/
List<ProgramResponse> selectProgramDloadList(ProgramRequest program);
/**
* 近七日下载
*
* @return
*/
List<ProgramSyResponse> selectAllSeven(ProRequest proRequest);
/**
* 关注平台数据
*
* @param
* @return
*/
ProgramSyResponse selectAllProgramCount();
}
package com.hui.iqiyi.service.impl;
import com.hui.iqiyi.Util.ReturnBean;
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.request.ContentRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hui.iqiyi.service.IMovieService;
import com.hui.iqiyi.service.IProgramService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Service
@Primary
public class ContentServiceImpl extends ServiceImpl<ContentMapper, Content> implements IContentService {
@Resource
private ContentMapper contentMapper;
@Autowired
private IContentService iContentService;
@Autowired
private IProgramService iProgramService;
@Autowired
private IMovieService iMovieService;
@Override
public ReturnBean updateContent(Content content) {
System.out.println("---------------------更新" + content.toString());
if (ObjectUtils.isEmpty(content))
throw new RuntimeException("传入的信息不能为空!");
try {
if (contentMapper.updateContent(content) == 0)
ReturnBean.errorSuccessInfo("更新失败!");
} catch (Exception e) {
throw new RuntimeException("更新表头出现错误!错误信息如下" + e.getMessage());
}
return ReturnBean.setSuccessInfo("更新成功!");
}
//查询单集列表
@Override
public List<Content> selectAllSingle(ContentRequest request, Long id) {
return contentMapper.selectAllSingle(request, id);
}
@Override
public List<ContentResponse> selectAllType(ContentResponse contentResponse) {
return contentMapper.selectAllType(contentResponse);
}
@Override
public ContentResponse selectAllCont() {
List<Integer> integers = contentMapper.selectAllCont();
ContentResponse response = new ContentResponse();
response.setDrama(integers.get(1));
response.setMonolithic(integers.get(0));
return response;
}
}
package com.hui.iqiyi.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hui.iqiyi.config.AppPagingRequest;
import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.mapper.MediaMapper;
import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.service.IMediaService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hui.iqiyi.service.IProgramService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* VIEW 服务实现类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
/*
继续改 参数 返回值
*/
@Service
@Primary
public class MediaServiceImpl extends ServiceImpl<MediaMapper, Media> implements IMediaService {
@Autowired
private MediaMapper mediaMapper;
@Autowired
private IProgramService programService;
@Override
public IPage<Media> selectAllIqIy(MediaRequest iqiyiContent) {
try {
// return mediaMapper.selectAllIqIy(AppPagingRequest.getPage(iqiyiContent),iqiyiContent);
} catch (Exception e) {
throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
}
return null;
}
@Override
public List<Media> selectAllIqIyList(MediaRequest iqiyiContent) {
List<Media> list = null;
try {
list = mediaMapper.selectAllIqIy(iqiyiContent);
if (list.size() == 0)
return list;
ProgramRequest programRequest = new ProgramRequest();
programRequest.setContentIdList(list.stream().map(Long -> Long.getId()).collect(Collectors.toList()));
List<ProgramRequest> listPro = programService.selectDownload(programRequest);
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;
}
//如果剧头的总集数 大于 下载量 就显示未全部下载
if (media.getCurrCount().compareTo(pro.getDownloadCount()) > 0) {
media.setDownloadStatus("未全部下载");
continue;
}
}
}
//里面是关联查询匹配,如果没有下载记录,就塞入未下载
if (ObjectUtils.isEmpty(media.getDownloadStatus()))
media.setDownloadStatus("未下载");
}
} catch (Exception e) {
throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
}
return list;
}
@Override
public List<Media> selectAllfollow(MediaRequest info) {
return mediaMapper.selectAllfollow(info);
}
}
package com.hui.iqiyi.service.impl;
import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.mapper.MovieMapper;
import com.hui.iqiyi.request.MovieRequest;
import com.hui.iqiyi.request.ProRequest;
import com.hui.iqiyi.response.MovieResponse;
import com.hui.iqiyi.service.IMovieService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Service
@Primary
public class MovieServiceImpl extends ServiceImpl<MovieMapper, Movie> implements IMovieService {
@Autowired
private MovieMapper movieMapper;
@Override
public ReturnBean updateMoviePriority(Movie movie) throws RuntimeException {
if (ObjectUtils.isEmpty(movie))
throw new RuntimeException("传入的信息不能为空!");
ReturnBean returnBean = null;
try {
if (movieMapper.updateMoviePriority(movie) > 0)
ReturnBean.errorSuccessInfo("更新失败!");
} catch (Exception e) {
throw new RuntimeException("更新电影出现错误!错误信息如下" + e.getMessage());
}
return ReturnBean.setSuccessInfo("更新成功!");
}
@Override
public List<Movie> selectAllPopulation(Movie movie) {
return movieMapper.selectAllPopulation(movie);
}
@Override
public List<MovieResponse> selectAllSevenxz(ProRequest proRequest) {
return movieMapper.selectAllSevenxz(proRequest);
}
}
package com.hui.iqiyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.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.response.*;
import com.hui.iqiyi.service.IProgramService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
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;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author jobob
* @since 2021-06-03
*/
@Service
@Primary
public class ProgramServiceImpl extends ServiceImpl<ProgramMapper, Program> implements IProgramService {
@Resource
private ProgramMapper programMapper;
@Autowired
private MovieMapper movieMapper;
@Resource
private ContentMapper contentMapper;
@Override
@Transactional
public ReturnBean updateByProgramIds(List<ByIdsRequest> requests) {
ReturnBean returnBean = null;
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());
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());
if (i1 == 0 && pla == 0) {
throw new RuntimeException("添加关注失败!");
}
}
}
} catch (Exception e) {
returnBean.errorSuccessInfo("添加关注异常,原因是" + e.getMessage());
}
return returnBean.setSuccessInfo("添加关注成功!");
}
/**
* 获取每一集的下载状态
*
* @return
*/
@Override
public List<ProgramRequest> selectDownload(ProgramRequest program) {
return programMapper.selectDownload(program);
}
/**
* 查询关注平台信息
*
* @param program
* @return
*/
@Override
public Map<Program, List<Movie>> selectProMov(Program program, int PageNo, int PageSize) {
Map<Program, List<Movie>> programMovieMap = new HashMap<>();
//查询集表信息
QueryWrapper<Program> wrapper = new QueryWrapper<>();
System.out.println("====================" + program.getPlatformInfo());
wrapper.eq("platform_info", program.getPlatformInfo());
//分页查询
PageHelper.startPage(PageNo, PageSize);
PageInfo<Program> pageInfo = new PageInfo(programMapper.selectList(wrapper));
//查询Movie表信息
QueryWrapper<Movie> wrapper1 = new QueryWrapper<>();
wrapper1.in("iqiyi_program_id", pageInfo.getList().stream().map(item -> item.getId()).collect(Collectors.toList()));
List<Movie> listMovie = movieMapper.selectList(wrapper1);
//循环集表跟Movie表信息进行循环比对,封装成Map进行返回
//循环集表
List<Movie> Mo = new ArrayList<>();
pageInfo.getList().stream().forEach(item -> {
Mo.clear();
//循环Movie表 使用并行流
listMovie.stream().parallel().forEach(movie -> {
//如果集表ID与Movie表 IqiyiProgramId 相同,则进行封装成
if (item.getId().compareTo(movie.getIqiyiProgramId()) == 0) {
Mo.add(movie);
}
});
programMovieMap.put(item, Mo);
});
pageInfo.getList().clear();
//获取分页数据传递给前台
ReturnProgram<Program> returnProgram = new ReturnProgram<>();
returnProgram.setPageNum(pageInfo.getPageNum());
returnProgram.setPageSize(pageInfo.getPageSize());
returnProgram.setSize(pageInfo.getSize());
returnProgram.setStartRow(pageInfo.getStartRow());
returnProgram.setEndRow(pageInfo.getEndRow());
returnProgram.setPages(pageInfo.getPages());
returnProgram.setPrePage(pageInfo.getPrePage());
returnProgram.setNextPage(pageInfo.getNextPage());
returnProgram.setProgramMovieMap(programMovieMap);
return programMovieMap;
}
//公共的
@Override
public List<ProgramRequest> selectProgramList(ProgramRequest program) {
return programMapper.selectProgramList(program);
}
//查看单集及其状态
@Override
public List<ProgramResponse> selectProgramDloadList(ProgramRequest program) {
//分页查询剧集内的单集详情信息
List<ProgramResponse> programRequests = programMapper.selectProgramDloadList(program);
//由于每个单集需要查询出所有的片源信息 两条或三条 所以需要在每个单集详情中 加上一个存储片源信息的List 正好对应两条或三条清晰度的情况
//返回内容新建了一个response(请求类)因为继续用实体类不能满足多条清晰度的情况下 数据的完整性 于是就在请求类里面加了个list 这个list类型也是一个类(MovieResponse)
//MovieResponse这个类里面封装了两个字段
//循环分页后的数据,把多条清晰度加进返回类的list集合里吗
for (ProgramResponse response : programRequests) {
//Mybatisplus的方法 通过Program表的id 向Movie的iqiyi_program_id查是否相等 相等就代表 这个数据是这个剧集的莫一条清晰度
//返回值是list类型的!!!!正好代表多条清晰度的概念 也正好能放在返回类的List<>movieResponseList中
//不过由于类型不一样需要进行一些别的操作
List<Movie> movies = movieMapper.selectList(new QueryWrapper<Movie>().eq("iqiyi_program_id", response.getId()));
//new一个这个是因为需要先存一下子
List<MovieResponse> movieResponses = new ArrayList<>();
//循环 通过单集查出的不同清晰度数据 为了能塞进返回类的List<>movieResponseList
for (Movie m : movies) {
//因为数据类型不一样 才new的
MovieResponse movieResponse = new MovieResponse();
//!!!!这个方法BeanUtils.copyProperties(源对象, 目标对象);
//把两个类中相同的字段赋值 下面代表 把m 中的值给movieResponse里
//也就是把m与movieResponse相同的字段 拷贝一份过去
BeanUtils.copyProperties(m, movieResponse);
//于是所需要的两个字段也就有值了
//这个是一个list list由add赋值 add(类型一样的一个值)下标就变成0,再写一个add(类型一样的一个值)就变成下标1
//理解为!!一个!!剧集的单集下面 所有不同清晰度的片源
movieResponses.add(movieResponse);
}
//set方法 赋值 set(值) 取值 Object i = get()
//set方法标识把这个单集的不同清晰度的片源都放进返回类的 movieResponseList字段里面
response.setMovieResponseList(movieResponses);
}
return programRequests;
}
@Override
public List<ProgramSyResponse> selectAllSeven(ProRequest proRequest) {
return programMapper.selectAllSeven(proRequest);
}
@Override
public ProgramSyResponse selectAllProgramCount() {
ProgramSyResponse programSyResponse = new ProgramSyResponse();
// 剧集单片数量
List<Integer> integers = contentMapper.selectAllCont();
programSyResponse.setDrama(integers.get(1));
programSyResponse.setMonolithic(integers.get(0));
List<ProgramQBRequest> qbRequest = programMapper.selectAllProgramCount();
for (ProgramQBRequest request : qbRequest) {
if (request.getLocalStatus() != null) {
if (request.getLocalStatus() == 100) {
programSyResponse.setXzNumbe(request.getTotalFee());
programSyResponse.setXzSize(request.getTotleSize());
programSyResponse.setTotlDuration(request.getTotalduration());
} else if (request.getLocalStatus() == -10) {
programSyResponse.setFailSum(request.getTotalFee());
} else if (request.getLocalStatus() == 0) {
programSyResponse.setTotlSize(request.getTotalFee());
}
} else {
programSyResponse.setTotlFee(request.getTotalFee());
}
}
return programSyResponse;
}
}
\ No newline at end of file
Manifest-Version: 1.0
Main-Class: com.hui.iqiyi.IqiyiApplication
server:
port: 9000
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://139.196.37.202:3306/hyperion?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&autoReconnect=true
username: root
password: Topdraw1qaz
profiles:
active: dev
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
mapper-locations: classpath:mapper/iqiyi/*.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hui.iqiyi.mapper.ContentMapper">
<update id="updateContent" parameterType="com.hui.iqiyi.entity.Content">
update iqiyi_content
<include refid="Set_Cloumn"></include>
<include refid="Where_Cloumn"> </include>
</update>
<select id="selectAllSingle" resultType="com.hui.iqiyi.entity.Content">
select b.*,c.bitrate,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>
<if test="param1.SeriesFlag !=null and param1.SeriesFlag !='' ">
series_flag=1
</if>
<if test="param2 !=null and param2 !='' ">
a.id=#{param2}
</if>
</where>
</select>
<select id="selectAllType" resultType="com.hui.iqiyi.response.ContentResponse" parameterType="com.hui.iqiyi.response.ContentResponse">
select contentType,cname,count(id) as num from (
select cname,'1' as contentType,id from iqiyi_content
union select cname, '0' as contentType,id from iqiyi_program where series_flag = 0 ) as m
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>
<sql id="Where_Cloumn">
<where>
<if test="id != null and id != ''">
id = #{id}
</if>
<if test="ContentIdList != null">
id in
<foreach collection="ContentIdList" index="i" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</sql>
<sql id="Set_Cloumn">
<set>
<if test="platformInfo != null" >
platform_info = #{platformInfo},
</if>
</set>
</sql>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hui.iqiyi.mapper.MediaMapper">
<select id="selectAllIqIy" resultType="com.hui.iqiyi.entity.Media" parameterType="com.hui.iqiyi.request.MediaRequest">
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}
</if>
<if test="cid != null and cid != ''">
and cid = #{cid}
</if>
<if test="type != null and type != ''">
and type = #{type}
</if>
<if test="name!= null and name!= ''">
AND name = #{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="follow != null">
and platform_info is not null
</if>
<if test="downloadStatus !=null" >
and local_status=#{downloadStatus}
</if>
ORDER BY create_time desc
</select>
<select id="selectAllfollow" resultType="com.hui.iqiyi.entity.Media">
select * from iqiyi_media as a
LEFT JOIN iqiyi_program as c on a.id =c.iqiyi_content_id
LEFT JOIN iqiyi_movie as d on d.iqiyi_program_id=c.id
<where>
1=1
<if test="platformInfo!=null">
and a.platform_info=#{platformInfo}
</if>
</where>
ORDER BY a.update_time
</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>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hui.iqiyi.mapper.MovieMapper">
<update id="updateMoviePriority" parameterType="com.hui.iqiyi.request.MovieRequest">
update iqiyi_movie as im,(
select id
from iqiyi_program
<where>
<if test="contentId != null and contentId != ''">
iqiyi_content_id = #{contentId}
</if>
<if test="contentIdList != null">
iqiyi_content_id in
<foreach collection="contentIdList" index="i" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
) as ip
set priority = #{priority}
where im.iqiyi_program_id = ip.id
</update>
<select id="selectAllPopulation" resultType="com.hui.iqiyi.entity.Movie" parameterType="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;
</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
FROM iqiyi_program p left join iqiyi_movie m on p.id = m.iqiyi_program_id
<where>
<if test="proRequest.startTime != null">
and UNIX_TIMESTAMP(p.update_time) &gt;= UNIX_TIMESTAMP(#{proRequest.startTime})
</if>
<if test="proRequest.endTime != null">
and UNIX_TIMESTAMP(p.update_time) &lt;= UNIX_TIMESTAMP(#{proRequest.endTime})
</if>
and date_sub(curdate(), interval 7 day) &lt;date(p.update_time)
</where>
GROUP BY DATE_FORMAT(p.update_time,"%Y-%m-%d")
order by DATE_FORMAT(p.update_time,"%Y-%m-%d") desc
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hui.iqiyi.mapper.ProgramMapper">
<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
where a.id = #{id}
</update>
<update id="updatePla">
UPDATE iqiyi_content AS b
set b.platform_info=1
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
where a.iqiyi_content_id = #{id}
</update>
<select id="selectDownload" parameterType="com.hui.iqiyi.request.ProgramRequest" resultType="com.hui.iqiyi.request.ProgramRequest">
select ip.iqiyi_content_id,count(ip.id) as downloadCount
from iqiyi_movie as io left join iqiyi_program as ip
on ip.id = io.iqiyi_program_id
where io.local_status = '100' and ip.iqiyi_content_id in
<foreach collection="contentIdList" index="i" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY ip.iqiyi_content_id
</select>
<select id="selectProgramList" parameterType="com.hui.iqiyi.request.ProgramRequest" resultType="com.hui.iqiyi.request.ProgramRequest">
select
<include refid="Pro_Cloumn"></include>
from iqiyi_program
<include refid="Where_Cloumn"></include>
</select>
<select id="selectProgramDloadList" parameterType="com.hui.iqiyi.request.ProgramRequest" resultType="com.hui.iqiyi.response.ProgramResponse">
select
<include refid="Pro_Cloumn"></include>
,( select
local_status
from iqiyi_movie m where iqiyi_program_id =p.id ORDER BY create_time desc limit 1 ) as 'localStatus'
from iqiyi_program p
<include refid="Where_Cloumn"></include>
</select>
<select id="selectAllSeven" parameterType="com.hui.iqiyi.request.ProRequest" resultType="com.hui.iqiyi.response.ProgramSyResponse">
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
FROM iqiyi_movie
<where>
<if test="proRequest.startTime != null">
and UNIX_TIMESTAMP(update_time) &gt;= UNIX_TIMESTAMP(#{proRequest.startTime})
</if>
<if test="proRequest.endTime != null">
and UNIX_TIMESTAMP(update_time) &lt;= UNIX_TIMESTAMP(#{proRequest.endTime})
</if>
and date_sub(curdate(), interval 7 day) &lt; date(update_time)
and local_status = 100
</where>
GROUP BY DATE_FORMAT(update_time,"%Y-%m-%d")
order by DATE_FORMAT(update_time,"%Y-%m-%d") desc
</select>
<select id="selectAllProgramCount" resultType="com.hui.iqiyi.response.ProgramQBRequest">
select local_status,count(p.id) as total_fee , sum(m.file_size)/1024/1024/1024 as totle_size,sum(m.duration)/60/60 as total_duration
from iqiyi_program p left join iqiyi_movie m on p.id = m.iqiyi_program_id
where p.platform_info like '%1%'
group by local_status
</select>
<sql id="Pro_Cloumn">
id,external_id,content_id,element_type,parent_id,iqiyi_content_id,
series_flag,`name`,country,`language`,`year`,publish_time,`desc`,`status`,tags,focus,`length`,pic_url,
img_pod,cid,cname,excl,type3d,content_type,persons,composers,hosters,dubbers,makers,stars,producers,
song_writers,guesters,writers,directors,main_actors,actors,sname,is_charge,vip_info,is_vip,is_tvod,
is_coupon,is_pkg,org_prc,valid_time,support_prob,prob_duration,search_name,multi_order,volumn_count,
score,sync_status,platform_info,file_status,create_time,update_time
</sql>
<sql id="Where_Cloumn">
<where>
1=1
<if test="iqiyiContentId != null">
and iqiyi_content_id = #{iqiyiContentId}
</if>
<if test="id != null ">
and id = #{id}
</if>
<if test="name != null ">
and name like "%"#{name}"%"
</if>
<if test="localStatus != null">
and local_status = #{localStatus}
</if>
<if test="contentIdList != null">
and ip.iqiyi_content_id in
<foreach collection="contentIdList" index="i" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</sql>
</mapper>
package com.hui.iqiyi;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class IqiyiApplicationTests {
@Test
void contextLoads() {
}
}