Quellcode durchsuchen

Merge branch 'dev-xym-core9' of Server/long-article-manage into master

xueyiming vor 4 Monaten
Ursprung
Commit
4e925a0044
100 geänderte Dateien mit 17014 neuen und 496 gelöschten Zeilen
  1. 32 0
      long-article-server/pom.xml
  2. 2 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/LongArticleServerApplication.java
  3. 15 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/constants/TimeConstant.java
  4. 46 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/enums/ContentStatusEnum.java
  5. 35 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/enums/PublishGzhPushTypeEnum.java
  6. 48 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/DataSourceConfig.java
  7. 43 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/RedisConfig.java
  8. 49 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/XxlJobConfig.java
  9. 31 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/generator/MybatisGeneratorMain.java
  10. 76 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/generator/PaginationPlugin.java
  11. 36 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/CrawlerVideoMapper.java
  12. 36 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/LongArticlesTextMapper.java
  13. 36 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/MatchVideoMapper.java
  14. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PlanAccountMapper.java
  15. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PlanMapper.java
  16. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PublishContentMapper.java
  17. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PublishMiniprogramMapper.java
  18. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/RootSourceMapper.java
  19. 63 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/job/PlanAccountJob.java
  20. 23 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/MatchContent.java
  21. 61 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/PublishMiniprogramBo.java
  22. 25 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/VideoDetail.java
  23. 22 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortRequest.java
  24. 20 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortResponse.java
  25. 17 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortResponseData.java
  26. 20 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/MiniprogramCardRequest.java
  27. 22 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/PublishArticleData.java
  28. 224 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/CrawlerVideo.java
  29. 1312 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/CrawlerVideoExample.java
  30. 90 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/LongArticlesText.java
  31. 621 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/LongArticlesTextExample.java
  32. 169 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/MatchVideo.java
  33. 1042 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/MatchVideoExample.java
  34. 202 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/Plan.java
  35. 323 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanAccount.java
  36. 2002 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanAccountExample.java
  37. 1292 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanExample.java
  38. 147 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishContent.java
  39. 992 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishContentExample.java
  40. 301 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishMiniprogram.java
  41. 1922 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishMiniprogramExample.java
  42. 123 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/RootSource.java
  43. 881 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/RootSourceExample.java
  44. 15 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/ArticleSortParam.java
  45. 23 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/ContentItemVO.java
  46. 23 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/CreatePushTaskParam.java
  47. 16 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/FilterSortContentParam.java
  48. 12 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/FilterSortParam.java
  49. 18 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/GetContentsParam.java
  50. 12 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/GzhArticleSortTaskParam.java
  51. 20 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemContentVO.java
  52. 46 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemPlan.java
  53. 19 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemPlanAccount.java
  54. 16 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MatchMiniprogramStatusParam.java
  55. 16 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MatchVideoVo.java
  56. 22 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MiniprogramInsertTaskParam.java
  57. 33 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PublishMiniprogramParam.java
  58. 17 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushContentParam.java
  59. 15 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushRecordParam.java
  60. 36 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushRecordVO.java
  61. 11 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushStatusParam.java
  62. 26 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushStatusVO.java
  63. 4 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/CardService.java
  64. 4 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/ContentService.java
  65. 12 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/CoreService.java
  66. 8 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/KimiService.java
  67. 35 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/PlanAccountService.java
  68. 162 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CardServiceImpl.java
  69. 284 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/ContentServiceImpl.java
  70. 704 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CoreServiceImpl.java
  71. 29 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/KimiServiceImpl.java
  72. 149 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/PlanAccountServiceImpl.java
  73. 120 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/PublicContentServiceImpl.java
  74. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/RootSourceServiceImpl.java
  75. 28 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/AigcService.java
  76. 8 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/MatchService.java
  77. 9 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/SortService.java
  78. 10 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/VideoService.java
  79. 210 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/AigcServiceImpl.java
  80. 34 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/MatchServiceImpl.java
  81. 42 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/SortServiceImpl.java
  82. 122 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/VideoServiceImpl.java
  83. 31 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/DateUtil.java
  84. 0 84
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/DouyinSearch.java
  85. 0 183
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HkspSearch.java
  86. 90 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HttpClientUtil.java
  87. 193 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HttpPoolClientUtil.java
  88. 0 56
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/KimiAPI.java
  89. 40 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/LarkRobotUtil.java
  90. 0 88
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/OpenAIAPI.java
  91. 219 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/TimeZoneUtil.java
  92. 0 85
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/getContentUtil.java
  93. 108 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/page/Page.java
  94. 14 0
      long-article-server/src/main/resources/application-prod.properties
  95. 14 0
      long-article-server/src/main/resources/application-test.properties
  96. 43 0
      long-article-server/src/main/resources/application.properties
  97. 94 0
      long-article-server/src/main/resources/log4j2.xml
  98. 505 0
      long-article-server/src/main/resources/mapper/CrawlerVideoMapper.xml
  99. 293 0
      long-article-server/src/main/resources/mapper/LongArticlesTextMapper.xml
  100. 419 0
      long-article-server/src/main/resources/mapper/MatchVideoMapper.xml

+ 32 - 0
long-article-server/pom.xml

@@ -9,4 +9,36 @@
     <artifactId>long-article-server</artifactId>
     <name>long-article-server</name>
     <url>http://maven.apache.org</url>
+
+
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <build>
+        <!-- 固定包名 避免随着版本变动 -->
+        <finalName>long-article-server</finalName>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*.yml</include>
+                    <include>**/*.yaml</include>
+                    <include>**/*.xml</include>
+                    <include>**/*.properties</include>
+                </includes>
+                <filtering>false</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+
+    </build>
+
 </project>

+ 2 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/LongArticleServerApplication.java

@@ -1,8 +1,10 @@
 package com.tzld.piaoquan.longarticle;
 
+import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+@EnableApolloConfig
 @SpringBootApplication
 public class LongArticleServerApplication {
 

+ 15 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/constants/TimeConstant.java

@@ -0,0 +1,15 @@
+package com.tzld.piaoquan.longarticle.common.constants;
+
+public interface TimeConstant {
+
+    Integer MINUTE = 60;
+    Integer HOUR = 60 * 60;
+    Integer DAY = 60 * 60 * 24;
+
+    Long MILLISECOND_MINUTE = (long) MINUTE * 1000;
+
+    Long MILLISECOND_DAY = (long) DAY * 1000;
+
+    Long MILLISECOND_HOUR = (long) HOUR * 1000;
+
+}

+ 46 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/enums/ContentStatusEnum.java

@@ -0,0 +1,46 @@
+package com.tzld.piaoquan.longarticle.common.enums;
+
+public enum ContentStatusEnum {
+    SUCCESS_3(3, "成功"),
+    SUCCESS_4(4, "成功"),
+    ERROR_95(95, "KIMI识别文章风险不处理"),
+    ERROR_96(96, "文章品类处于账号的负向品类中"),
+    ERROR_97(97, "文章晋级或者退场"),
+    ERROR_99(99, "匹配视频失败");
+
+    private final int statusCode;
+    private final String message;
+
+    ContentStatusEnum(int statusCode, String message) {
+        this.statusCode = statusCode;
+        this.message = message;
+    }
+
+    public int getStatusCode() {
+        return statusCode;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    // 判断是否为成功状态
+    public static boolean isSuccess(int contentStatus) {
+        return contentStatus == SUCCESS_3.statusCode || contentStatus == SUCCESS_4.statusCode;
+    }
+
+    public static boolean isFail(int contentStatus) {
+        return contentStatus == ERROR_95.statusCode || contentStatus == ERROR_96.statusCode
+                || contentStatus == ERROR_97.statusCode || contentStatus == ERROR_99.statusCode;
+    }
+
+    // 获取错误信息
+    public static String getErrorMessage(int contentStatus) {
+        for (ContentStatusEnum status : ContentStatusEnum.values()) {
+            if (status.statusCode == contentStatus) {
+                return status.message;
+            }
+        }
+        return null;
+    }
+}

+ 35 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/enums/PublishGzhPushTypeEnum.java

@@ -0,0 +1,35 @@
+package com.tzld.piaoquan.longarticle.common.enums;
+
+import lombok.Getter;
+
+import java.util.Objects;
+
+@Getter
+public enum PublishGzhPushTypeEnum {
+    manual_push(1, "手动推送"),
+    auto_group_publish(2, "自动群发"),
+    auto_publish(3, "自动发表"),
+    robopost(4, "自动发布"),
+    batch_group_publish(5, "分组群发"),
+    trigger_push(6, "触发推送"),
+
+    other(999, "其他"),
+    ;
+
+    private final Integer val;
+    private final String description;
+
+    PublishGzhPushTypeEnum(Integer val, String description) {
+        this.val = val;
+        this.description = description;
+    }
+
+    public static PublishGzhPushTypeEnum from(Integer val) {
+        for (PublishGzhPushTypeEnum typeEnum : PublishGzhPushTypeEnum.values()) {
+            if (Objects.equals(typeEnum.val, val)) {
+                return typeEnum;
+            }
+        }
+        return other;
+    }
+}

+ 48 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/DataSourceConfig.java

@@ -0,0 +1,48 @@
+package com.tzld.piaoquan.longarticle.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
+
+import javax.sql.DataSource;
+
+
+@Configuration
+@MapperScan(basePackages = DataSourceConfig.PACKAGE_MASTER, sqlSessionFactoryRef = "masterSqlSessionFactory")
+public class DataSourceConfig {
+    // 数据源
+    static final String PACKAGE_MASTER = "com.tzld.piaoquan.longarticle.dao";
+    static final String MAPPER_LOCATION_MASTER = "classpath:mapper/*.xml";
+
+    @Bean(name = "dataSource")
+    @ConfigurationProperties("spring.datasource")
+    public DataSource getDataSource(){
+        return new DruidDataSource();
+    }
+
+    @Primary
+    @Bean(name = "masterTransactionManager")
+    public PlatformTransactionManager masterTransactionManager(@Qualifier("dataSource") DataSource dataSource) {
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @Primary
+    @Bean(name = "masterSqlSessionFactory")
+    public SqlSessionFactory masterSqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
+        final SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(dataSource);
+        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DataSourceConfig.MAPPER_LOCATION_MASTER));
+        return sessionFactoryBean.getObject();
+    }
+
+
+}

+ 43 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/RedisConfig.java

@@ -0,0 +1,43 @@
+package com.tzld.piaoquan.longarticle.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+@Configuration
+public class RedisConfig {
+
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
+        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(redisConnectionFactory);
+        //设置value的序列化方式json
+        redisTemplate.setValueSerializer(redisSerializer());
+        //设置key序列化方式String
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        //设置hash key序列化方式String
+        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+        //设置hash value序列化json
+        redisTemplate.setHashValueSerializer(redisSerializer());
+        redisTemplate.afterPropertiesSet();
+        return redisTemplate;
+    }
+
+    public RedisSerializer<Object> redisSerializer() {
+        //创建JSON序列化器
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        //必须设置,否则无法序列化实体类对象
+        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
+        return new GenericJackson2JsonRedisSerializer(objectMapper);
+    }
+
+}

+ 49 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/config/XxlJobConfig.java

@@ -0,0 +1,49 @@
+package com.tzld.piaoquan.longarticle.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class XxlJobConfig {
+
+
+    @Value("${xxl.job.admin.addresses}")
+    private String adminAddresses;
+
+    @Value("${xxl.job.accessToken}")
+    private String accessToken;
+
+    @Value("${xxl.job.executor.appname}")
+    private String appName;
+
+    @Value("${xxl.job.executor.address}")
+    private String address;
+
+    @Value("${xxl.job.executor.ip}")
+    private String ip;
+
+    @Value("${xxl.job.executor.port}")
+    private int port;
+
+    @Value("${xxl.job.executor.logpath}")
+    private String logPath;
+
+    @Value("${xxl.job.executor.logretentiondays}")
+    private int logRetentionDays;
+
+    @Bean
+    public XxlJobSpringExecutor xxlJobExecutor() {
+        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+        xxlJobSpringExecutor.setAppname(appName);
+        xxlJobSpringExecutor.setAddress(address);
+        xxlJobSpringExecutor.setIp(ip);
+        xxlJobSpringExecutor.setPort(port);
+        xxlJobSpringExecutor.setAccessToken(accessToken);
+        xxlJobSpringExecutor.setLogPath(logPath);
+        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+        return xxlJobSpringExecutor;
+    }
+}

+ 31 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/generator/MybatisGeneratorMain.java

@@ -0,0 +1,31 @@
+package com.tzld.piaoquan.longarticle.dao.generator;
+
+import org.mybatis.generator.api.MyBatisGenerator;
+import org.mybatis.generator.config.Configuration;
+import org.mybatis.generator.config.xml.ConfigurationParser;
+import org.mybatis.generator.exception.InvalidConfigurationException;
+import org.mybatis.generator.exception.XMLParserException;
+import org.mybatis.generator.internal.DefaultShellCallback;
+
+import java.io.File;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class MybatisGeneratorMain {
+
+    public static void main(String[] args)
+            throws SQLException, IOException, InterruptedException, InvalidConfigurationException, XMLParserException {
+        List<String> warnings = new ArrayList<>();
+
+        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-generator-config.xml").getFile());
+        ConfigurationParser cp = new ConfigurationParser(warnings);
+        Configuration config = cp.parseConfiguration(configFile);
+        DefaultShellCallback callback = new DefaultShellCallback(true);
+        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
+        myBatisGenerator.generate(null);
+        System.out.println("genreate finish");
+    }
+}

+ 76 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/generator/PaginationPlugin.java

@@ -0,0 +1,76 @@
+package com.tzld.piaoquan.longarticle.dao.generator;
+
+import org.mybatis.generator.api.CommentGenerator;
+import org.mybatis.generator.api.IntrospectedTable;
+import org.mybatis.generator.api.PluginAdapter;
+import org.mybatis.generator.api.dom.java.*;
+import org.mybatis.generator.api.dom.xml.Attribute;
+import org.mybatis.generator.api.dom.xml.TextElement;
+import org.mybatis.generator.api.dom.xml.XmlElement;
+
+import java.util.List;
+
+public class PaginationPlugin extends PluginAdapter {
+
+    @Override
+    public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
+        addPage(topLevelClass, introspectedTable, "page");
+        return super.modelExampleClassGenerated(topLevelClass, introspectedTable);
+    }
+
+    @Override
+    public boolean sqlMapSelectByExampleWithoutBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
+        XmlElement page = new XmlElement("if");
+        page.addAttribute(new Attribute("test", "page != null"));
+        page.addElement(new TextElement("limit #{page.offset} , #{page.pageSize}"));
+        element.addElement(page);
+        return super.sqlMapUpdateByExampleWithoutBLOBsElementGenerated(element, introspectedTable);
+    }
+
+    @Override
+    public boolean sqlMapSelectByExampleWithBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
+        XmlElement page = new XmlElement("if");
+        page.addAttribute(new Attribute("test", "page != null"));
+        page.addElement(new TextElement("limit #{page.offset} , #{page.pageSize}"));
+        element.addElement(page);
+        return super.sqlMapSelectByExampleWithBLOBsElementGenerated(element, introspectedTable);
+    }
+
+    /**
+     * @param topLevelClass
+     * @param introspectedTable
+     * @param name
+     */
+    private void addPage(TopLevelClass topLevelClass, IntrospectedTable introspectedTable, String name) {
+        topLevelClass.addImportedType(new FullyQualifiedJavaType("com.tzld.piaoquan.longarticle.utils.page.Page"));
+        CommentGenerator commentGenerator = context.getCommentGenerator();
+        Field field = new Field();
+        field.setVisibility(JavaVisibility.PROTECTED);
+        field.setType(new FullyQualifiedJavaType("com.tzld.piaoquan.longarticle.utils.page.Page"));
+        field.setName(name);
+        commentGenerator.addFieldComment(field, introspectedTable);
+        topLevelClass.addField(field);
+        char c = name.charAt(0);
+        String camel = Character.toUpperCase(c) + name.substring(1);
+        Method method = new Method();
+        method.setVisibility(JavaVisibility.PUBLIC);
+        method.setName("set" + camel);
+        method.addParameter(new Parameter(new FullyQualifiedJavaType("com.tzld.piaoquan.longarticle.utils.page.Page"), name));
+        method.addBodyLine("this." + name + "=" + name + ";");
+        commentGenerator.addGeneralMethodComment(method, introspectedTable);
+        topLevelClass.addMethod(method);
+        method = new Method();
+        method.setVisibility(JavaVisibility.PUBLIC);
+        method.setReturnType(new FullyQualifiedJavaType("com.tzld.piaoquan.longarticle.utils.page.Page"));
+        method.setName("get" + camel);
+        method.addBodyLine("return " + name + ";");
+        commentGenerator.addGeneralMethodComment(method, introspectedTable);
+        topLevelClass.addMethod(method);
+    }
+
+    @Override
+    public boolean validate(List<String> arg0) {
+        return true;
+    }
+
+}

+ 36 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/CrawlerVideoMapper.java

@@ -0,0 +1,36 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.CrawlerVideo;
+import com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface CrawlerVideoMapper {
+    long countByExample(CrawlerVideoExample example);
+
+    int deleteByExample(CrawlerVideoExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(CrawlerVideo record);
+
+    int insertSelective(CrawlerVideo record);
+
+    List<CrawlerVideo> selectByExampleWithBLOBs(CrawlerVideoExample example);
+
+    List<CrawlerVideo> selectByExample(CrawlerVideoExample example);
+
+    CrawlerVideo selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") CrawlerVideo record, @Param("example") CrawlerVideoExample example);
+
+    int updateByExampleWithBLOBs(@Param("record") CrawlerVideo record, @Param("example") CrawlerVideoExample example);
+
+    int updateByExample(@Param("record") CrawlerVideo record, @Param("example") CrawlerVideoExample example);
+
+    int updateByPrimaryKeySelective(CrawlerVideo record);
+
+    int updateByPrimaryKeyWithBLOBs(CrawlerVideo record);
+
+    int updateByPrimaryKey(CrawlerVideo record);
+}

+ 36 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/LongArticlesTextMapper.java

@@ -0,0 +1,36 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.LongArticlesText;
+import com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface LongArticlesTextMapper {
+    long countByExample(LongArticlesTextExample example);
+
+    int deleteByExample(LongArticlesTextExample example);
+
+    int deleteByPrimaryKey(String contentId);
+
+    int insert(LongArticlesText record);
+
+    int insertSelective(LongArticlesText record);
+
+    List<LongArticlesText> selectByExampleWithBLOBs(LongArticlesTextExample example);
+
+    List<LongArticlesText> selectByExample(LongArticlesTextExample example);
+
+    LongArticlesText selectByPrimaryKey(String contentId);
+
+    int updateByExampleSelective(@Param("record") LongArticlesText record, @Param("example") LongArticlesTextExample example);
+
+    int updateByExampleWithBLOBs(@Param("record") LongArticlesText record, @Param("example") LongArticlesTextExample example);
+
+    int updateByExample(@Param("record") LongArticlesText record, @Param("example") LongArticlesTextExample example);
+
+    int updateByPrimaryKeySelective(LongArticlesText record);
+
+    int updateByPrimaryKeyWithBLOBs(LongArticlesText record);
+
+    int updateByPrimaryKey(LongArticlesText record);
+}

+ 36 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/MatchVideoMapper.java

@@ -0,0 +1,36 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.MatchVideo;
+import com.tzld.piaoquan.longarticle.model.po.MatchVideoExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface MatchVideoMapper {
+    long countByExample(MatchVideoExample example);
+
+    int deleteByExample(MatchVideoExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(MatchVideo record);
+
+    int insertSelective(MatchVideo record);
+
+    List<MatchVideo> selectByExampleWithBLOBs(MatchVideoExample example);
+
+    List<MatchVideo> selectByExample(MatchVideoExample example);
+
+    MatchVideo selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") MatchVideo record, @Param("example") MatchVideoExample example);
+
+    int updateByExampleWithBLOBs(@Param("record") MatchVideo record, @Param("example") MatchVideoExample example);
+
+    int updateByExample(@Param("record") MatchVideo record, @Param("example") MatchVideoExample example);
+
+    int updateByPrimaryKeySelective(MatchVideo record);
+
+    int updateByPrimaryKeyWithBLOBs(MatchVideo record);
+
+    int updateByPrimaryKey(MatchVideo record);
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PlanAccountMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccountExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PlanAccountMapper {
+    long countByExample(PlanAccountExample example);
+
+    int deleteByExample(PlanAccountExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PlanAccount record);
+
+    int insertSelective(PlanAccount record);
+
+    List<PlanAccount> selectByExample(PlanAccountExample example);
+
+    PlanAccount selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") PlanAccount record, @Param("example") PlanAccountExample example);
+
+    int updateByExample(@Param("record") PlanAccount record, @Param("example") PlanAccountExample example);
+
+    int updateByPrimaryKeySelective(PlanAccount record);
+
+    int updateByPrimaryKey(PlanAccount record);
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PlanMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.Plan;
+import com.tzld.piaoquan.longarticle.model.po.PlanExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PlanMapper {
+    long countByExample(PlanExample example);
+
+    int deleteByExample(PlanExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(Plan record);
+
+    int insertSelective(Plan record);
+
+    List<Plan> selectByExample(PlanExample example);
+
+    Plan selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") Plan record, @Param("example") PlanExample example);
+
+    int updateByExample(@Param("record") Plan record, @Param("example") PlanExample example);
+
+    int updateByPrimaryKeySelective(Plan record);
+
+    int updateByPrimaryKey(Plan record);
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PublishContentMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.PublishContent;
+import com.tzld.piaoquan.longarticle.model.po.PublishContentExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PublishContentMapper {
+    long countByExample(PublishContentExample example);
+
+    int deleteByExample(PublishContentExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PublishContent record);
+
+    int insertSelective(PublishContent record);
+
+    List<PublishContent> selectByExample(PublishContentExample example);
+
+    PublishContent selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") PublishContent record, @Param("example") PublishContentExample example);
+
+    int updateByExample(@Param("record") PublishContent record, @Param("example") PublishContentExample example);
+
+    int updateByPrimaryKeySelective(PublishContent record);
+
+    int updateByPrimaryKey(PublishContent record);
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/PublishMiniprogramMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.PublishMiniprogram;
+import com.tzld.piaoquan.longarticle.model.po.PublishMiniprogramExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PublishMiniprogramMapper {
+    long countByExample(PublishMiniprogramExample example);
+
+    int deleteByExample(PublishMiniprogramExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PublishMiniprogram record);
+
+    int insertSelective(PublishMiniprogram record);
+
+    List<PublishMiniprogram> selectByExample(PublishMiniprogramExample example);
+
+    PublishMiniprogram selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") PublishMiniprogram record, @Param("example") PublishMiniprogramExample example);
+
+    int updateByExample(@Param("record") PublishMiniprogram record, @Param("example") PublishMiniprogramExample example);
+
+    int updateByPrimaryKeySelective(PublishMiniprogram record);
+
+    int updateByPrimaryKey(PublishMiniprogram record);
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/RootSourceMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper;
+
+import com.tzld.piaoquan.longarticle.model.po.RootSource;
+import com.tzld.piaoquan.longarticle.model.po.RootSourceExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface RootSourceMapper {
+    long countByExample(RootSourceExample example);
+
+    int deleteByExample(RootSourceExample example);
+
+    int deleteByPrimaryKey(String rootSourceId);
+
+    int insert(RootSource record);
+
+    int insertSelective(RootSource record);
+
+    List<RootSource> selectByExample(RootSourceExample example);
+
+    RootSource selectByPrimaryKey(String rootSourceId);
+
+    int updateByExampleSelective(@Param("record") RootSource record, @Param("example") RootSourceExample example);
+
+    int updateByExample(@Param("record") RootSource record, @Param("example") RootSourceExample example);
+
+    int updateByPrimaryKeySelective(RootSource record);
+
+    int updateByPrimaryKey(RootSource record);
+}

+ 63 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/job/PlanAccountJob.java

@@ -0,0 +1,63 @@
+package com.tzld.piaoquan.longarticle.job;
+
+import com.tzld.piaoquan.longarticle.service.local.impl.CoreServiceImpl;
+import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class PlanAccountJob {
+
+    @Autowired
+    private CoreServiceImpl coreService;
+
+
+    @XxlJob("initPlanAccountJob")
+    public ReturnT<String> initPlanAccount(String param) {
+        try {
+            coreService.initPlanAccount();
+        } catch (Exception e) {
+            LarkRobotUtil.sendMessage("长文系统初始化异常,请及时查看,@薛一鸣");
+            log.error("initPlanAccountJob error", e);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("matchPlanAccountJob")
+    public ReturnT<String> matchPlanAccount(String param) {
+        try {
+            coreService.matchContent();
+        } catch (Exception e) {
+            LarkRobotUtil.sendMessage("长文系统匹配异常,请及时查看,@薛一鸣");
+            log.error("matchPlanAccountJob error", e);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("corePlanAccountJob")
+    public ReturnT<String> corePlanAccount(String param) {
+        try {
+            coreService.core();
+        } catch (Exception e) {
+            LarkRobotUtil.sendMessage("长文系统核心流程异常,请及时查看,@薛一鸣");
+            log.error("corePlanAccountJob error", e);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("getPushStatusJob")
+    public ReturnT<String> getPushStatus(String param) {
+        try {
+            coreService.getPushStatus();
+        } catch (Exception e) {
+            LarkRobotUtil.sendMessage("长文系统获取结果异常,请及时查看,@薛一鸣");
+            log.error("getPushStatusJob error", e);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+}

+ 23 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/MatchContent.java

@@ -0,0 +1,23 @@
+package com.tzld.piaoquan.longarticle.model.bo;
+
+import lombok.Data;
+import lombok.ToString;
+
+@Data
+@ToString
+public class MatchContent {
+
+    private String sourceId;
+
+    private String ghId;
+
+    private String publishContentId;
+
+    private String accountName;
+
+    private String content;
+
+    private String title;
+
+    private String flowPoolLevelTag;
+}

+ 61 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/PublishMiniprogramBo.java

@@ -0,0 +1,61 @@
+package com.tzld.piaoquan.longarticle.model.bo;
+
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+@Data
+@ToString
+public class PublishMiniprogramBo {
+
+    private Long contentId;
+
+    private Long planAccountId;
+
+    private String publishContentId;
+
+    private String appId;
+
+    private String appName;
+
+    private String avatar;
+
+    private Integer miniId;
+
+    private Integer miniProgramType;
+
+    private Long videoId;
+
+    private String source;
+
+    private String videoTitle;
+
+    private String videoCover;
+
+    private String videoPath;
+
+    private String productionPath;
+
+    private String rootSourceId;
+
+    private String rootShareId;
+
+    private Integer index;
+
+    private String traceId;
+
+    private String wxUrl;
+
+    private Integer crawlerVideoId;
+
+    private String videoOssPath;
+
+    private String userId;
+
+    private Integer isDelete;
+
+    private Date createTime;
+
+    private Date updateTime;
+}

+ 25 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/VideoDetail.java

@@ -0,0 +1,25 @@
+package com.tzld.piaoquan.longarticle.model.bo;
+
+import lombok.Data;
+
+@Data
+public class VideoDetail {
+
+    private Integer crawlerVideoId;
+
+    private String uid;
+
+    private String source;
+
+    private String kimiTitle;
+
+    private String videoId;
+
+    private String videoCover;
+
+    private String videoPath;
+
+    private String videoOss;
+
+    private String traceId;
+}

+ 22 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortRequest.java

@@ -0,0 +1,22 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+public class ArticleSortRequest {
+    private String accountId;
+    private String accountName;
+    private String ghId;
+    private String strategy;
+    private Integer publishNum;
+    private String planId;
+    private Integer pushType;
+    private boolean excludeLog;
+    private List<PublishArticleData> publishArticleList;
+}

+ 20 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortResponse.java

@@ -0,0 +1,20 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class ArticleSortResponse {
+
+    private boolean isSuccessful;
+    private Integer code;
+    private String msg;
+    private String status;
+    private ArticleSortResponseData data;
+}

+ 17 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/ArticleSortResponseData.java

@@ -0,0 +1,17 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class ArticleSortResponseData {
+    private List<PublishArticleData> rank_list;
+    private List<PublishArticleData> filter_list;
+}

+ 20 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/MiniprogramCardRequest.java

@@ -0,0 +1,20 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+public class MiniprogramCardRequest {
+    private String ghId;
+    private String accountName;
+    private String content;
+    private String title;
+    private String cover;
+    private String strategy;
+    private String articleId;
+    private String flowPoolLevelTag;
+    private Integer publishFlag;
+}

+ 22 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/PublishArticleData.java

@@ -0,0 +1,22 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class PublishArticleData {
+    private String id;
+    private String sourceId;
+    private String title;
+    private String producePlanName;
+    private String filterReason;
+    private Double score;
+    private String contentPoolType;
+}

+ 224 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/CrawlerVideo.java

@@ -0,0 +1,224 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class CrawlerVideo {
+    private Integer id;
+
+    private String contentId;
+
+    private String outVideoId;
+
+    private String platform;
+
+    private String videoTitle;
+
+    private Integer playCount;
+
+    private Integer likeCount;
+
+    private Integer shareCount;
+
+    private Date publishTime;
+
+    private Date crawlerTime;
+
+    private Integer duration;
+
+    private Integer downloadStatus;
+
+    private String videoOssPath;
+
+    private String coverOssPath;
+
+    private String userId;
+
+    private String traceId;
+
+    private Float score;
+
+    private String videoUrl;
+
+    private String coverUrl;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getContentId() {
+        return contentId;
+    }
+
+    public void setContentId(String contentId) {
+        this.contentId = contentId;
+    }
+
+    public String getOutVideoId() {
+        return outVideoId;
+    }
+
+    public void setOutVideoId(String outVideoId) {
+        this.outVideoId = outVideoId;
+    }
+
+    public String getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(String platform) {
+        this.platform = platform;
+    }
+
+    public String getVideoTitle() {
+        return videoTitle;
+    }
+
+    public void setVideoTitle(String videoTitle) {
+        this.videoTitle = videoTitle;
+    }
+
+    public Integer getPlayCount() {
+        return playCount;
+    }
+
+    public void setPlayCount(Integer playCount) {
+        this.playCount = playCount;
+    }
+
+    public Integer getLikeCount() {
+        return likeCount;
+    }
+
+    public void setLikeCount(Integer likeCount) {
+        this.likeCount = likeCount;
+    }
+
+    public Integer getShareCount() {
+        return shareCount;
+    }
+
+    public void setShareCount(Integer shareCount) {
+        this.shareCount = shareCount;
+    }
+
+    public Date getPublishTime() {
+        return publishTime;
+    }
+
+    public void setPublishTime(Date publishTime) {
+        this.publishTime = publishTime;
+    }
+
+    public Date getCrawlerTime() {
+        return crawlerTime;
+    }
+
+    public void setCrawlerTime(Date crawlerTime) {
+        this.crawlerTime = crawlerTime;
+    }
+
+    public Integer getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Integer duration) {
+        this.duration = duration;
+    }
+
+    public Integer getDownloadStatus() {
+        return downloadStatus;
+    }
+
+    public void setDownloadStatus(Integer downloadStatus) {
+        this.downloadStatus = downloadStatus;
+    }
+
+    public String getVideoOssPath() {
+        return videoOssPath;
+    }
+
+    public void setVideoOssPath(String videoOssPath) {
+        this.videoOssPath = videoOssPath;
+    }
+
+    public String getCoverOssPath() {
+        return coverOssPath;
+    }
+
+    public void setCoverOssPath(String coverOssPath) {
+        this.coverOssPath = coverOssPath;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getTraceId() {
+        return traceId;
+    }
+
+    public void setTraceId(String traceId) {
+        this.traceId = traceId;
+    }
+
+    public Float getScore() {
+        return score;
+    }
+
+    public void setScore(Float score) {
+        this.score = score;
+    }
+
+    public String getVideoUrl() {
+        return videoUrl;
+    }
+
+    public void setVideoUrl(String videoUrl) {
+        this.videoUrl = videoUrl;
+    }
+
+    public String getCoverUrl() {
+        return coverUrl;
+    }
+
+    public void setCoverUrl(String coverUrl) {
+        this.coverUrl = coverUrl;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", contentId=").append(contentId);
+        sb.append(", outVideoId=").append(outVideoId);
+        sb.append(", platform=").append(platform);
+        sb.append(", videoTitle=").append(videoTitle);
+        sb.append(", playCount=").append(playCount);
+        sb.append(", likeCount=").append(likeCount);
+        sb.append(", shareCount=").append(shareCount);
+        sb.append(", publishTime=").append(publishTime);
+        sb.append(", crawlerTime=").append(crawlerTime);
+        sb.append(", duration=").append(duration);
+        sb.append(", downloadStatus=").append(downloadStatus);
+        sb.append(", videoOssPath=").append(videoOssPath);
+        sb.append(", coverOssPath=").append(coverOssPath);
+        sb.append(", userId=").append(userId);
+        sb.append(", traceId=").append(traceId);
+        sb.append(", score=").append(score);
+        sb.append(", videoUrl=").append(videoUrl);
+        sb.append(", coverUrl=").append(coverUrl);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 1312 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/CrawlerVideoExample.java

@@ -0,0 +1,1312 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class CrawlerVideoExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public CrawlerVideoExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNull() {
+            addCriterion("content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNotNull() {
+            addCriterion("content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdEqualTo(String value) {
+            addCriterion("content_id =", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotEqualTo(String value) {
+            addCriterion("content_id <>", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThan(String value) {
+            addCriterion("content_id >", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("content_id >=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThan(String value) {
+            addCriterion("content_id <", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThanOrEqualTo(String value) {
+            addCriterion("content_id <=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLike(String value) {
+            addCriterion("content_id like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotLike(String value) {
+            addCriterion("content_id not like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIn(List<String> values) {
+            addCriterion("content_id in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotIn(List<String> values) {
+            addCriterion("content_id not in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdBetween(String value1, String value2) {
+            addCriterion("content_id between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotBetween(String value1, String value2) {
+            addCriterion("content_id not between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdIsNull() {
+            addCriterion("out_video_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdIsNotNull() {
+            addCriterion("out_video_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdEqualTo(String value) {
+            addCriterion("out_video_id =", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdNotEqualTo(String value) {
+            addCriterion("out_video_id <>", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdGreaterThan(String value) {
+            addCriterion("out_video_id >", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdGreaterThanOrEqualTo(String value) {
+            addCriterion("out_video_id >=", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdLessThan(String value) {
+            addCriterion("out_video_id <", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdLessThanOrEqualTo(String value) {
+            addCriterion("out_video_id <=", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdLike(String value) {
+            addCriterion("out_video_id like", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdNotLike(String value) {
+            addCriterion("out_video_id not like", value, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdIn(List<String> values) {
+            addCriterion("out_video_id in", values, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdNotIn(List<String> values) {
+            addCriterion("out_video_id not in", values, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdBetween(String value1, String value2) {
+            addCriterion("out_video_id between", value1, value2, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOutVideoIdNotBetween(String value1, String value2) {
+            addCriterion("out_video_id not between", value1, value2, "outVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformIsNull() {
+            addCriterion("platform is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformIsNotNull() {
+            addCriterion("platform is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformEqualTo(String value) {
+            addCriterion("platform =", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformNotEqualTo(String value) {
+            addCriterion("platform <>", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformGreaterThan(String value) {
+            addCriterion("platform >", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformGreaterThanOrEqualTo(String value) {
+            addCriterion("platform >=", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformLessThan(String value) {
+            addCriterion("platform <", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformLessThanOrEqualTo(String value) {
+            addCriterion("platform <=", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformLike(String value) {
+            addCriterion("platform like", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformNotLike(String value) {
+            addCriterion("platform not like", value, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformIn(List<String> values) {
+            addCriterion("platform in", values, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformNotIn(List<String> values) {
+            addCriterion("platform not in", values, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformBetween(String value1, String value2) {
+            addCriterion("platform between", value1, value2, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlatformNotBetween(String value1, String value2) {
+            addCriterion("platform not between", value1, value2, "platform");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIsNull() {
+            addCriterion("video_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIsNotNull() {
+            addCriterion("video_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleEqualTo(String value) {
+            addCriterion("video_title =", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotEqualTo(String value) {
+            addCriterion("video_title <>", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleGreaterThan(String value) {
+            addCriterion("video_title >", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("video_title >=", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLessThan(String value) {
+            addCriterion("video_title <", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLessThanOrEqualTo(String value) {
+            addCriterion("video_title <=", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLike(String value) {
+            addCriterion("video_title like", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotLike(String value) {
+            addCriterion("video_title not like", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIn(List<String> values) {
+            addCriterion("video_title in", values, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotIn(List<String> values) {
+            addCriterion("video_title not in", values, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleBetween(String value1, String value2) {
+            addCriterion("video_title between", value1, value2, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotBetween(String value1, String value2) {
+            addCriterion("video_title not between", value1, value2, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountIsNull() {
+            addCriterion("play_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountIsNotNull() {
+            addCriterion("play_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountEqualTo(Integer value) {
+            addCriterion("play_count =", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountNotEqualTo(Integer value) {
+            addCriterion("play_count <>", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountGreaterThan(Integer value) {
+            addCriterion("play_count >", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("play_count >=", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountLessThan(Integer value) {
+            addCriterion("play_count <", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountLessThanOrEqualTo(Integer value) {
+            addCriterion("play_count <=", value, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountIn(List<Integer> values) {
+            addCriterion("play_count in", values, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountNotIn(List<Integer> values) {
+            addCriterion("play_count not in", values, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountBetween(Integer value1, Integer value2) {
+            addCriterion("play_count between", value1, value2, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlayCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("play_count not between", value1, value2, "playCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountIsNull() {
+            addCriterion("like_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountIsNotNull() {
+            addCriterion("like_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountEqualTo(Integer value) {
+            addCriterion("like_count =", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountNotEqualTo(Integer value) {
+            addCriterion("like_count <>", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountGreaterThan(Integer value) {
+            addCriterion("like_count >", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("like_count >=", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountLessThan(Integer value) {
+            addCriterion("like_count <", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountLessThanOrEqualTo(Integer value) {
+            addCriterion("like_count <=", value, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountIn(List<Integer> values) {
+            addCriterion("like_count in", values, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountNotIn(List<Integer> values) {
+            addCriterion("like_count not in", values, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountBetween(Integer value1, Integer value2) {
+            addCriterion("like_count between", value1, value2, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andLikeCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("like_count not between", value1, value2, "likeCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountIsNull() {
+            addCriterion("share_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountIsNotNull() {
+            addCriterion("share_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountEqualTo(Integer value) {
+            addCriterion("share_count =", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountNotEqualTo(Integer value) {
+            addCriterion("share_count <>", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountGreaterThan(Integer value) {
+            addCriterion("share_count >", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("share_count >=", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountLessThan(Integer value) {
+            addCriterion("share_count <", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountLessThanOrEqualTo(Integer value) {
+            addCriterion("share_count <=", value, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountIn(List<Integer> values) {
+            addCriterion("share_count in", values, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountNotIn(List<Integer> values) {
+            addCriterion("share_count not in", values, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountBetween(Integer value1, Integer value2) {
+            addCriterion("share_count between", value1, value2, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andShareCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("share_count not between", value1, value2, "shareCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIsNull() {
+            addCriterion("publish_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIsNotNull() {
+            addCriterion("publish_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeEqualTo(Date value) {
+            addCriterion("publish_time =", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeNotEqualTo(Date value) {
+            addCriterion("publish_time <>", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeGreaterThan(Date value) {
+            addCriterion("publish_time >", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("publish_time >=", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeLessThan(Date value) {
+            addCriterion("publish_time <", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeLessThanOrEqualTo(Date value) {
+            addCriterion("publish_time <=", value, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIn(List<Date> values) {
+            addCriterion("publish_time in", values, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeNotIn(List<Date> values) {
+            addCriterion("publish_time not in", values, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeBetween(Date value1, Date value2) {
+            addCriterion("publish_time between", value1, value2, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeNotBetween(Date value1, Date value2) {
+            addCriterion("publish_time not between", value1, value2, "publishTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeIsNull() {
+            addCriterion("crawler_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeIsNotNull() {
+            addCriterion("crawler_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeEqualTo(Date value) {
+            addCriterion("crawler_time =", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeNotEqualTo(Date value) {
+            addCriterion("crawler_time <>", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeGreaterThan(Date value) {
+            addCriterion("crawler_time >", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("crawler_time >=", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeLessThan(Date value) {
+            addCriterion("crawler_time <", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeLessThanOrEqualTo(Date value) {
+            addCriterion("crawler_time <=", value, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeIn(List<Date> values) {
+            addCriterion("crawler_time in", values, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeNotIn(List<Date> values) {
+            addCriterion("crawler_time not in", values, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeBetween(Date value1, Date value2) {
+            addCriterion("crawler_time between", value1, value2, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerTimeNotBetween(Date value1, Date value2) {
+            addCriterion("crawler_time not between", value1, value2, "crawlerTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationIsNull() {
+            addCriterion("duration is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationIsNotNull() {
+            addCriterion("duration is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationEqualTo(Integer value) {
+            addCriterion("duration =", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationNotEqualTo(Integer value) {
+            addCriterion("duration <>", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationGreaterThan(Integer value) {
+            addCriterion("duration >", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationGreaterThanOrEqualTo(Integer value) {
+            addCriterion("duration >=", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationLessThan(Integer value) {
+            addCriterion("duration <", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationLessThanOrEqualTo(Integer value) {
+            addCriterion("duration <=", value, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationIn(List<Integer> values) {
+            addCriterion("duration in", values, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationNotIn(List<Integer> values) {
+            addCriterion("duration not in", values, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationBetween(Integer value1, Integer value2) {
+            addCriterion("duration between", value1, value2, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDurationNotBetween(Integer value1, Integer value2) {
+            addCriterion("duration not between", value1, value2, "duration");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusIsNull() {
+            addCriterion("download_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusIsNotNull() {
+            addCriterion("download_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusEqualTo(Integer value) {
+            addCriterion("download_status =", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusNotEqualTo(Integer value) {
+            addCriterion("download_status <>", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusGreaterThan(Integer value) {
+            addCriterion("download_status >", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("download_status >=", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusLessThan(Integer value) {
+            addCriterion("download_status <", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("download_status <=", value, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusIn(List<Integer> values) {
+            addCriterion("download_status in", values, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusNotIn(List<Integer> values) {
+            addCriterion("download_status not in", values, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusBetween(Integer value1, Integer value2) {
+            addCriterion("download_status between", value1, value2, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDownloadStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("download_status not between", value1, value2, "downloadStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIsNull() {
+            addCriterion("video_oss_path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIsNotNull() {
+            addCriterion("video_oss_path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathEqualTo(String value) {
+            addCriterion("video_oss_path =", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotEqualTo(String value) {
+            addCriterion("video_oss_path <>", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathGreaterThan(String value) {
+            addCriterion("video_oss_path >", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathGreaterThanOrEqualTo(String value) {
+            addCriterion("video_oss_path >=", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLessThan(String value) {
+            addCriterion("video_oss_path <", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLessThanOrEqualTo(String value) {
+            addCriterion("video_oss_path <=", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLike(String value) {
+            addCriterion("video_oss_path like", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotLike(String value) {
+            addCriterion("video_oss_path not like", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIn(List<String> values) {
+            addCriterion("video_oss_path in", values, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotIn(List<String> values) {
+            addCriterion("video_oss_path not in", values, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathBetween(String value1, String value2) {
+            addCriterion("video_oss_path between", value1, value2, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotBetween(String value1, String value2) {
+            addCriterion("video_oss_path not between", value1, value2, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathIsNull() {
+            addCriterion("cover_oss_path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathIsNotNull() {
+            addCriterion("cover_oss_path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathEqualTo(String value) {
+            addCriterion("cover_oss_path =", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathNotEqualTo(String value) {
+            addCriterion("cover_oss_path <>", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathGreaterThan(String value) {
+            addCriterion("cover_oss_path >", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathGreaterThanOrEqualTo(String value) {
+            addCriterion("cover_oss_path >=", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathLessThan(String value) {
+            addCriterion("cover_oss_path <", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathLessThanOrEqualTo(String value) {
+            addCriterion("cover_oss_path <=", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathLike(String value) {
+            addCriterion("cover_oss_path like", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathNotLike(String value) {
+            addCriterion("cover_oss_path not like", value, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathIn(List<String> values) {
+            addCriterion("cover_oss_path in", values, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathNotIn(List<String> values) {
+            addCriterion("cover_oss_path not in", values, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathBetween(String value1, String value2) {
+            addCriterion("cover_oss_path between", value1, value2, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverOssPathNotBetween(String value1, String value2) {
+            addCriterion("cover_oss_path not between", value1, value2, "coverOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNull() {
+            addCriterion("user_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("user_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(String value) {
+            addCriterion("user_id =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(String value) {
+            addCriterion("user_id <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(String value) {
+            addCriterion("user_id >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("user_id >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(String value) {
+            addCriterion("user_id <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(String value) {
+            addCriterion("user_id <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLike(String value) {
+            addCriterion("user_id like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotLike(String value) {
+            addCriterion("user_id not like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<String> values) {
+            addCriterion("user_id in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<String> values) {
+            addCriterion("user_id not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(String value1, String value2) {
+            addCriterion("user_id between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(String value1, String value2) {
+            addCriterion("user_id not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNull() {
+            addCriterion("trace_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNotNull() {
+            addCriterion("trace_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdEqualTo(String value) {
+            addCriterion("trace_id =", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotEqualTo(String value) {
+            addCriterion("trace_id <>", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThan(String value) {
+            addCriterion("trace_id >", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("trace_id >=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThan(String value) {
+            addCriterion("trace_id <", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThanOrEqualTo(String value) {
+            addCriterion("trace_id <=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLike(String value) {
+            addCriterion("trace_id like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotLike(String value) {
+            addCriterion("trace_id not like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIn(List<String> values) {
+            addCriterion("trace_id in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotIn(List<String> values) {
+            addCriterion("trace_id not in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdBetween(String value1, String value2) {
+            addCriterion("trace_id between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotBetween(String value1, String value2) {
+            addCriterion("trace_id not between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNull() {
+            addCriterion("score is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNotNull() {
+            addCriterion("score is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreEqualTo(Float value) {
+            addCriterion("score =", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotEqualTo(Float value) {
+            addCriterion("score <>", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThan(Float value) {
+            addCriterion("score >", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThanOrEqualTo(Float value) {
+            addCriterion("score >=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThan(Float value) {
+            addCriterion("score <", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThanOrEqualTo(Float value) {
+            addCriterion("score <=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIn(List<Float> values) {
+            addCriterion("score in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotIn(List<Float> values) {
+            addCriterion("score not in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreBetween(Float value1, Float value2) {
+            addCriterion("score between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotBetween(Float value1, Float value2) {
+            addCriterion("score not between", value1, value2, "score");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 90 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/LongArticlesText.java

@@ -0,0 +1,90 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+public class LongArticlesText {
+    private String contentId;
+
+    private String articleTitle;
+
+    private String kimiTitle;
+
+    private String kimiSummary;
+
+    private String kimiKeys;
+
+    private Integer kimiStatus;
+
+    private String articleText;
+
+    public String getContentId() {
+        return contentId;
+    }
+
+    public void setContentId(String contentId) {
+        this.contentId = contentId;
+    }
+
+    public String getArticleTitle() {
+        return articleTitle;
+    }
+
+    public void setArticleTitle(String articleTitle) {
+        this.articleTitle = articleTitle;
+    }
+
+    public String getKimiTitle() {
+        return kimiTitle;
+    }
+
+    public void setKimiTitle(String kimiTitle) {
+        this.kimiTitle = kimiTitle;
+    }
+
+    public String getKimiSummary() {
+        return kimiSummary;
+    }
+
+    public void setKimiSummary(String kimiSummary) {
+        this.kimiSummary = kimiSummary;
+    }
+
+    public String getKimiKeys() {
+        return kimiKeys;
+    }
+
+    public void setKimiKeys(String kimiKeys) {
+        this.kimiKeys = kimiKeys;
+    }
+
+    public Integer getKimiStatus() {
+        return kimiStatus;
+    }
+
+    public void setKimiStatus(Integer kimiStatus) {
+        this.kimiStatus = kimiStatus;
+    }
+
+    public String getArticleText() {
+        return articleText;
+    }
+
+    public void setArticleText(String articleText) {
+        this.articleText = articleText;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", contentId=").append(contentId);
+        sb.append(", articleTitle=").append(articleTitle);
+        sb.append(", kimiTitle=").append(kimiTitle);
+        sb.append(", kimiSummary=").append(kimiSummary);
+        sb.append(", kimiKeys=").append(kimiKeys);
+        sb.append(", kimiStatus=").append(kimiStatus);
+        sb.append(", articleText=").append(articleText);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 621 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/LongArticlesTextExample.java

@@ -0,0 +1,621 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class LongArticlesTextExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public LongArticlesTextExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andContentIdIsNull() {
+            addCriterion("content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNotNull() {
+            addCriterion("content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdEqualTo(String value) {
+            addCriterion("content_id =", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotEqualTo(String value) {
+            addCriterion("content_id <>", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThan(String value) {
+            addCriterion("content_id >", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("content_id >=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThan(String value) {
+            addCriterion("content_id <", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThanOrEqualTo(String value) {
+            addCriterion("content_id <=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLike(String value) {
+            addCriterion("content_id like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotLike(String value) {
+            addCriterion("content_id not like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIn(List<String> values) {
+            addCriterion("content_id in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotIn(List<String> values) {
+            addCriterion("content_id not in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdBetween(String value1, String value2) {
+            addCriterion("content_id between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotBetween(String value1, String value2) {
+            addCriterion("content_id not between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIsNull() {
+            addCriterion("article_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIsNotNull() {
+            addCriterion("article_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleEqualTo(String value) {
+            addCriterion("article_title =", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotEqualTo(String value) {
+            addCriterion("article_title <>", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleGreaterThan(String value) {
+            addCriterion("article_title >", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("article_title >=", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLessThan(String value) {
+            addCriterion("article_title <", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLessThanOrEqualTo(String value) {
+            addCriterion("article_title <=", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLike(String value) {
+            addCriterion("article_title like", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotLike(String value) {
+            addCriterion("article_title not like", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIn(List<String> values) {
+            addCriterion("article_title in", values, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotIn(List<String> values) {
+            addCriterion("article_title not in", values, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleBetween(String value1, String value2) {
+            addCriterion("article_title between", value1, value2, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotBetween(String value1, String value2) {
+            addCriterion("article_title not between", value1, value2, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleIsNull() {
+            addCriterion("kimi_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleIsNotNull() {
+            addCriterion("kimi_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleEqualTo(String value) {
+            addCriterion("kimi_title =", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleNotEqualTo(String value) {
+            addCriterion("kimi_title <>", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleGreaterThan(String value) {
+            addCriterion("kimi_title >", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("kimi_title >=", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleLessThan(String value) {
+            addCriterion("kimi_title <", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleLessThanOrEqualTo(String value) {
+            addCriterion("kimi_title <=", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleLike(String value) {
+            addCriterion("kimi_title like", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleNotLike(String value) {
+            addCriterion("kimi_title not like", value, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleIn(List<String> values) {
+            addCriterion("kimi_title in", values, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleNotIn(List<String> values) {
+            addCriterion("kimi_title not in", values, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleBetween(String value1, String value2) {
+            addCriterion("kimi_title between", value1, value2, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiTitleNotBetween(String value1, String value2) {
+            addCriterion("kimi_title not between", value1, value2, "kimiTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryIsNull() {
+            addCriterion("kimi_summary is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryIsNotNull() {
+            addCriterion("kimi_summary is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryEqualTo(String value) {
+            addCriterion("kimi_summary =", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryNotEqualTo(String value) {
+            addCriterion("kimi_summary <>", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryGreaterThan(String value) {
+            addCriterion("kimi_summary >", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryGreaterThanOrEqualTo(String value) {
+            addCriterion("kimi_summary >=", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryLessThan(String value) {
+            addCriterion("kimi_summary <", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryLessThanOrEqualTo(String value) {
+            addCriterion("kimi_summary <=", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryLike(String value) {
+            addCriterion("kimi_summary like", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryNotLike(String value) {
+            addCriterion("kimi_summary not like", value, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryIn(List<String> values) {
+            addCriterion("kimi_summary in", values, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryNotIn(List<String> values) {
+            addCriterion("kimi_summary not in", values, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryBetween(String value1, String value2) {
+            addCriterion("kimi_summary between", value1, value2, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiSummaryNotBetween(String value1, String value2) {
+            addCriterion("kimi_summary not between", value1, value2, "kimiSummary");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysIsNull() {
+            addCriterion("kimi_keys is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysIsNotNull() {
+            addCriterion("kimi_keys is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysEqualTo(String value) {
+            addCriterion("kimi_keys =", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysNotEqualTo(String value) {
+            addCriterion("kimi_keys <>", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysGreaterThan(String value) {
+            addCriterion("kimi_keys >", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysGreaterThanOrEqualTo(String value) {
+            addCriterion("kimi_keys >=", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysLessThan(String value) {
+            addCriterion("kimi_keys <", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysLessThanOrEqualTo(String value) {
+            addCriterion("kimi_keys <=", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysLike(String value) {
+            addCriterion("kimi_keys like", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysNotLike(String value) {
+            addCriterion("kimi_keys not like", value, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysIn(List<String> values) {
+            addCriterion("kimi_keys in", values, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysNotIn(List<String> values) {
+            addCriterion("kimi_keys not in", values, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysBetween(String value1, String value2) {
+            addCriterion("kimi_keys between", value1, value2, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiKeysNotBetween(String value1, String value2) {
+            addCriterion("kimi_keys not between", value1, value2, "kimiKeys");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusIsNull() {
+            addCriterion("kimi_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusIsNotNull() {
+            addCriterion("kimi_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusEqualTo(Integer value) {
+            addCriterion("kimi_status =", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusNotEqualTo(Integer value) {
+            addCriterion("kimi_status <>", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusGreaterThan(Integer value) {
+            addCriterion("kimi_status >", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("kimi_status >=", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusLessThan(Integer value) {
+            addCriterion("kimi_status <", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("kimi_status <=", value, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusIn(List<Integer> values) {
+            addCriterion("kimi_status in", values, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusNotIn(List<Integer> values) {
+            addCriterion("kimi_status not in", values, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusBetween(Integer value1, Integer value2) {
+            addCriterion("kimi_status between", value1, value2, "kimiStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andKimiStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("kimi_status not between", value1, value2, "kimiStatus");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 169 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/MatchVideo.java

@@ -0,0 +1,169 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class MatchVideo {
+    private Integer id;
+
+    private String traceId;
+
+    private String contentId;
+
+    private String flowPoolLevel;
+
+    private String ghId;
+
+    private String accountName;
+
+    private Integer contentStatus;
+
+    private Integer contentStatusUpdateTime;
+
+    private Integer successStatus;
+
+    private Integer requestTimestamp;
+
+    private Date updateTime;
+
+    private Integer processTimes;
+
+    private Integer publishFlag;
+
+    private String response;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getTraceId() {
+        return traceId;
+    }
+
+    public void setTraceId(String traceId) {
+        this.traceId = traceId;
+    }
+
+    public String getContentId() {
+        return contentId;
+    }
+
+    public void setContentId(String contentId) {
+        this.contentId = contentId;
+    }
+
+    public String getFlowPoolLevel() {
+        return flowPoolLevel;
+    }
+
+    public void setFlowPoolLevel(String flowPoolLevel) {
+        this.flowPoolLevel = flowPoolLevel;
+    }
+
+    public String getGhId() {
+        return ghId;
+    }
+
+    public void setGhId(String ghId) {
+        this.ghId = ghId;
+    }
+
+    public String getAccountName() {
+        return accountName;
+    }
+
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    public Integer getContentStatus() {
+        return contentStatus;
+    }
+
+    public void setContentStatus(Integer contentStatus) {
+        this.contentStatus = contentStatus;
+    }
+
+    public Integer getContentStatusUpdateTime() {
+        return contentStatusUpdateTime;
+    }
+
+    public void setContentStatusUpdateTime(Integer contentStatusUpdateTime) {
+        this.contentStatusUpdateTime = contentStatusUpdateTime;
+    }
+
+    public Integer getSuccessStatus() {
+        return successStatus;
+    }
+
+    public void setSuccessStatus(Integer successStatus) {
+        this.successStatus = successStatus;
+    }
+
+    public Integer getRequestTimestamp() {
+        return requestTimestamp;
+    }
+
+    public void setRequestTimestamp(Integer requestTimestamp) {
+        this.requestTimestamp = requestTimestamp;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Integer getProcessTimes() {
+        return processTimes;
+    }
+
+    public void setProcessTimes(Integer processTimes) {
+        this.processTimes = processTimes;
+    }
+
+    public Integer getPublishFlag() {
+        return publishFlag;
+    }
+
+    public void setPublishFlag(Integer publishFlag) {
+        this.publishFlag = publishFlag;
+    }
+
+    public String getResponse() {
+        return response;
+    }
+
+    public void setResponse(String response) {
+        this.response = response;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", traceId=").append(traceId);
+        sb.append(", contentId=").append(contentId);
+        sb.append(", flowPoolLevel=").append(flowPoolLevel);
+        sb.append(", ghId=").append(ghId);
+        sb.append(", accountName=").append(accountName);
+        sb.append(", contentStatus=").append(contentStatus);
+        sb.append(", contentStatusUpdateTime=").append(contentStatusUpdateTime);
+        sb.append(", successStatus=").append(successStatus);
+        sb.append(", requestTimestamp=").append(requestTimestamp);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", processTimes=").append(processTimes);
+        sb.append(", publishFlag=").append(publishFlag);
+        sb.append(", response=").append(response);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 1042 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/MatchVideoExample.java

@@ -0,0 +1,1042 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class MatchVideoExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public MatchVideoExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNull() {
+            addCriterion("trace_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNotNull() {
+            addCriterion("trace_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdEqualTo(String value) {
+            addCriterion("trace_id =", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotEqualTo(String value) {
+            addCriterion("trace_id <>", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThan(String value) {
+            addCriterion("trace_id >", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("trace_id >=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThan(String value) {
+            addCriterion("trace_id <", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThanOrEqualTo(String value) {
+            addCriterion("trace_id <=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLike(String value) {
+            addCriterion("trace_id like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotLike(String value) {
+            addCriterion("trace_id not like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIn(List<String> values) {
+            addCriterion("trace_id in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotIn(List<String> values) {
+            addCriterion("trace_id not in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdBetween(String value1, String value2) {
+            addCriterion("trace_id between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotBetween(String value1, String value2) {
+            addCriterion("trace_id not between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNull() {
+            addCriterion("content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNotNull() {
+            addCriterion("content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdEqualTo(String value) {
+            addCriterion("content_id =", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotEqualTo(String value) {
+            addCriterion("content_id <>", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThan(String value) {
+            addCriterion("content_id >", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("content_id >=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThan(String value) {
+            addCriterion("content_id <", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThanOrEqualTo(String value) {
+            addCriterion("content_id <=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLike(String value) {
+            addCriterion("content_id like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotLike(String value) {
+            addCriterion("content_id not like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIn(List<String> values) {
+            addCriterion("content_id in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotIn(List<String> values) {
+            addCriterion("content_id not in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdBetween(String value1, String value2) {
+            addCriterion("content_id between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotBetween(String value1, String value2) {
+            addCriterion("content_id not between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelIsNull() {
+            addCriterion("flow_pool_level is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelIsNotNull() {
+            addCriterion("flow_pool_level is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelEqualTo(String value) {
+            addCriterion("flow_pool_level =", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelNotEqualTo(String value) {
+            addCriterion("flow_pool_level <>", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelGreaterThan(String value) {
+            addCriterion("flow_pool_level >", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelGreaterThanOrEqualTo(String value) {
+            addCriterion("flow_pool_level >=", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelLessThan(String value) {
+            addCriterion("flow_pool_level <", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelLessThanOrEqualTo(String value) {
+            addCriterion("flow_pool_level <=", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelLike(String value) {
+            addCriterion("flow_pool_level like", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelNotLike(String value) {
+            addCriterion("flow_pool_level not like", value, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelIn(List<String> values) {
+            addCriterion("flow_pool_level in", values, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelNotIn(List<String> values) {
+            addCriterion("flow_pool_level not in", values, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelBetween(String value1, String value2) {
+            addCriterion("flow_pool_level between", value1, value2, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFlowPoolLevelNotBetween(String value1, String value2) {
+            addCriterion("flow_pool_level not between", value1, value2, "flowPoolLevel");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNull() {
+            addCriterion("gh_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNotNull() {
+            addCriterion("gh_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdEqualTo(String value) {
+            addCriterion("gh_id =", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotEqualTo(String value) {
+            addCriterion("gh_id <>", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThan(String value) {
+            addCriterion("gh_id >", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThanOrEqualTo(String value) {
+            addCriterion("gh_id >=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThan(String value) {
+            addCriterion("gh_id <", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThanOrEqualTo(String value) {
+            addCriterion("gh_id <=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLike(String value) {
+            addCriterion("gh_id like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotLike(String value) {
+            addCriterion("gh_id not like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIn(List<String> values) {
+            addCriterion("gh_id in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotIn(List<String> values) {
+            addCriterion("gh_id not in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdBetween(String value1, String value2) {
+            addCriterion("gh_id between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotBetween(String value1, String value2) {
+            addCriterion("gh_id not between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNull() {
+            addCriterion("account_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNotNull() {
+            addCriterion("account_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameEqualTo(String value) {
+            addCriterion("account_name =", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotEqualTo(String value) {
+            addCriterion("account_name <>", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThan(String value) {
+            addCriterion("account_name >", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThanOrEqualTo(String value) {
+            addCriterion("account_name >=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThan(String value) {
+            addCriterion("account_name <", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThanOrEqualTo(String value) {
+            addCriterion("account_name <=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLike(String value) {
+            addCriterion("account_name like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotLike(String value) {
+            addCriterion("account_name not like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIn(List<String> values) {
+            addCriterion("account_name in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotIn(List<String> values) {
+            addCriterion("account_name not in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameBetween(String value1, String value2) {
+            addCriterion("account_name between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotBetween(String value1, String value2) {
+            addCriterion("account_name not between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusIsNull() {
+            addCriterion("content_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusIsNotNull() {
+            addCriterion("content_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusEqualTo(Integer value) {
+            addCriterion("content_status =", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusNotEqualTo(Integer value) {
+            addCriterion("content_status <>", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusGreaterThan(Integer value) {
+            addCriterion("content_status >", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("content_status >=", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusLessThan(Integer value) {
+            addCriterion("content_status <", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("content_status <=", value, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusIn(List<Integer> values) {
+            addCriterion("content_status in", values, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusNotIn(List<Integer> values) {
+            addCriterion("content_status not in", values, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusBetween(Integer value1, Integer value2) {
+            addCriterion("content_status between", value1, value2, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("content_status not between", value1, value2, "contentStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeIsNull() {
+            addCriterion("content_status_update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeIsNotNull() {
+            addCriterion("content_status_update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeEqualTo(Integer value) {
+            addCriterion("content_status_update_time =", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeNotEqualTo(Integer value) {
+            addCriterion("content_status_update_time <>", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeGreaterThan(Integer value) {
+            addCriterion("content_status_update_time >", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("content_status_update_time >=", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeLessThan(Integer value) {
+            addCriterion("content_status_update_time <", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeLessThanOrEqualTo(Integer value) {
+            addCriterion("content_status_update_time <=", value, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeIn(List<Integer> values) {
+            addCriterion("content_status_update_time in", values, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeNotIn(List<Integer> values) {
+            addCriterion("content_status_update_time not in", values, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeBetween(Integer value1, Integer value2) {
+            addCriterion("content_status_update_time between", value1, value2, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentStatusUpdateTimeNotBetween(Integer value1, Integer value2) {
+            addCriterion("content_status_update_time not between", value1, value2, "contentStatusUpdateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusIsNull() {
+            addCriterion("success_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusIsNotNull() {
+            addCriterion("success_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusEqualTo(Integer value) {
+            addCriterion("success_status =", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusNotEqualTo(Integer value) {
+            addCriterion("success_status <>", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusGreaterThan(Integer value) {
+            addCriterion("success_status >", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("success_status >=", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusLessThan(Integer value) {
+            addCriterion("success_status <", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("success_status <=", value, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusIn(List<Integer> values) {
+            addCriterion("success_status in", values, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusNotIn(List<Integer> values) {
+            addCriterion("success_status not in", values, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusBetween(Integer value1, Integer value2) {
+            addCriterion("success_status between", value1, value2, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andSuccessStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("success_status not between", value1, value2, "successStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampIsNull() {
+            addCriterion("request_timestamp is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampIsNotNull() {
+            addCriterion("request_timestamp is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampEqualTo(Integer value) {
+            addCriterion("request_timestamp =", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampNotEqualTo(Integer value) {
+            addCriterion("request_timestamp <>", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampGreaterThan(Integer value) {
+            addCriterion("request_timestamp >", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampGreaterThanOrEqualTo(Integer value) {
+            addCriterion("request_timestamp >=", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampLessThan(Integer value) {
+            addCriterion("request_timestamp <", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampLessThanOrEqualTo(Integer value) {
+            addCriterion("request_timestamp <=", value, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampIn(List<Integer> values) {
+            addCriterion("request_timestamp in", values, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampNotIn(List<Integer> values) {
+            addCriterion("request_timestamp not in", values, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampBetween(Integer value1, Integer value2) {
+            addCriterion("request_timestamp between", value1, value2, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimestampNotBetween(Integer value1, Integer value2) {
+            addCriterion("request_timestamp not between", value1, value2, "requestTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesIsNull() {
+            addCriterion("process_times is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesIsNotNull() {
+            addCriterion("process_times is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesEqualTo(Integer value) {
+            addCriterion("process_times =", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesNotEqualTo(Integer value) {
+            addCriterion("process_times <>", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesGreaterThan(Integer value) {
+            addCriterion("process_times >", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesGreaterThanOrEqualTo(Integer value) {
+            addCriterion("process_times >=", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesLessThan(Integer value) {
+            addCriterion("process_times <", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesLessThanOrEqualTo(Integer value) {
+            addCriterion("process_times <=", value, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesIn(List<Integer> values) {
+            addCriterion("process_times in", values, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesNotIn(List<Integer> values) {
+            addCriterion("process_times not in", values, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesBetween(Integer value1, Integer value2) {
+            addCriterion("process_times between", value1, value2, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andProcessTimesNotBetween(Integer value1, Integer value2) {
+            addCriterion("process_times not between", value1, value2, "processTimes");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagIsNull() {
+            addCriterion("publish_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagIsNotNull() {
+            addCriterion("publish_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagEqualTo(Integer value) {
+            addCriterion("publish_flag =", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagNotEqualTo(Integer value) {
+            addCriterion("publish_flag <>", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagGreaterThan(Integer value) {
+            addCriterion("publish_flag >", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_flag >=", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagLessThan(Integer value) {
+            addCriterion("publish_flag <", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_flag <=", value, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagIn(List<Integer> values) {
+            addCriterion("publish_flag in", values, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagNotIn(List<Integer> values) {
+            addCriterion("publish_flag not in", values, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagBetween(Integer value1, Integer value2) {
+            addCriterion("publish_flag between", value1, value2, "publishFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_flag not between", value1, value2, "publishFlag");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 202 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/Plan.java

@@ -0,0 +1,202 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class Plan {
+    private Long id;
+
+    private String planId;
+
+    private String planName;
+
+    private Integer publishRate;
+
+    private String publishDate;
+
+    private String publishWindowStart;
+
+    private String publishWindowEnd;
+
+    private Integer publishTimeInterval;
+
+    private Integer publishNum;
+
+    private Integer publishPreNum;
+
+    private Integer publishPreMinNum;
+
+    private String publishPushTime;
+
+    private Integer pushType;
+
+    private Integer miniprogramInsertFlag;
+
+    private Integer isDelete;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(String planId) {
+        this.planId = planId;
+    }
+
+    public String getPlanName() {
+        return planName;
+    }
+
+    public void setPlanName(String planName) {
+        this.planName = planName;
+    }
+
+    public Integer getPublishRate() {
+        return publishRate;
+    }
+
+    public void setPublishRate(Integer publishRate) {
+        this.publishRate = publishRate;
+    }
+
+    public String getPublishDate() {
+        return publishDate;
+    }
+
+    public void setPublishDate(String publishDate) {
+        this.publishDate = publishDate;
+    }
+
+    public String getPublishWindowStart() {
+        return publishWindowStart;
+    }
+
+    public void setPublishWindowStart(String publishWindowStart) {
+        this.publishWindowStart = publishWindowStart;
+    }
+
+    public String getPublishWindowEnd() {
+        return publishWindowEnd;
+    }
+
+    public void setPublishWindowEnd(String publishWindowEnd) {
+        this.publishWindowEnd = publishWindowEnd;
+    }
+
+    public Integer getPublishTimeInterval() {
+        return publishTimeInterval;
+    }
+
+    public void setPublishTimeInterval(Integer publishTimeInterval) {
+        this.publishTimeInterval = publishTimeInterval;
+    }
+
+    public Integer getPublishNum() {
+        return publishNum;
+    }
+
+    public void setPublishNum(Integer publishNum) {
+        this.publishNum = publishNum;
+    }
+
+    public Integer getPublishPreNum() {
+        return publishPreNum;
+    }
+
+    public void setPublishPreNum(Integer publishPreNum) {
+        this.publishPreNum = publishPreNum;
+    }
+
+    public Integer getPublishPreMinNum() {
+        return publishPreMinNum;
+    }
+
+    public void setPublishPreMinNum(Integer publishPreMinNum) {
+        this.publishPreMinNum = publishPreMinNum;
+    }
+
+    public String getPublishPushTime() {
+        return publishPushTime;
+    }
+
+    public void setPublishPushTime(String publishPushTime) {
+        this.publishPushTime = publishPushTime;
+    }
+
+    public Integer getPushType() {
+        return pushType;
+    }
+
+    public void setPushType(Integer pushType) {
+        this.pushType = pushType;
+    }
+
+    public Integer getMiniprogramInsertFlag() {
+        return miniprogramInsertFlag;
+    }
+
+    public void setMiniprogramInsertFlag(Integer miniprogramInsertFlag) {
+        this.miniprogramInsertFlag = miniprogramInsertFlag;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", planId=").append(planId);
+        sb.append(", planName=").append(planName);
+        sb.append(", publishRate=").append(publishRate);
+        sb.append(", publishDate=").append(publishDate);
+        sb.append(", publishWindowStart=").append(publishWindowStart);
+        sb.append(", publishWindowEnd=").append(publishWindowEnd);
+        sb.append(", publishTimeInterval=").append(publishTimeInterval);
+        sb.append(", publishNum=").append(publishNum);
+        sb.append(", publishPreNum=").append(publishPreNum);
+        sb.append(", publishPreMinNum=").append(publishPreMinNum);
+        sb.append(", publishPushTime=").append(publishPushTime);
+        sb.append(", pushType=").append(pushType);
+        sb.append(", miniprogramInsertFlag=").append(miniprogramInsertFlag);
+        sb.append(", isDelete=").append(isDelete);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 323 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanAccount.java

@@ -0,0 +1,323 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class PlanAccount {
+    private Long id;
+
+    private String planId;
+
+    private String planName;
+
+    private String accountId;
+
+    private String accountName;
+
+    private String ghId;
+
+    private Integer publishRate;
+
+    private String publishDate;
+
+    private String publishWindowStart;
+
+    private String publishWindowEnd;
+
+    private Integer publishTimeInterval;
+
+    private Integer publishNum;
+
+    private Integer publishPreNum;
+
+    private Integer publishPreMinNum;
+
+    private String publishPushTime;
+
+    private Integer pushType;
+
+    private Integer miniprogramInsertFlag;
+
+    private String miniStrategy;
+
+    private Integer miniprogramUseType;
+
+    private String sortStrategy;
+
+    private Integer status;
+
+    private Integer matchStatus;
+
+    private Integer retryCount;
+
+    private Integer sendCount;
+
+    private Integer publishOpenFlag;
+
+    private Integer isDelete;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(String planId) {
+        this.planId = planId;
+    }
+
+    public String getPlanName() {
+        return planName;
+    }
+
+    public void setPlanName(String planName) {
+        this.planName = planName;
+    }
+
+    public String getAccountId() {
+        return accountId;
+    }
+
+    public void setAccountId(String accountId) {
+        this.accountId = accountId;
+    }
+
+    public String getAccountName() {
+        return accountName;
+    }
+
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    public String getGhId() {
+        return ghId;
+    }
+
+    public void setGhId(String ghId) {
+        this.ghId = ghId;
+    }
+
+    public Integer getPublishRate() {
+        return publishRate;
+    }
+
+    public void setPublishRate(Integer publishRate) {
+        this.publishRate = publishRate;
+    }
+
+    public String getPublishDate() {
+        return publishDate;
+    }
+
+    public void setPublishDate(String publishDate) {
+        this.publishDate = publishDate;
+    }
+
+    public String getPublishWindowStart() {
+        return publishWindowStart;
+    }
+
+    public void setPublishWindowStart(String publishWindowStart) {
+        this.publishWindowStart = publishWindowStart;
+    }
+
+    public String getPublishWindowEnd() {
+        return publishWindowEnd;
+    }
+
+    public void setPublishWindowEnd(String publishWindowEnd) {
+        this.publishWindowEnd = publishWindowEnd;
+    }
+
+    public Integer getPublishTimeInterval() {
+        return publishTimeInterval;
+    }
+
+    public void setPublishTimeInterval(Integer publishTimeInterval) {
+        this.publishTimeInterval = publishTimeInterval;
+    }
+
+    public Integer getPublishNum() {
+        return publishNum;
+    }
+
+    public void setPublishNum(Integer publishNum) {
+        this.publishNum = publishNum;
+    }
+
+    public Integer getPublishPreNum() {
+        return publishPreNum;
+    }
+
+    public void setPublishPreNum(Integer publishPreNum) {
+        this.publishPreNum = publishPreNum;
+    }
+
+    public Integer getPublishPreMinNum() {
+        return publishPreMinNum;
+    }
+
+    public void setPublishPreMinNum(Integer publishPreMinNum) {
+        this.publishPreMinNum = publishPreMinNum;
+    }
+
+    public String getPublishPushTime() {
+        return publishPushTime;
+    }
+
+    public void setPublishPushTime(String publishPushTime) {
+        this.publishPushTime = publishPushTime;
+    }
+
+    public Integer getPushType() {
+        return pushType;
+    }
+
+    public void setPushType(Integer pushType) {
+        this.pushType = pushType;
+    }
+
+    public Integer getMiniprogramInsertFlag() {
+        return miniprogramInsertFlag;
+    }
+
+    public void setMiniprogramInsertFlag(Integer miniprogramInsertFlag) {
+        this.miniprogramInsertFlag = miniprogramInsertFlag;
+    }
+
+    public String getMiniStrategy() {
+        return miniStrategy;
+    }
+
+    public void setMiniStrategy(String miniStrategy) {
+        this.miniStrategy = miniStrategy;
+    }
+
+    public Integer getMiniprogramUseType() {
+        return miniprogramUseType;
+    }
+
+    public void setMiniprogramUseType(Integer miniprogramUseType) {
+        this.miniprogramUseType = miniprogramUseType;
+    }
+
+    public String getSortStrategy() {
+        return sortStrategy;
+    }
+
+    public void setSortStrategy(String sortStrategy) {
+        this.sortStrategy = sortStrategy;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getMatchStatus() {
+        return matchStatus;
+    }
+
+    public void setMatchStatus(Integer matchStatus) {
+        this.matchStatus = matchStatus;
+    }
+
+    public Integer getRetryCount() {
+        return retryCount;
+    }
+
+    public void setRetryCount(Integer retryCount) {
+        this.retryCount = retryCount;
+    }
+
+    public Integer getSendCount() {
+        return sendCount;
+    }
+
+    public void setSendCount(Integer sendCount) {
+        this.sendCount = sendCount;
+    }
+
+    public Integer getPublishOpenFlag() {
+        return publishOpenFlag;
+    }
+
+    public void setPublishOpenFlag(Integer publishOpenFlag) {
+        this.publishOpenFlag = publishOpenFlag;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", planId=").append(planId);
+        sb.append(", planName=").append(planName);
+        sb.append(", accountId=").append(accountId);
+        sb.append(", accountName=").append(accountName);
+        sb.append(", ghId=").append(ghId);
+        sb.append(", publishRate=").append(publishRate);
+        sb.append(", publishDate=").append(publishDate);
+        sb.append(", publishWindowStart=").append(publishWindowStart);
+        sb.append(", publishWindowEnd=").append(publishWindowEnd);
+        sb.append(", publishTimeInterval=").append(publishTimeInterval);
+        sb.append(", publishNum=").append(publishNum);
+        sb.append(", publishPreNum=").append(publishPreNum);
+        sb.append(", publishPreMinNum=").append(publishPreMinNum);
+        sb.append(", publishPushTime=").append(publishPushTime);
+        sb.append(", pushType=").append(pushType);
+        sb.append(", miniprogramInsertFlag=").append(miniprogramInsertFlag);
+        sb.append(", miniStrategy=").append(miniStrategy);
+        sb.append(", miniprogramUseType=").append(miniprogramUseType);
+        sb.append(", sortStrategy=").append(sortStrategy);
+        sb.append(", status=").append(status);
+        sb.append(", matchStatus=").append(matchStatus);
+        sb.append(", retryCount=").append(retryCount);
+        sb.append(", sendCount=").append(sendCount);
+        sb.append(", publishOpenFlag=").append(publishOpenFlag);
+        sb.append(", isDelete=").append(isDelete);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 2002 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanAccountExample.java

@@ -0,0 +1,2002 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PlanAccountExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public PlanAccountExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIsNull() {
+            addCriterion("plan_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIsNotNull() {
+            addCriterion("plan_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdEqualTo(String value) {
+            addCriterion("plan_id =", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotEqualTo(String value) {
+            addCriterion("plan_id <>", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdGreaterThan(String value) {
+            addCriterion("plan_id >", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdGreaterThanOrEqualTo(String value) {
+            addCriterion("plan_id >=", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLessThan(String value) {
+            addCriterion("plan_id <", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLessThanOrEqualTo(String value) {
+            addCriterion("plan_id <=", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLike(String value) {
+            addCriterion("plan_id like", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotLike(String value) {
+            addCriterion("plan_id not like", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIn(List<String> values) {
+            addCriterion("plan_id in", values, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotIn(List<String> values) {
+            addCriterion("plan_id not in", values, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdBetween(String value1, String value2) {
+            addCriterion("plan_id between", value1, value2, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotBetween(String value1, String value2) {
+            addCriterion("plan_id not between", value1, value2, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIsNull() {
+            addCriterion("plan_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIsNotNull() {
+            addCriterion("plan_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameEqualTo(String value) {
+            addCriterion("plan_name =", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotEqualTo(String value) {
+            addCriterion("plan_name <>", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameGreaterThan(String value) {
+            addCriterion("plan_name >", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameGreaterThanOrEqualTo(String value) {
+            addCriterion("plan_name >=", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLessThan(String value) {
+            addCriterion("plan_name <", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLessThanOrEqualTo(String value) {
+            addCriterion("plan_name <=", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLike(String value) {
+            addCriterion("plan_name like", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotLike(String value) {
+            addCriterion("plan_name not like", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIn(List<String> values) {
+            addCriterion("plan_name in", values, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotIn(List<String> values) {
+            addCriterion("plan_name not in", values, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameBetween(String value1, String value2) {
+            addCriterion("plan_name between", value1, value2, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotBetween(String value1, String value2) {
+            addCriterion("plan_name not between", value1, value2, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIsNull() {
+            addCriterion("account_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIsNotNull() {
+            addCriterion("account_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdEqualTo(String value) {
+            addCriterion("account_id =", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotEqualTo(String value) {
+            addCriterion("account_id <>", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdGreaterThan(String value) {
+            addCriterion("account_id >", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdGreaterThanOrEqualTo(String value) {
+            addCriterion("account_id >=", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdLessThan(String value) {
+            addCriterion("account_id <", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdLessThanOrEqualTo(String value) {
+            addCriterion("account_id <=", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdLike(String value) {
+            addCriterion("account_id like", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotLike(String value) {
+            addCriterion("account_id not like", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIn(List<String> values) {
+            addCriterion("account_id in", values, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotIn(List<String> values) {
+            addCriterion("account_id not in", values, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdBetween(String value1, String value2) {
+            addCriterion("account_id between", value1, value2, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotBetween(String value1, String value2) {
+            addCriterion("account_id not between", value1, value2, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNull() {
+            addCriterion("account_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNotNull() {
+            addCriterion("account_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameEqualTo(String value) {
+            addCriterion("account_name =", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotEqualTo(String value) {
+            addCriterion("account_name <>", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThan(String value) {
+            addCriterion("account_name >", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThanOrEqualTo(String value) {
+            addCriterion("account_name >=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThan(String value) {
+            addCriterion("account_name <", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThanOrEqualTo(String value) {
+            addCriterion("account_name <=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLike(String value) {
+            addCriterion("account_name like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotLike(String value) {
+            addCriterion("account_name not like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIn(List<String> values) {
+            addCriterion("account_name in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotIn(List<String> values) {
+            addCriterion("account_name not in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameBetween(String value1, String value2) {
+            addCriterion("account_name between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotBetween(String value1, String value2) {
+            addCriterion("account_name not between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNull() {
+            addCriterion("gh_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNotNull() {
+            addCriterion("gh_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdEqualTo(String value) {
+            addCriterion("gh_id =", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotEqualTo(String value) {
+            addCriterion("gh_id <>", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThan(String value) {
+            addCriterion("gh_id >", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThanOrEqualTo(String value) {
+            addCriterion("gh_id >=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThan(String value) {
+            addCriterion("gh_id <", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThanOrEqualTo(String value) {
+            addCriterion("gh_id <=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLike(String value) {
+            addCriterion("gh_id like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotLike(String value) {
+            addCriterion("gh_id not like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIn(List<String> values) {
+            addCriterion("gh_id in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotIn(List<String> values) {
+            addCriterion("gh_id not in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdBetween(String value1, String value2) {
+            addCriterion("gh_id between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotBetween(String value1, String value2) {
+            addCriterion("gh_id not between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIsNull() {
+            addCriterion("publish_rate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIsNotNull() {
+            addCriterion("publish_rate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateEqualTo(Integer value) {
+            addCriterion("publish_rate =", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotEqualTo(Integer value) {
+            addCriterion("publish_rate <>", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateGreaterThan(Integer value) {
+            addCriterion("publish_rate >", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_rate >=", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateLessThan(Integer value) {
+            addCriterion("publish_rate <", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_rate <=", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIn(List<Integer> values) {
+            addCriterion("publish_rate in", values, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotIn(List<Integer> values) {
+            addCriterion("publish_rate not in", values, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateBetween(Integer value1, Integer value2) {
+            addCriterion("publish_rate between", value1, value2, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_rate not between", value1, value2, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNull() {
+            addCriterion("publish_date is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNotNull() {
+            addCriterion("publish_date is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateEqualTo(String value) {
+            addCriterion("publish_date =", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotEqualTo(String value) {
+            addCriterion("publish_date <>", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThan(String value) {
+            addCriterion("publish_date >", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_date >=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThan(String value) {
+            addCriterion("publish_date <", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThanOrEqualTo(String value) {
+            addCriterion("publish_date <=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLike(String value) {
+            addCriterion("publish_date like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotLike(String value) {
+            addCriterion("publish_date not like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIn(List<String> values) {
+            addCriterion("publish_date in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotIn(List<String> values) {
+            addCriterion("publish_date not in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateBetween(String value1, String value2) {
+            addCriterion("publish_date between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotBetween(String value1, String value2) {
+            addCriterion("publish_date not between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIsNull() {
+            addCriterion("publish_window_start is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIsNotNull() {
+            addCriterion("publish_window_start is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartEqualTo(String value) {
+            addCriterion("publish_window_start =", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotEqualTo(String value) {
+            addCriterion("publish_window_start <>", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartGreaterThan(String value) {
+            addCriterion("publish_window_start >", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_window_start >=", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLessThan(String value) {
+            addCriterion("publish_window_start <", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLessThanOrEqualTo(String value) {
+            addCriterion("publish_window_start <=", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLike(String value) {
+            addCriterion("publish_window_start like", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotLike(String value) {
+            addCriterion("publish_window_start not like", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIn(List<String> values) {
+            addCriterion("publish_window_start in", values, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotIn(List<String> values) {
+            addCriterion("publish_window_start not in", values, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartBetween(String value1, String value2) {
+            addCriterion("publish_window_start between", value1, value2, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotBetween(String value1, String value2) {
+            addCriterion("publish_window_start not between", value1, value2, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIsNull() {
+            addCriterion("publish_window_end is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIsNotNull() {
+            addCriterion("publish_window_end is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndEqualTo(String value) {
+            addCriterion("publish_window_end =", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotEqualTo(String value) {
+            addCriterion("publish_window_end <>", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndGreaterThan(String value) {
+            addCriterion("publish_window_end >", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_window_end >=", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLessThan(String value) {
+            addCriterion("publish_window_end <", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLessThanOrEqualTo(String value) {
+            addCriterion("publish_window_end <=", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLike(String value) {
+            addCriterion("publish_window_end like", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotLike(String value) {
+            addCriterion("publish_window_end not like", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIn(List<String> values) {
+            addCriterion("publish_window_end in", values, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotIn(List<String> values) {
+            addCriterion("publish_window_end not in", values, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndBetween(String value1, String value2) {
+            addCriterion("publish_window_end between", value1, value2, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotBetween(String value1, String value2) {
+            addCriterion("publish_window_end not between", value1, value2, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIsNull() {
+            addCriterion("publish_time_interval is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIsNotNull() {
+            addCriterion("publish_time_interval is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalEqualTo(Integer value) {
+            addCriterion("publish_time_interval =", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotEqualTo(Integer value) {
+            addCriterion("publish_time_interval <>", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalGreaterThan(Integer value) {
+            addCriterion("publish_time_interval >", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_time_interval >=", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalLessThan(Integer value) {
+            addCriterion("publish_time_interval <", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_time_interval <=", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIn(List<Integer> values) {
+            addCriterion("publish_time_interval in", values, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotIn(List<Integer> values) {
+            addCriterion("publish_time_interval not in", values, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalBetween(Integer value1, Integer value2) {
+            addCriterion("publish_time_interval between", value1, value2, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_time_interval not between", value1, value2, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIsNull() {
+            addCriterion("publish_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIsNotNull() {
+            addCriterion("publish_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumEqualTo(Integer value) {
+            addCriterion("publish_num =", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotEqualTo(Integer value) {
+            addCriterion("publish_num <>", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumGreaterThan(Integer value) {
+            addCriterion("publish_num >", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_num >=", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumLessThan(Integer value) {
+            addCriterion("publish_num <", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_num <=", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIn(List<Integer> values) {
+            addCriterion("publish_num in", values, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotIn(List<Integer> values) {
+            addCriterion("publish_num not in", values, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_num between", value1, value2, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_num not between", value1, value2, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIsNull() {
+            addCriterion("publish_pre_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIsNotNull() {
+            addCriterion("publish_pre_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumEqualTo(Integer value) {
+            addCriterion("publish_pre_num =", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotEqualTo(Integer value) {
+            addCriterion("publish_pre_num <>", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumGreaterThan(Integer value) {
+            addCriterion("publish_pre_num >", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_num >=", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumLessThan(Integer value) {
+            addCriterion("publish_pre_num <", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_num <=", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIn(List<Integer> values) {
+            addCriterion("publish_pre_num in", values, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotIn(List<Integer> values) {
+            addCriterion("publish_pre_num not in", values, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_num between", value1, value2, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_num not between", value1, value2, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIsNull() {
+            addCriterion("publish_pre_min_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIsNotNull() {
+            addCriterion("publish_pre_min_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num =", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num <>", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumGreaterThan(Integer value) {
+            addCriterion("publish_pre_min_num >", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num >=", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumLessThan(Integer value) {
+            addCriterion("publish_pre_min_num <", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num <=", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIn(List<Integer> values) {
+            addCriterion("publish_pre_min_num in", values, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotIn(List<Integer> values) {
+            addCriterion("publish_pre_min_num not in", values, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_min_num between", value1, value2, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_min_num not between", value1, value2, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIsNull() {
+            addCriterion("publish_push_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIsNotNull() {
+            addCriterion("publish_push_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeEqualTo(String value) {
+            addCriterion("publish_push_time =", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotEqualTo(String value) {
+            addCriterion("publish_push_time <>", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeGreaterThan(String value) {
+            addCriterion("publish_push_time >", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_push_time >=", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLessThan(String value) {
+            addCriterion("publish_push_time <", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLessThanOrEqualTo(String value) {
+            addCriterion("publish_push_time <=", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLike(String value) {
+            addCriterion("publish_push_time like", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotLike(String value) {
+            addCriterion("publish_push_time not like", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIn(List<String> values) {
+            addCriterion("publish_push_time in", values, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotIn(List<String> values) {
+            addCriterion("publish_push_time not in", values, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeBetween(String value1, String value2) {
+            addCriterion("publish_push_time between", value1, value2, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotBetween(String value1, String value2) {
+            addCriterion("publish_push_time not between", value1, value2, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNull() {
+            addCriterion("push_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNotNull() {
+            addCriterion("push_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeEqualTo(Integer value) {
+            addCriterion("push_type =", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotEqualTo(Integer value) {
+            addCriterion("push_type <>", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThan(Integer value) {
+            addCriterion("push_type >", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("push_type >=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThan(Integer value) {
+            addCriterion("push_type <", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("push_type <=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIn(List<Integer> values) {
+            addCriterion("push_type in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotIn(List<Integer> values) {
+            addCriterion("push_type not in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeBetween(Integer value1, Integer value2) {
+            addCriterion("push_type between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("push_type not between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIsNull() {
+            addCriterion("miniprogram_insert_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIsNotNull() {
+            addCriterion("miniprogram_insert_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag =", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag <>", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagGreaterThan(Integer value) {
+            addCriterion("miniprogram_insert_flag >", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag >=", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagLessThan(Integer value) {
+            addCriterion("miniprogram_insert_flag <", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag <=", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIn(List<Integer> values) {
+            addCriterion("miniprogram_insert_flag in", values, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotIn(List<Integer> values) {
+            addCriterion("miniprogram_insert_flag not in", values, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_insert_flag between", value1, value2, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_insert_flag not between", value1, value2, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyIsNull() {
+            addCriterion("mini_strategy is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyIsNotNull() {
+            addCriterion("mini_strategy is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyEqualTo(String value) {
+            addCriterion("mini_strategy =", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyNotEqualTo(String value) {
+            addCriterion("mini_strategy <>", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyGreaterThan(String value) {
+            addCriterion("mini_strategy >", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyGreaterThanOrEqualTo(String value) {
+            addCriterion("mini_strategy >=", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyLessThan(String value) {
+            addCriterion("mini_strategy <", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyLessThanOrEqualTo(String value) {
+            addCriterion("mini_strategy <=", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyLike(String value) {
+            addCriterion("mini_strategy like", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyNotLike(String value) {
+            addCriterion("mini_strategy not like", value, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyIn(List<String> values) {
+            addCriterion("mini_strategy in", values, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyNotIn(List<String> values) {
+            addCriterion("mini_strategy not in", values, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyBetween(String value1, String value2) {
+            addCriterion("mini_strategy between", value1, value2, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniStrategyNotBetween(String value1, String value2) {
+            addCriterion("mini_strategy not between", value1, value2, "miniStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeIsNull() {
+            addCriterion("miniprogram_use_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeIsNotNull() {
+            addCriterion("miniprogram_use_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeEqualTo(Integer value) {
+            addCriterion("miniprogram_use_type =", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeNotEqualTo(Integer value) {
+            addCriterion("miniprogram_use_type <>", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeGreaterThan(Integer value) {
+            addCriterion("miniprogram_use_type >", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_use_type >=", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeLessThan(Integer value) {
+            addCriterion("miniprogram_use_type <", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_use_type <=", value, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeIn(List<Integer> values) {
+            addCriterion("miniprogram_use_type in", values, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeNotIn(List<Integer> values) {
+            addCriterion("miniprogram_use_type not in", values, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_use_type between", value1, value2, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramUseTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_use_type not between", value1, value2, "miniprogramUseType");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyIsNull() {
+            addCriterion("sort_strategy is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyIsNotNull() {
+            addCriterion("sort_strategy is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyEqualTo(String value) {
+            addCriterion("sort_strategy =", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyNotEqualTo(String value) {
+            addCriterion("sort_strategy <>", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyGreaterThan(String value) {
+            addCriterion("sort_strategy >", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyGreaterThanOrEqualTo(String value) {
+            addCriterion("sort_strategy >=", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyLessThan(String value) {
+            addCriterion("sort_strategy <", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyLessThanOrEqualTo(String value) {
+            addCriterion("sort_strategy <=", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyLike(String value) {
+            addCriterion("sort_strategy like", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyNotLike(String value) {
+            addCriterion("sort_strategy not like", value, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyIn(List<String> values) {
+            addCriterion("sort_strategy in", values, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyNotIn(List<String> values) {
+            addCriterion("sort_strategy not in", values, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyBetween(String value1, String value2) {
+            addCriterion("sort_strategy between", value1, value2, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andSortStrategyNotBetween(String value1, String value2) {
+            addCriterion("sort_strategy not between", value1, value2, "sortStrategy");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusIsNull() {
+            addCriterion("match_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusIsNotNull() {
+            addCriterion("match_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusEqualTo(Integer value) {
+            addCriterion("match_status =", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusNotEqualTo(Integer value) {
+            addCriterion("match_status <>", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusGreaterThan(Integer value) {
+            addCriterion("match_status >", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("match_status >=", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusLessThan(Integer value) {
+            addCriterion("match_status <", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("match_status <=", value, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusIn(List<Integer> values) {
+            addCriterion("match_status in", values, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusNotIn(List<Integer> values) {
+            addCriterion("match_status not in", values, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusBetween(Integer value1, Integer value2) {
+            addCriterion("match_status between", value1, value2, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("match_status not between", value1, value2, "matchStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountIsNull() {
+            addCriterion("retry_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountIsNotNull() {
+            addCriterion("retry_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountEqualTo(Integer value) {
+            addCriterion("retry_count =", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountNotEqualTo(Integer value) {
+            addCriterion("retry_count <>", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountGreaterThan(Integer value) {
+            addCriterion("retry_count >", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("retry_count >=", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountLessThan(Integer value) {
+            addCriterion("retry_count <", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountLessThanOrEqualTo(Integer value) {
+            addCriterion("retry_count <=", value, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountIn(List<Integer> values) {
+            addCriterion("retry_count in", values, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountNotIn(List<Integer> values) {
+            addCriterion("retry_count not in", values, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountBetween(Integer value1, Integer value2) {
+            addCriterion("retry_count between", value1, value2, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRetryCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("retry_count not between", value1, value2, "retryCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountIsNull() {
+            addCriterion("send_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountIsNotNull() {
+            addCriterion("send_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountEqualTo(Integer value) {
+            addCriterion("send_count =", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountNotEqualTo(Integer value) {
+            addCriterion("send_count <>", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountGreaterThan(Integer value) {
+            addCriterion("send_count >", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("send_count >=", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountLessThan(Integer value) {
+            addCriterion("send_count <", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountLessThanOrEqualTo(Integer value) {
+            addCriterion("send_count <=", value, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountIn(List<Integer> values) {
+            addCriterion("send_count in", values, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountNotIn(List<Integer> values) {
+            addCriterion("send_count not in", values, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountBetween(Integer value1, Integer value2) {
+            addCriterion("send_count between", value1, value2, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("send_count not between", value1, value2, "sendCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagIsNull() {
+            addCriterion("publish_open_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagIsNotNull() {
+            addCriterion("publish_open_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagEqualTo(Integer value) {
+            addCriterion("publish_open_flag =", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagNotEqualTo(Integer value) {
+            addCriterion("publish_open_flag <>", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagGreaterThan(Integer value) {
+            addCriterion("publish_open_flag >", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_open_flag >=", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagLessThan(Integer value) {
+            addCriterion("publish_open_flag <", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_open_flag <=", value, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagIn(List<Integer> values) {
+            addCriterion("publish_open_flag in", values, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagNotIn(List<Integer> values) {
+            addCriterion("publish_open_flag not in", values, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagBetween(Integer value1, Integer value2) {
+            addCriterion("publish_open_flag between", value1, value2, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishOpenFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_open_flag not between", value1, value2, "publishOpenFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNull() {
+            addCriterion("is_delete is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNotNull() {
+            addCriterion("is_delete is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteEqualTo(Integer value) {
+            addCriterion("is_delete =", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotEqualTo(Integer value) {
+            addCriterion("is_delete <>", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThan(Integer value) {
+            addCriterion("is_delete >", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
+            addCriterion("is_delete >=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThan(Integer value) {
+            addCriterion("is_delete <", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
+            addCriterion("is_delete <=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIn(List<Integer> values) {
+            addCriterion("is_delete in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotIn(List<Integer> values) {
+            addCriterion("is_delete not in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete not between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 1292 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PlanExample.java

@@ -0,0 +1,1292 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PlanExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public PlanExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIsNull() {
+            addCriterion("plan_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIsNotNull() {
+            addCriterion("plan_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdEqualTo(String value) {
+            addCriterion("plan_id =", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotEqualTo(String value) {
+            addCriterion("plan_id <>", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdGreaterThan(String value) {
+            addCriterion("plan_id >", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdGreaterThanOrEqualTo(String value) {
+            addCriterion("plan_id >=", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLessThan(String value) {
+            addCriterion("plan_id <", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLessThanOrEqualTo(String value) {
+            addCriterion("plan_id <=", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdLike(String value) {
+            addCriterion("plan_id like", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotLike(String value) {
+            addCriterion("plan_id not like", value, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdIn(List<String> values) {
+            addCriterion("plan_id in", values, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotIn(List<String> values) {
+            addCriterion("plan_id not in", values, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdBetween(String value1, String value2) {
+            addCriterion("plan_id between", value1, value2, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanIdNotBetween(String value1, String value2) {
+            addCriterion("plan_id not between", value1, value2, "planId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIsNull() {
+            addCriterion("plan_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIsNotNull() {
+            addCriterion("plan_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameEqualTo(String value) {
+            addCriterion("plan_name =", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotEqualTo(String value) {
+            addCriterion("plan_name <>", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameGreaterThan(String value) {
+            addCriterion("plan_name >", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameGreaterThanOrEqualTo(String value) {
+            addCriterion("plan_name >=", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLessThan(String value) {
+            addCriterion("plan_name <", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLessThanOrEqualTo(String value) {
+            addCriterion("plan_name <=", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameLike(String value) {
+            addCriterion("plan_name like", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotLike(String value) {
+            addCriterion("plan_name not like", value, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameIn(List<String> values) {
+            addCriterion("plan_name in", values, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotIn(List<String> values) {
+            addCriterion("plan_name not in", values, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameBetween(String value1, String value2) {
+            addCriterion("plan_name between", value1, value2, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanNameNotBetween(String value1, String value2) {
+            addCriterion("plan_name not between", value1, value2, "planName");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIsNull() {
+            addCriterion("publish_rate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIsNotNull() {
+            addCriterion("publish_rate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateEqualTo(Integer value) {
+            addCriterion("publish_rate =", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotEqualTo(Integer value) {
+            addCriterion("publish_rate <>", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateGreaterThan(Integer value) {
+            addCriterion("publish_rate >", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_rate >=", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateLessThan(Integer value) {
+            addCriterion("publish_rate <", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_rate <=", value, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateIn(List<Integer> values) {
+            addCriterion("publish_rate in", values, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotIn(List<Integer> values) {
+            addCriterion("publish_rate not in", values, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateBetween(Integer value1, Integer value2) {
+            addCriterion("publish_rate between", value1, value2, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishRateNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_rate not between", value1, value2, "publishRate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNull() {
+            addCriterion("publish_date is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNotNull() {
+            addCriterion("publish_date is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateEqualTo(String value) {
+            addCriterion("publish_date =", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotEqualTo(String value) {
+            addCriterion("publish_date <>", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThan(String value) {
+            addCriterion("publish_date >", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_date >=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThan(String value) {
+            addCriterion("publish_date <", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThanOrEqualTo(String value) {
+            addCriterion("publish_date <=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLike(String value) {
+            addCriterion("publish_date like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotLike(String value) {
+            addCriterion("publish_date not like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIn(List<String> values) {
+            addCriterion("publish_date in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotIn(List<String> values) {
+            addCriterion("publish_date not in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateBetween(String value1, String value2) {
+            addCriterion("publish_date between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotBetween(String value1, String value2) {
+            addCriterion("publish_date not between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIsNull() {
+            addCriterion("publish_window_start is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIsNotNull() {
+            addCriterion("publish_window_start is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartEqualTo(String value) {
+            addCriterion("publish_window_start =", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotEqualTo(String value) {
+            addCriterion("publish_window_start <>", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartGreaterThan(String value) {
+            addCriterion("publish_window_start >", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_window_start >=", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLessThan(String value) {
+            addCriterion("publish_window_start <", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLessThanOrEqualTo(String value) {
+            addCriterion("publish_window_start <=", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartLike(String value) {
+            addCriterion("publish_window_start like", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotLike(String value) {
+            addCriterion("publish_window_start not like", value, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartIn(List<String> values) {
+            addCriterion("publish_window_start in", values, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotIn(List<String> values) {
+            addCriterion("publish_window_start not in", values, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartBetween(String value1, String value2) {
+            addCriterion("publish_window_start between", value1, value2, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowStartNotBetween(String value1, String value2) {
+            addCriterion("publish_window_start not between", value1, value2, "publishWindowStart");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIsNull() {
+            addCriterion("publish_window_end is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIsNotNull() {
+            addCriterion("publish_window_end is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndEqualTo(String value) {
+            addCriterion("publish_window_end =", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotEqualTo(String value) {
+            addCriterion("publish_window_end <>", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndGreaterThan(String value) {
+            addCriterion("publish_window_end >", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_window_end >=", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLessThan(String value) {
+            addCriterion("publish_window_end <", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLessThanOrEqualTo(String value) {
+            addCriterion("publish_window_end <=", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndLike(String value) {
+            addCriterion("publish_window_end like", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotLike(String value) {
+            addCriterion("publish_window_end not like", value, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndIn(List<String> values) {
+            addCriterion("publish_window_end in", values, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotIn(List<String> values) {
+            addCriterion("publish_window_end not in", values, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndBetween(String value1, String value2) {
+            addCriterion("publish_window_end between", value1, value2, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishWindowEndNotBetween(String value1, String value2) {
+            addCriterion("publish_window_end not between", value1, value2, "publishWindowEnd");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIsNull() {
+            addCriterion("publish_time_interval is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIsNotNull() {
+            addCriterion("publish_time_interval is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalEqualTo(Integer value) {
+            addCriterion("publish_time_interval =", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotEqualTo(Integer value) {
+            addCriterion("publish_time_interval <>", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalGreaterThan(Integer value) {
+            addCriterion("publish_time_interval >", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_time_interval >=", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalLessThan(Integer value) {
+            addCriterion("publish_time_interval <", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_time_interval <=", value, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalIn(List<Integer> values) {
+            addCriterion("publish_time_interval in", values, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotIn(List<Integer> values) {
+            addCriterion("publish_time_interval not in", values, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalBetween(Integer value1, Integer value2) {
+            addCriterion("publish_time_interval between", value1, value2, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishTimeIntervalNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_time_interval not between", value1, value2, "publishTimeInterval");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIsNull() {
+            addCriterion("publish_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIsNotNull() {
+            addCriterion("publish_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumEqualTo(Integer value) {
+            addCriterion("publish_num =", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotEqualTo(Integer value) {
+            addCriterion("publish_num <>", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumGreaterThan(Integer value) {
+            addCriterion("publish_num >", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_num >=", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumLessThan(Integer value) {
+            addCriterion("publish_num <", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_num <=", value, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumIn(List<Integer> values) {
+            addCriterion("publish_num in", values, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotIn(List<Integer> values) {
+            addCriterion("publish_num not in", values, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_num between", value1, value2, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_num not between", value1, value2, "publishNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIsNull() {
+            addCriterion("publish_pre_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIsNotNull() {
+            addCriterion("publish_pre_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumEqualTo(Integer value) {
+            addCriterion("publish_pre_num =", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotEqualTo(Integer value) {
+            addCriterion("publish_pre_num <>", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumGreaterThan(Integer value) {
+            addCriterion("publish_pre_num >", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_num >=", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumLessThan(Integer value) {
+            addCriterion("publish_pre_num <", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_num <=", value, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumIn(List<Integer> values) {
+            addCriterion("publish_pre_num in", values, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotIn(List<Integer> values) {
+            addCriterion("publish_pre_num not in", values, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_num between", value1, value2, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_num not between", value1, value2, "publishPreNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIsNull() {
+            addCriterion("publish_pre_min_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIsNotNull() {
+            addCriterion("publish_pre_min_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num =", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num <>", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumGreaterThan(Integer value) {
+            addCriterion("publish_pre_min_num >", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num >=", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumLessThan(Integer value) {
+            addCriterion("publish_pre_min_num <", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_pre_min_num <=", value, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumIn(List<Integer> values) {
+            addCriterion("publish_pre_min_num in", values, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotIn(List<Integer> values) {
+            addCriterion("publish_pre_min_num not in", values, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_min_num between", value1, value2, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPreMinNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_pre_min_num not between", value1, value2, "publishPreMinNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIsNull() {
+            addCriterion("publish_push_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIsNotNull() {
+            addCriterion("publish_push_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeEqualTo(String value) {
+            addCriterion("publish_push_time =", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotEqualTo(String value) {
+            addCriterion("publish_push_time <>", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeGreaterThan(String value) {
+            addCriterion("publish_push_time >", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_push_time >=", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLessThan(String value) {
+            addCriterion("publish_push_time <", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLessThanOrEqualTo(String value) {
+            addCriterion("publish_push_time <=", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeLike(String value) {
+            addCriterion("publish_push_time like", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotLike(String value) {
+            addCriterion("publish_push_time not like", value, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeIn(List<String> values) {
+            addCriterion("publish_push_time in", values, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotIn(List<String> values) {
+            addCriterion("publish_push_time not in", values, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeBetween(String value1, String value2) {
+            addCriterion("publish_push_time between", value1, value2, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishPushTimeNotBetween(String value1, String value2) {
+            addCriterion("publish_push_time not between", value1, value2, "publishPushTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNull() {
+            addCriterion("push_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNotNull() {
+            addCriterion("push_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeEqualTo(Integer value) {
+            addCriterion("push_type =", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotEqualTo(Integer value) {
+            addCriterion("push_type <>", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThan(Integer value) {
+            addCriterion("push_type >", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("push_type >=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThan(Integer value) {
+            addCriterion("push_type <", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("push_type <=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIn(List<Integer> values) {
+            addCriterion("push_type in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotIn(List<Integer> values) {
+            addCriterion("push_type not in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeBetween(Integer value1, Integer value2) {
+            addCriterion("push_type between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("push_type not between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIsNull() {
+            addCriterion("miniprogram_insert_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIsNotNull() {
+            addCriterion("miniprogram_insert_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag =", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag <>", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagGreaterThan(Integer value) {
+            addCriterion("miniprogram_insert_flag >", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag >=", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagLessThan(Integer value) {
+            addCriterion("miniprogram_insert_flag <", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("miniprogram_insert_flag <=", value, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagIn(List<Integer> values) {
+            addCriterion("miniprogram_insert_flag in", values, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotIn(List<Integer> values) {
+            addCriterion("miniprogram_insert_flag not in", values, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_insert_flag between", value1, value2, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniprogramInsertFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("miniprogram_insert_flag not between", value1, value2, "miniprogramInsertFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNull() {
+            addCriterion("is_delete is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNotNull() {
+            addCriterion("is_delete is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteEqualTo(Integer value) {
+            addCriterion("is_delete =", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotEqualTo(Integer value) {
+            addCriterion("is_delete <>", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThan(Integer value) {
+            addCriterion("is_delete >", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
+            addCriterion("is_delete >=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThan(Integer value) {
+            addCriterion("is_delete <", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
+            addCriterion("is_delete <=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIn(List<Integer> values) {
+            addCriterion("is_delete in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotIn(List<Integer> values) {
+            addCriterion("is_delete not in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete not between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 147 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishContent.java

@@ -0,0 +1,147 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class PublishContent {
+    private Long id;
+
+    private Long planAccountId;
+
+    private String publishContentId;
+
+    private String sourceId;
+
+    private Double score;
+
+    private String contentPoolType;
+
+    private Integer status;
+
+    private String pushId;
+
+    private String reason;
+
+    private String traceId;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getPlanAccountId() {
+        return planAccountId;
+    }
+
+    public void setPlanAccountId(Long planAccountId) {
+        this.planAccountId = planAccountId;
+    }
+
+    public String getPublishContentId() {
+        return publishContentId;
+    }
+
+    public void setPublishContentId(String publishContentId) {
+        this.publishContentId = publishContentId;
+    }
+
+    public String getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(String sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public String getContentPoolType() {
+        return contentPoolType;
+    }
+
+    public void setContentPoolType(String contentPoolType) {
+        this.contentPoolType = contentPoolType;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getPushId() {
+        return pushId;
+    }
+
+    public void setPushId(String pushId) {
+        this.pushId = pushId;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getTraceId() {
+        return traceId;
+    }
+
+    public void setTraceId(String traceId) {
+        this.traceId = traceId;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", planAccountId=").append(planAccountId);
+        sb.append(", publishContentId=").append(publishContentId);
+        sb.append(", sourceId=").append(sourceId);
+        sb.append(", score=").append(score);
+        sb.append(", contentPoolType=").append(contentPoolType);
+        sb.append(", status=").append(status);
+        sb.append(", pushId=").append(pushId);
+        sb.append(", reason=").append(reason);
+        sb.append(", traceId=").append(traceId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 992 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishContentExample.java

@@ -0,0 +1,992 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PublishContentExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public PublishContentExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIsNull() {
+            addCriterion("plan_account_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIsNotNull() {
+            addCriterion("plan_account_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdEqualTo(Long value) {
+            addCriterion("plan_account_id =", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotEqualTo(Long value) {
+            addCriterion("plan_account_id <>", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdGreaterThan(Long value) {
+            addCriterion("plan_account_id >", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("plan_account_id >=", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdLessThan(Long value) {
+            addCriterion("plan_account_id <", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdLessThanOrEqualTo(Long value) {
+            addCriterion("plan_account_id <=", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIn(List<Long> values) {
+            addCriterion("plan_account_id in", values, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotIn(List<Long> values) {
+            addCriterion("plan_account_id not in", values, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdBetween(Long value1, Long value2) {
+            addCriterion("plan_account_id between", value1, value2, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotBetween(Long value1, Long value2) {
+            addCriterion("plan_account_id not between", value1, value2, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIsNull() {
+            addCriterion("publish_content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIsNotNull() {
+            addCriterion("publish_content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdEqualTo(String value) {
+            addCriterion("publish_content_id =", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotEqualTo(String value) {
+            addCriterion("publish_content_id <>", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdGreaterThan(String value) {
+            addCriterion("publish_content_id >", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_content_id >=", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLessThan(String value) {
+            addCriterion("publish_content_id <", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLessThanOrEqualTo(String value) {
+            addCriterion("publish_content_id <=", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLike(String value) {
+            addCriterion("publish_content_id like", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotLike(String value) {
+            addCriterion("publish_content_id not like", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIn(List<String> values) {
+            addCriterion("publish_content_id in", values, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotIn(List<String> values) {
+            addCriterion("publish_content_id not in", values, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdBetween(String value1, String value2) {
+            addCriterion("publish_content_id between", value1, value2, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotBetween(String value1, String value2) {
+            addCriterion("publish_content_id not between", value1, value2, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdIsNull() {
+            addCriterion("source_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdIsNotNull() {
+            addCriterion("source_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdEqualTo(String value) {
+            addCriterion("source_id =", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdNotEqualTo(String value) {
+            addCriterion("source_id <>", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdGreaterThan(String value) {
+            addCriterion("source_id >", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("source_id >=", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdLessThan(String value) {
+            addCriterion("source_id <", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdLessThanOrEqualTo(String value) {
+            addCriterion("source_id <=", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdLike(String value) {
+            addCriterion("source_id like", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdNotLike(String value) {
+            addCriterion("source_id not like", value, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdIn(List<String> values) {
+            addCriterion("source_id in", values, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdNotIn(List<String> values) {
+            addCriterion("source_id not in", values, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdBetween(String value1, String value2) {
+            addCriterion("source_id between", value1, value2, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIdNotBetween(String value1, String value2) {
+            addCriterion("source_id not between", value1, value2, "sourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNull() {
+            addCriterion("score is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNotNull() {
+            addCriterion("score is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreEqualTo(Double value) {
+            addCriterion("score =", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotEqualTo(Double value) {
+            addCriterion("score <>", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThan(Double value) {
+            addCriterion("score >", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThanOrEqualTo(Double value) {
+            addCriterion("score >=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThan(Double value) {
+            addCriterion("score <", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThanOrEqualTo(Double value) {
+            addCriterion("score <=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIn(List<Double> values) {
+            addCriterion("score in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotIn(List<Double> values) {
+            addCriterion("score not in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreBetween(Double value1, Double value2) {
+            addCriterion("score between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotBetween(Double value1, Double value2) {
+            addCriterion("score not between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeIsNull() {
+            addCriterion("content_pool_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeIsNotNull() {
+            addCriterion("content_pool_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeEqualTo(String value) {
+            addCriterion("content_pool_type =", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeNotEqualTo(String value) {
+            addCriterion("content_pool_type <>", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeGreaterThan(String value) {
+            addCriterion("content_pool_type >", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("content_pool_type >=", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeLessThan(String value) {
+            addCriterion("content_pool_type <", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeLessThanOrEqualTo(String value) {
+            addCriterion("content_pool_type <=", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeLike(String value) {
+            addCriterion("content_pool_type like", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeNotLike(String value) {
+            addCriterion("content_pool_type not like", value, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeIn(List<String> values) {
+            addCriterion("content_pool_type in", values, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeNotIn(List<String> values) {
+            addCriterion("content_pool_type not in", values, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeBetween(String value1, String value2) {
+            addCriterion("content_pool_type between", value1, value2, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentPoolTypeNotBetween(String value1, String value2) {
+            addCriterion("content_pool_type not between", value1, value2, "contentPoolType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdIsNull() {
+            addCriterion("push_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdIsNotNull() {
+            addCriterion("push_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdEqualTo(String value) {
+            addCriterion("push_id =", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdNotEqualTo(String value) {
+            addCriterion("push_id <>", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdGreaterThan(String value) {
+            addCriterion("push_id >", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdGreaterThanOrEqualTo(String value) {
+            addCriterion("push_id >=", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdLessThan(String value) {
+            addCriterion("push_id <", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdLessThanOrEqualTo(String value) {
+            addCriterion("push_id <=", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdLike(String value) {
+            addCriterion("push_id like", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdNotLike(String value) {
+            addCriterion("push_id not like", value, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdIn(List<String> values) {
+            addCriterion("push_id in", values, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdNotIn(List<String> values) {
+            addCriterion("push_id not in", values, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdBetween(String value1, String value2) {
+            addCriterion("push_id between", value1, value2, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushIdNotBetween(String value1, String value2) {
+            addCriterion("push_id not between", value1, value2, "pushId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNull() {
+            addCriterion("reason is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNotNull() {
+            addCriterion("reason is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonEqualTo(String value) {
+            addCriterion("reason =", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotEqualTo(String value) {
+            addCriterion("reason <>", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThan(String value) {
+            addCriterion("reason >", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThanOrEqualTo(String value) {
+            addCriterion("reason >=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThan(String value) {
+            addCriterion("reason <", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThanOrEqualTo(String value) {
+            addCriterion("reason <=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLike(String value) {
+            addCriterion("reason like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotLike(String value) {
+            addCriterion("reason not like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIn(List<String> values) {
+            addCriterion("reason in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotIn(List<String> values) {
+            addCriterion("reason not in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonBetween(String value1, String value2) {
+            addCriterion("reason between", value1, value2, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotBetween(String value1, String value2) {
+            addCriterion("reason not between", value1, value2, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNull() {
+            addCriterion("trace_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNotNull() {
+            addCriterion("trace_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdEqualTo(String value) {
+            addCriterion("trace_id =", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotEqualTo(String value) {
+            addCriterion("trace_id <>", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThan(String value) {
+            addCriterion("trace_id >", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("trace_id >=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThan(String value) {
+            addCriterion("trace_id <", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThanOrEqualTo(String value) {
+            addCriterion("trace_id <=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLike(String value) {
+            addCriterion("trace_id like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotLike(String value) {
+            addCriterion("trace_id not like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIn(List<String> values) {
+            addCriterion("trace_id in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotIn(List<String> values) {
+            addCriterion("trace_id not in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdBetween(String value1, String value2) {
+            addCriterion("trace_id between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotBetween(String value1, String value2) {
+            addCriterion("trace_id not between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 301 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishMiniprogram.java

@@ -0,0 +1,301 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import java.util.Date;
+
+public class PublishMiniprogram {
+    private Long id;
+
+    private Long contentId;
+
+    private Long planAccountId;
+
+    private String publishContentId;
+
+    private String appId;
+
+    private String appName;
+
+    private String avatar;
+
+    private Integer miniId;
+
+    private Integer miniProgramType;
+
+    private Long videoId;
+
+    private String source;
+
+    private String videoTitle;
+
+    private String videoCover;
+
+    private String videoPath;
+
+    private String productionPath;
+
+    private String rootSourceId;
+
+    private String rootShareId;
+
+    private Integer index;
+
+    private String traceId;
+
+    private String wxUrl;
+
+    private Integer crawlerVideoId;
+
+    private String videoOssPath;
+
+    private String userId;
+
+    private Integer isDelete;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getContentId() {
+        return contentId;
+    }
+
+    public void setContentId(Long contentId) {
+        this.contentId = contentId;
+    }
+
+    public Long getPlanAccountId() {
+        return planAccountId;
+    }
+
+    public void setPlanAccountId(Long planAccountId) {
+        this.planAccountId = planAccountId;
+    }
+
+    public String getPublishContentId() {
+        return publishContentId;
+    }
+
+    public void setPublishContentId(String publishContentId) {
+        this.publishContentId = publishContentId;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getAppName() {
+        return appName;
+    }
+
+    public void setAppName(String appName) {
+        this.appName = appName;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public Integer getMiniId() {
+        return miniId;
+    }
+
+    public void setMiniId(Integer miniId) {
+        this.miniId = miniId;
+    }
+
+    public Integer getMiniProgramType() {
+        return miniProgramType;
+    }
+
+    public void setMiniProgramType(Integer miniProgramType) {
+        this.miniProgramType = miniProgramType;
+    }
+
+    public Long getVideoId() {
+        return videoId;
+    }
+
+    public void setVideoId(Long videoId) {
+        this.videoId = videoId;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getVideoTitle() {
+        return videoTitle;
+    }
+
+    public void setVideoTitle(String videoTitle) {
+        this.videoTitle = videoTitle;
+    }
+
+    public String getVideoCover() {
+        return videoCover;
+    }
+
+    public void setVideoCover(String videoCover) {
+        this.videoCover = videoCover;
+    }
+
+    public String getVideoPath() {
+        return videoPath;
+    }
+
+    public void setVideoPath(String videoPath) {
+        this.videoPath = videoPath;
+    }
+
+    public String getProductionPath() {
+        return productionPath;
+    }
+
+    public void setProductionPath(String productionPath) {
+        this.productionPath = productionPath;
+    }
+
+    public String getRootSourceId() {
+        return rootSourceId;
+    }
+
+    public void setRootSourceId(String rootSourceId) {
+        this.rootSourceId = rootSourceId;
+    }
+
+    public String getRootShareId() {
+        return rootShareId;
+    }
+
+    public void setRootShareId(String rootShareId) {
+        this.rootShareId = rootShareId;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+
+    public void setIndex(Integer index) {
+        this.index = index;
+    }
+
+    public String getTraceId() {
+        return traceId;
+    }
+
+    public void setTraceId(String traceId) {
+        this.traceId = traceId;
+    }
+
+    public String getWxUrl() {
+        return wxUrl;
+    }
+
+    public void setWxUrl(String wxUrl) {
+        this.wxUrl = wxUrl;
+    }
+
+    public Integer getCrawlerVideoId() {
+        return crawlerVideoId;
+    }
+
+    public void setCrawlerVideoId(Integer crawlerVideoId) {
+        this.crawlerVideoId = crawlerVideoId;
+    }
+
+    public String getVideoOssPath() {
+        return videoOssPath;
+    }
+
+    public void setVideoOssPath(String videoOssPath) {
+        this.videoOssPath = videoOssPath;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", contentId=").append(contentId);
+        sb.append(", planAccountId=").append(planAccountId);
+        sb.append(", publishContentId=").append(publishContentId);
+        sb.append(", appId=").append(appId);
+        sb.append(", appName=").append(appName);
+        sb.append(", avatar=").append(avatar);
+        sb.append(", miniId=").append(miniId);
+        sb.append(", miniProgramType=").append(miniProgramType);
+        sb.append(", videoId=").append(videoId);
+        sb.append(", source=").append(source);
+        sb.append(", videoTitle=").append(videoTitle);
+        sb.append(", videoCover=").append(videoCover);
+        sb.append(", videoPath=").append(videoPath);
+        sb.append(", productionPath=").append(productionPath);
+        sb.append(", rootSourceId=").append(rootSourceId);
+        sb.append(", rootShareId=").append(rootShareId);
+        sb.append(", index=").append(index);
+        sb.append(", traceId=").append(traceId);
+        sb.append(", wxUrl=").append(wxUrl);
+        sb.append(", crawlerVideoId=").append(crawlerVideoId);
+        sb.append(", videoOssPath=").append(videoOssPath);
+        sb.append(", userId=").append(userId);
+        sb.append(", isDelete=").append(isDelete);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 1922 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/PublishMiniprogramExample.java

@@ -0,0 +1,1922 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PublishMiniprogramExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public PublishMiniprogramExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNull() {
+            addCriterion("content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNotNull() {
+            addCriterion("content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdEqualTo(Long value) {
+            addCriterion("content_id =", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotEqualTo(Long value) {
+            addCriterion("content_id <>", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThan(Long value) {
+            addCriterion("content_id >", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("content_id >=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThan(Long value) {
+            addCriterion("content_id <", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThanOrEqualTo(Long value) {
+            addCriterion("content_id <=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIn(List<Long> values) {
+            addCriterion("content_id in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotIn(List<Long> values) {
+            addCriterion("content_id not in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdBetween(Long value1, Long value2) {
+            addCriterion("content_id between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotBetween(Long value1, Long value2) {
+            addCriterion("content_id not between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIsNull() {
+            addCriterion("plan_account_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIsNotNull() {
+            addCriterion("plan_account_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdEqualTo(Long value) {
+            addCriterion("plan_account_id =", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotEqualTo(Long value) {
+            addCriterion("plan_account_id <>", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdGreaterThan(Long value) {
+            addCriterion("plan_account_id >", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("plan_account_id >=", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdLessThan(Long value) {
+            addCriterion("plan_account_id <", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdLessThanOrEqualTo(Long value) {
+            addCriterion("plan_account_id <=", value, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdIn(List<Long> values) {
+            addCriterion("plan_account_id in", values, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotIn(List<Long> values) {
+            addCriterion("plan_account_id not in", values, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdBetween(Long value1, Long value2) {
+            addCriterion("plan_account_id between", value1, value2, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPlanAccountIdNotBetween(Long value1, Long value2) {
+            addCriterion("plan_account_id not between", value1, value2, "planAccountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIsNull() {
+            addCriterion("publish_content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIsNotNull() {
+            addCriterion("publish_content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdEqualTo(String value) {
+            addCriterion("publish_content_id =", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotEqualTo(String value) {
+            addCriterion("publish_content_id <>", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdGreaterThan(String value) {
+            addCriterion("publish_content_id >", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_content_id >=", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLessThan(String value) {
+            addCriterion("publish_content_id <", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLessThanOrEqualTo(String value) {
+            addCriterion("publish_content_id <=", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdLike(String value) {
+            addCriterion("publish_content_id like", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotLike(String value) {
+            addCriterion("publish_content_id not like", value, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdIn(List<String> values) {
+            addCriterion("publish_content_id in", values, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotIn(List<String> values) {
+            addCriterion("publish_content_id not in", values, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdBetween(String value1, String value2) {
+            addCriterion("publish_content_id between", value1, value2, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishContentIdNotBetween(String value1, String value2) {
+            addCriterion("publish_content_id not between", value1, value2, "publishContentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIsNull() {
+            addCriterion("app_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIsNotNull() {
+            addCriterion("app_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdEqualTo(String value) {
+            addCriterion("app_id =", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotEqualTo(String value) {
+            addCriterion("app_id <>", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdGreaterThan(String value) {
+            addCriterion("app_id >", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdGreaterThanOrEqualTo(String value) {
+            addCriterion("app_id >=", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLessThan(String value) {
+            addCriterion("app_id <", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLessThanOrEqualTo(String value) {
+            addCriterion("app_id <=", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLike(String value) {
+            addCriterion("app_id like", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotLike(String value) {
+            addCriterion("app_id not like", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIn(List<String> values) {
+            addCriterion("app_id in", values, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotIn(List<String> values) {
+            addCriterion("app_id not in", values, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdBetween(String value1, String value2) {
+            addCriterion("app_id between", value1, value2, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotBetween(String value1, String value2) {
+            addCriterion("app_id not between", value1, value2, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameIsNull() {
+            addCriterion("app_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameIsNotNull() {
+            addCriterion("app_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameEqualTo(String value) {
+            addCriterion("app_name =", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameNotEqualTo(String value) {
+            addCriterion("app_name <>", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameGreaterThan(String value) {
+            addCriterion("app_name >", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameGreaterThanOrEqualTo(String value) {
+            addCriterion("app_name >=", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameLessThan(String value) {
+            addCriterion("app_name <", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameLessThanOrEqualTo(String value) {
+            addCriterion("app_name <=", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameLike(String value) {
+            addCriterion("app_name like", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameNotLike(String value) {
+            addCriterion("app_name not like", value, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameIn(List<String> values) {
+            addCriterion("app_name in", values, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameNotIn(List<String> values) {
+            addCriterion("app_name not in", values, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameBetween(String value1, String value2) {
+            addCriterion("app_name between", value1, value2, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppNameNotBetween(String value1, String value2) {
+            addCriterion("app_name not between", value1, value2, "appName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarIsNull() {
+            addCriterion("avatar is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarIsNotNull() {
+            addCriterion("avatar is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarEqualTo(String value) {
+            addCriterion("avatar =", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarNotEqualTo(String value) {
+            addCriterion("avatar <>", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarGreaterThan(String value) {
+            addCriterion("avatar >", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarGreaterThanOrEqualTo(String value) {
+            addCriterion("avatar >=", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarLessThan(String value) {
+            addCriterion("avatar <", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarLessThanOrEqualTo(String value) {
+            addCriterion("avatar <=", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarLike(String value) {
+            addCriterion("avatar like", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarNotLike(String value) {
+            addCriterion("avatar not like", value, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarIn(List<String> values) {
+            addCriterion("avatar in", values, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarNotIn(List<String> values) {
+            addCriterion("avatar not in", values, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarBetween(String value1, String value2) {
+            addCriterion("avatar between", value1, value2, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvatarNotBetween(String value1, String value2) {
+            addCriterion("avatar not between", value1, value2, "avatar");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdIsNull() {
+            addCriterion("mini_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdIsNotNull() {
+            addCriterion("mini_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdEqualTo(Integer value) {
+            addCriterion("mini_id =", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdNotEqualTo(Integer value) {
+            addCriterion("mini_id <>", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdGreaterThan(Integer value) {
+            addCriterion("mini_id >", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("mini_id >=", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdLessThan(Integer value) {
+            addCriterion("mini_id <", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdLessThanOrEqualTo(Integer value) {
+            addCriterion("mini_id <=", value, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdIn(List<Integer> values) {
+            addCriterion("mini_id in", values, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdNotIn(List<Integer> values) {
+            addCriterion("mini_id not in", values, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdBetween(Integer value1, Integer value2) {
+            addCriterion("mini_id between", value1, value2, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("mini_id not between", value1, value2, "miniId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeIsNull() {
+            addCriterion("mini_program_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeIsNotNull() {
+            addCriterion("mini_program_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeEqualTo(Integer value) {
+            addCriterion("mini_program_type =", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeNotEqualTo(Integer value) {
+            addCriterion("mini_program_type <>", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeGreaterThan(Integer value) {
+            addCriterion("mini_program_type >", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("mini_program_type >=", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeLessThan(Integer value) {
+            addCriterion("mini_program_type <", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("mini_program_type <=", value, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeIn(List<Integer> values) {
+            addCriterion("mini_program_type in", values, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeNotIn(List<Integer> values) {
+            addCriterion("mini_program_type not in", values, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeBetween(Integer value1, Integer value2) {
+            addCriterion("mini_program_type between", value1, value2, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMiniProgramTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("mini_program_type not between", value1, value2, "miniProgramType");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIsNull() {
+            addCriterion("video_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIsNotNull() {
+            addCriterion("video_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdEqualTo(Long value) {
+            addCriterion("video_id =", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotEqualTo(Long value) {
+            addCriterion("video_id <>", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdGreaterThan(Long value) {
+            addCriterion("video_id >", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("video_id >=", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdLessThan(Long value) {
+            addCriterion("video_id <", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdLessThanOrEqualTo(Long value) {
+            addCriterion("video_id <=", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIn(List<Long> values) {
+            addCriterion("video_id in", values, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotIn(List<Long> values) {
+            addCriterion("video_id not in", values, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdBetween(Long value1, Long value2) {
+            addCriterion("video_id between", value1, value2, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotBetween(Long value1, Long value2) {
+            addCriterion("video_id not between", value1, value2, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNull() {
+            addCriterion("`source` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNotNull() {
+            addCriterion("`source` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceEqualTo(String value) {
+            addCriterion("`source` =", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotEqualTo(String value) {
+            addCriterion("`source` <>", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThan(String value) {
+            addCriterion("`source` >", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThanOrEqualTo(String value) {
+            addCriterion("`source` >=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThan(String value) {
+            addCriterion("`source` <", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThanOrEqualTo(String value) {
+            addCriterion("`source` <=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLike(String value) {
+            addCriterion("`source` like", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotLike(String value) {
+            addCriterion("`source` not like", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIn(List<String> values) {
+            addCriterion("`source` in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotIn(List<String> values) {
+            addCriterion("`source` not in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceBetween(String value1, String value2) {
+            addCriterion("`source` between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotBetween(String value1, String value2) {
+            addCriterion("`source` not between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIsNull() {
+            addCriterion("video_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIsNotNull() {
+            addCriterion("video_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleEqualTo(String value) {
+            addCriterion("video_title =", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotEqualTo(String value) {
+            addCriterion("video_title <>", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleGreaterThan(String value) {
+            addCriterion("video_title >", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("video_title >=", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLessThan(String value) {
+            addCriterion("video_title <", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLessThanOrEqualTo(String value) {
+            addCriterion("video_title <=", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleLike(String value) {
+            addCriterion("video_title like", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotLike(String value) {
+            addCriterion("video_title not like", value, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleIn(List<String> values) {
+            addCriterion("video_title in", values, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotIn(List<String> values) {
+            addCriterion("video_title not in", values, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleBetween(String value1, String value2) {
+            addCriterion("video_title between", value1, value2, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoTitleNotBetween(String value1, String value2) {
+            addCriterion("video_title not between", value1, value2, "videoTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverIsNull() {
+            addCriterion("video_cover is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverIsNotNull() {
+            addCriterion("video_cover is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverEqualTo(String value) {
+            addCriterion("video_cover =", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverNotEqualTo(String value) {
+            addCriterion("video_cover <>", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverGreaterThan(String value) {
+            addCriterion("video_cover >", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverGreaterThanOrEqualTo(String value) {
+            addCriterion("video_cover >=", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverLessThan(String value) {
+            addCriterion("video_cover <", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverLessThanOrEqualTo(String value) {
+            addCriterion("video_cover <=", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverLike(String value) {
+            addCriterion("video_cover like", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverNotLike(String value) {
+            addCriterion("video_cover not like", value, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverIn(List<String> values) {
+            addCriterion("video_cover in", values, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverNotIn(List<String> values) {
+            addCriterion("video_cover not in", values, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverBetween(String value1, String value2) {
+            addCriterion("video_cover between", value1, value2, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoCoverNotBetween(String value1, String value2) {
+            addCriterion("video_cover not between", value1, value2, "videoCover");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathIsNull() {
+            addCriterion("video_path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathIsNotNull() {
+            addCriterion("video_path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathEqualTo(String value) {
+            addCriterion("video_path =", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathNotEqualTo(String value) {
+            addCriterion("video_path <>", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathGreaterThan(String value) {
+            addCriterion("video_path >", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathGreaterThanOrEqualTo(String value) {
+            addCriterion("video_path >=", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathLessThan(String value) {
+            addCriterion("video_path <", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathLessThanOrEqualTo(String value) {
+            addCriterion("video_path <=", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathLike(String value) {
+            addCriterion("video_path like", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathNotLike(String value) {
+            addCriterion("video_path not like", value, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathIn(List<String> values) {
+            addCriterion("video_path in", values, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathNotIn(List<String> values) {
+            addCriterion("video_path not in", values, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathBetween(String value1, String value2) {
+            addCriterion("video_path between", value1, value2, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoPathNotBetween(String value1, String value2) {
+            addCriterion("video_path not between", value1, value2, "videoPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathIsNull() {
+            addCriterion("production_path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathIsNotNull() {
+            addCriterion("production_path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathEqualTo(String value) {
+            addCriterion("production_path =", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathNotEqualTo(String value) {
+            addCriterion("production_path <>", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathGreaterThan(String value) {
+            addCriterion("production_path >", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathGreaterThanOrEqualTo(String value) {
+            addCriterion("production_path >=", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathLessThan(String value) {
+            addCriterion("production_path <", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathLessThanOrEqualTo(String value) {
+            addCriterion("production_path <=", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathLike(String value) {
+            addCriterion("production_path like", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathNotLike(String value) {
+            addCriterion("production_path not like", value, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathIn(List<String> values) {
+            addCriterion("production_path in", values, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathNotIn(List<String> values) {
+            addCriterion("production_path not in", values, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathBetween(String value1, String value2) {
+            addCriterion("production_path between", value1, value2, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andProductionPathNotBetween(String value1, String value2) {
+            addCriterion("production_path not between", value1, value2, "productionPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdIsNull() {
+            addCriterion("root_source_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdIsNotNull() {
+            addCriterion("root_source_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdEqualTo(String value) {
+            addCriterion("root_source_id =", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotEqualTo(String value) {
+            addCriterion("root_source_id <>", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdGreaterThan(String value) {
+            addCriterion("root_source_id >", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("root_source_id >=", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLessThan(String value) {
+            addCriterion("root_source_id <", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLessThanOrEqualTo(String value) {
+            addCriterion("root_source_id <=", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLike(String value) {
+            addCriterion("root_source_id like", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotLike(String value) {
+            addCriterion("root_source_id not like", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdIn(List<String> values) {
+            addCriterion("root_source_id in", values, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotIn(List<String> values) {
+            addCriterion("root_source_id not in", values, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdBetween(String value1, String value2) {
+            addCriterion("root_source_id between", value1, value2, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotBetween(String value1, String value2) {
+            addCriterion("root_source_id not between", value1, value2, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdIsNull() {
+            addCriterion("root_share_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdIsNotNull() {
+            addCriterion("root_share_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdEqualTo(String value) {
+            addCriterion("root_share_id =", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdNotEqualTo(String value) {
+            addCriterion("root_share_id <>", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdGreaterThan(String value) {
+            addCriterion("root_share_id >", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdGreaterThanOrEqualTo(String value) {
+            addCriterion("root_share_id >=", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdLessThan(String value) {
+            addCriterion("root_share_id <", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdLessThanOrEqualTo(String value) {
+            addCriterion("root_share_id <=", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdLike(String value) {
+            addCriterion("root_share_id like", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdNotLike(String value) {
+            addCriterion("root_share_id not like", value, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdIn(List<String> values) {
+            addCriterion("root_share_id in", values, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdNotIn(List<String> values) {
+            addCriterion("root_share_id not in", values, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdBetween(String value1, String value2) {
+            addCriterion("root_share_id between", value1, value2, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootShareIdNotBetween(String value1, String value2) {
+            addCriterion("root_share_id not between", value1, value2, "rootShareId");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexIsNull() {
+            addCriterion("`index` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexIsNotNull() {
+            addCriterion("`index` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexEqualTo(Integer value) {
+            addCriterion("`index` =", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexNotEqualTo(Integer value) {
+            addCriterion("`index` <>", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexGreaterThan(Integer value) {
+            addCriterion("`index` >", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`index` >=", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexLessThan(Integer value) {
+            addCriterion("`index` <", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexLessThanOrEqualTo(Integer value) {
+            addCriterion("`index` <=", value, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexIn(List<Integer> values) {
+            addCriterion("`index` in", values, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexNotIn(List<Integer> values) {
+            addCriterion("`index` not in", values, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexBetween(Integer value1, Integer value2) {
+            addCriterion("`index` between", value1, value2, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndexNotBetween(Integer value1, Integer value2) {
+            addCriterion("`index` not between", value1, value2, "index");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNull() {
+            addCriterion("trace_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNotNull() {
+            addCriterion("trace_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdEqualTo(String value) {
+            addCriterion("trace_id =", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotEqualTo(String value) {
+            addCriterion("trace_id <>", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThan(String value) {
+            addCriterion("trace_id >", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("trace_id >=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThan(String value) {
+            addCriterion("trace_id <", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThanOrEqualTo(String value) {
+            addCriterion("trace_id <=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLike(String value) {
+            addCriterion("trace_id like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotLike(String value) {
+            addCriterion("trace_id not like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIn(List<String> values) {
+            addCriterion("trace_id in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotIn(List<String> values) {
+            addCriterion("trace_id not in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdBetween(String value1, String value2) {
+            addCriterion("trace_id between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotBetween(String value1, String value2) {
+            addCriterion("trace_id not between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlIsNull() {
+            addCriterion("wx_url is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlIsNotNull() {
+            addCriterion("wx_url is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlEqualTo(String value) {
+            addCriterion("wx_url =", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlNotEqualTo(String value) {
+            addCriterion("wx_url <>", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlGreaterThan(String value) {
+            addCriterion("wx_url >", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlGreaterThanOrEqualTo(String value) {
+            addCriterion("wx_url >=", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlLessThan(String value) {
+            addCriterion("wx_url <", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlLessThanOrEqualTo(String value) {
+            addCriterion("wx_url <=", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlLike(String value) {
+            addCriterion("wx_url like", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlNotLike(String value) {
+            addCriterion("wx_url not like", value, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlIn(List<String> values) {
+            addCriterion("wx_url in", values, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlNotIn(List<String> values) {
+            addCriterion("wx_url not in", values, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlBetween(String value1, String value2) {
+            addCriterion("wx_url between", value1, value2, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andWxUrlNotBetween(String value1, String value2) {
+            addCriterion("wx_url not between", value1, value2, "wxUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdIsNull() {
+            addCriterion("crawler_video_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdIsNotNull() {
+            addCriterion("crawler_video_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdEqualTo(Integer value) {
+            addCriterion("crawler_video_id =", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdNotEqualTo(Integer value) {
+            addCriterion("crawler_video_id <>", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdGreaterThan(Integer value) {
+            addCriterion("crawler_video_id >", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("crawler_video_id >=", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdLessThan(Integer value) {
+            addCriterion("crawler_video_id <", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdLessThanOrEqualTo(Integer value) {
+            addCriterion("crawler_video_id <=", value, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdIn(List<Integer> values) {
+            addCriterion("crawler_video_id in", values, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdNotIn(List<Integer> values) {
+            addCriterion("crawler_video_id not in", values, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdBetween(Integer value1, Integer value2) {
+            addCriterion("crawler_video_id between", value1, value2, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCrawlerVideoIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("crawler_video_id not between", value1, value2, "crawlerVideoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIsNull() {
+            addCriterion("video_oss_path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIsNotNull() {
+            addCriterion("video_oss_path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathEqualTo(String value) {
+            addCriterion("video_oss_path =", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotEqualTo(String value) {
+            addCriterion("video_oss_path <>", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathGreaterThan(String value) {
+            addCriterion("video_oss_path >", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathGreaterThanOrEqualTo(String value) {
+            addCriterion("video_oss_path >=", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLessThan(String value) {
+            addCriterion("video_oss_path <", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLessThanOrEqualTo(String value) {
+            addCriterion("video_oss_path <=", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathLike(String value) {
+            addCriterion("video_oss_path like", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotLike(String value) {
+            addCriterion("video_oss_path not like", value, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathIn(List<String> values) {
+            addCriterion("video_oss_path in", values, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotIn(List<String> values) {
+            addCriterion("video_oss_path not in", values, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathBetween(String value1, String value2) {
+            addCriterion("video_oss_path between", value1, value2, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoOssPathNotBetween(String value1, String value2) {
+            addCriterion("video_oss_path not between", value1, value2, "videoOssPath");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNull() {
+            addCriterion("user_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("user_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(String value) {
+            addCriterion("user_id =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(String value) {
+            addCriterion("user_id <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(String value) {
+            addCriterion("user_id >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("user_id >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(String value) {
+            addCriterion("user_id <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(String value) {
+            addCriterion("user_id <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLike(String value) {
+            addCriterion("user_id like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotLike(String value) {
+            addCriterion("user_id not like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<String> values) {
+            addCriterion("user_id in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<String> values) {
+            addCriterion("user_id not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(String value1, String value2) {
+            addCriterion("user_id between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(String value1, String value2) {
+            addCriterion("user_id not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNull() {
+            addCriterion("is_delete is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIsNotNull() {
+            addCriterion("is_delete is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteEqualTo(Integer value) {
+            addCriterion("is_delete =", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotEqualTo(Integer value) {
+            addCriterion("is_delete <>", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThan(Integer value) {
+            addCriterion("is_delete >", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
+            addCriterion("is_delete >=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThan(Integer value) {
+            addCriterion("is_delete <", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
+            addCriterion("is_delete <=", value, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteIn(List<Integer> values) {
+            addCriterion("is_delete in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotIn(List<Integer> values) {
+            addCriterion("is_delete not in", values, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
+            addCriterion("is_delete not between", value1, value2, "isDelete");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 123 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/RootSource.java

@@ -0,0 +1,123 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+public class RootSource {
+    private String rootSourceId;
+
+    private String accountName;
+
+    private String ghId;
+
+    private String articleTitle;
+
+    private Integer requestTime;
+
+    private String traceId;
+
+    private Integer pushType;
+
+    private Long videoId;
+
+    private String contentId;
+
+    private String ossName;
+
+    public String getRootSourceId() {
+        return rootSourceId;
+    }
+
+    public void setRootSourceId(String rootSourceId) {
+        this.rootSourceId = rootSourceId;
+    }
+
+    public String getAccountName() {
+        return accountName;
+    }
+
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    public String getGhId() {
+        return ghId;
+    }
+
+    public void setGhId(String ghId) {
+        this.ghId = ghId;
+    }
+
+    public String getArticleTitle() {
+        return articleTitle;
+    }
+
+    public void setArticleTitle(String articleTitle) {
+        this.articleTitle = articleTitle;
+    }
+
+    public Integer getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Integer requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    public String getTraceId() {
+        return traceId;
+    }
+
+    public void setTraceId(String traceId) {
+        this.traceId = traceId;
+    }
+
+    public Integer getPushType() {
+        return pushType;
+    }
+
+    public void setPushType(Integer pushType) {
+        this.pushType = pushType;
+    }
+
+    public Long getVideoId() {
+        return videoId;
+    }
+
+    public void setVideoId(Long videoId) {
+        this.videoId = videoId;
+    }
+
+    public String getContentId() {
+        return contentId;
+    }
+
+    public void setContentId(String contentId) {
+        this.contentId = contentId;
+    }
+
+    public String getOssName() {
+        return ossName;
+    }
+
+    public void setOssName(String ossName) {
+        this.ossName = ossName;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", rootSourceId=").append(rootSourceId);
+        sb.append(", accountName=").append(accountName);
+        sb.append(", ghId=").append(ghId);
+        sb.append(", articleTitle=").append(articleTitle);
+        sb.append(", requestTime=").append(requestTime);
+        sb.append(", traceId=").append(traceId);
+        sb.append(", pushType=").append(pushType);
+        sb.append(", videoId=").append(videoId);
+        sb.append(", contentId=").append(contentId);
+        sb.append(", ossName=").append(ossName);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 881 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/RootSourceExample.java

@@ -0,0 +1,881 @@
+package com.tzld.piaoquan.longarticle.model.po;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class RootSourceExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public RootSourceExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andRootSourceIdIsNull() {
+            addCriterion("root_source_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdIsNotNull() {
+            addCriterion("root_source_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdEqualTo(String value) {
+            addCriterion("root_source_id =", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotEqualTo(String value) {
+            addCriterion("root_source_id <>", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdGreaterThan(String value) {
+            addCriterion("root_source_id >", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("root_source_id >=", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLessThan(String value) {
+            addCriterion("root_source_id <", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLessThanOrEqualTo(String value) {
+            addCriterion("root_source_id <=", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdLike(String value) {
+            addCriterion("root_source_id like", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotLike(String value) {
+            addCriterion("root_source_id not like", value, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdIn(List<String> values) {
+            addCriterion("root_source_id in", values, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotIn(List<String> values) {
+            addCriterion("root_source_id not in", values, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdBetween(String value1, String value2) {
+            addCriterion("root_source_id between", value1, value2, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRootSourceIdNotBetween(String value1, String value2) {
+            addCriterion("root_source_id not between", value1, value2, "rootSourceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNull() {
+            addCriterion("account_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNotNull() {
+            addCriterion("account_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameEqualTo(String value) {
+            addCriterion("account_name =", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotEqualTo(String value) {
+            addCriterion("account_name <>", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThan(String value) {
+            addCriterion("account_name >", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThanOrEqualTo(String value) {
+            addCriterion("account_name >=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThan(String value) {
+            addCriterion("account_name <", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThanOrEqualTo(String value) {
+            addCriterion("account_name <=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLike(String value) {
+            addCriterion("account_name like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotLike(String value) {
+            addCriterion("account_name not like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIn(List<String> values) {
+            addCriterion("account_name in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotIn(List<String> values) {
+            addCriterion("account_name not in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameBetween(String value1, String value2) {
+            addCriterion("account_name between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotBetween(String value1, String value2) {
+            addCriterion("account_name not between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNull() {
+            addCriterion("gh_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNotNull() {
+            addCriterion("gh_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdEqualTo(String value) {
+            addCriterion("gh_id =", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotEqualTo(String value) {
+            addCriterion("gh_id <>", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThan(String value) {
+            addCriterion("gh_id >", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThanOrEqualTo(String value) {
+            addCriterion("gh_id >=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThan(String value) {
+            addCriterion("gh_id <", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThanOrEqualTo(String value) {
+            addCriterion("gh_id <=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLike(String value) {
+            addCriterion("gh_id like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotLike(String value) {
+            addCriterion("gh_id not like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIn(List<String> values) {
+            addCriterion("gh_id in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotIn(List<String> values) {
+            addCriterion("gh_id not in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdBetween(String value1, String value2) {
+            addCriterion("gh_id between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotBetween(String value1, String value2) {
+            addCriterion("gh_id not between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIsNull() {
+            addCriterion("article_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIsNotNull() {
+            addCriterion("article_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleEqualTo(String value) {
+            addCriterion("article_title =", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotEqualTo(String value) {
+            addCriterion("article_title <>", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleGreaterThan(String value) {
+            addCriterion("article_title >", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("article_title >=", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLessThan(String value) {
+            addCriterion("article_title <", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLessThanOrEqualTo(String value) {
+            addCriterion("article_title <=", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleLike(String value) {
+            addCriterion("article_title like", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotLike(String value) {
+            addCriterion("article_title not like", value, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleIn(List<String> values) {
+            addCriterion("article_title in", values, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotIn(List<String> values) {
+            addCriterion("article_title not in", values, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleBetween(String value1, String value2) {
+            addCriterion("article_title between", value1, value2, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andArticleTitleNotBetween(String value1, String value2) {
+            addCriterion("article_title not between", value1, value2, "articleTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIsNull() {
+            addCriterion("request_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIsNotNull() {
+            addCriterion("request_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeEqualTo(Integer value) {
+            addCriterion("request_time =", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotEqualTo(Integer value) {
+            addCriterion("request_time <>", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeGreaterThan(Integer value) {
+            addCriterion("request_time >", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("request_time >=", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeLessThan(Integer value) {
+            addCriterion("request_time <", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeLessThanOrEqualTo(Integer value) {
+            addCriterion("request_time <=", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIn(List<Integer> values) {
+            addCriterion("request_time in", values, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotIn(List<Integer> values) {
+            addCriterion("request_time not in", values, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeBetween(Integer value1, Integer value2) {
+            addCriterion("request_time between", value1, value2, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotBetween(Integer value1, Integer value2) {
+            addCriterion("request_time not between", value1, value2, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNull() {
+            addCriterion("trace_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIsNotNull() {
+            addCriterion("trace_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdEqualTo(String value) {
+            addCriterion("trace_id =", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotEqualTo(String value) {
+            addCriterion("trace_id <>", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThan(String value) {
+            addCriterion("trace_id >", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdGreaterThanOrEqualTo(String value) {
+            addCriterion("trace_id >=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThan(String value) {
+            addCriterion("trace_id <", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLessThanOrEqualTo(String value) {
+            addCriterion("trace_id <=", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdLike(String value) {
+            addCriterion("trace_id like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotLike(String value) {
+            addCriterion("trace_id not like", value, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdIn(List<String> values) {
+            addCriterion("trace_id in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotIn(List<String> values) {
+            addCriterion("trace_id not in", values, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdBetween(String value1, String value2) {
+            addCriterion("trace_id between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTraceIdNotBetween(String value1, String value2) {
+            addCriterion("trace_id not between", value1, value2, "traceId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNull() {
+            addCriterion("push_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIsNotNull() {
+            addCriterion("push_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeEqualTo(Integer value) {
+            addCriterion("push_type =", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotEqualTo(Integer value) {
+            addCriterion("push_type <>", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThan(Integer value) {
+            addCriterion("push_type >", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("push_type >=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThan(Integer value) {
+            addCriterion("push_type <", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("push_type <=", value, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeIn(List<Integer> values) {
+            addCriterion("push_type in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotIn(List<Integer> values) {
+            addCriterion("push_type not in", values, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeBetween(Integer value1, Integer value2) {
+            addCriterion("push_type between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPushTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("push_type not between", value1, value2, "pushType");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIsNull() {
+            addCriterion("video_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIsNotNull() {
+            addCriterion("video_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdEqualTo(Long value) {
+            addCriterion("video_id =", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotEqualTo(Long value) {
+            addCriterion("video_id <>", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdGreaterThan(Long value) {
+            addCriterion("video_id >", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("video_id >=", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdLessThan(Long value) {
+            addCriterion("video_id <", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdLessThanOrEqualTo(Long value) {
+            addCriterion("video_id <=", value, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdIn(List<Long> values) {
+            addCriterion("video_id in", values, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotIn(List<Long> values) {
+            addCriterion("video_id not in", values, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdBetween(Long value1, Long value2) {
+            addCriterion("video_id between", value1, value2, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVideoIdNotBetween(Long value1, Long value2) {
+            addCriterion("video_id not between", value1, value2, "videoId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNull() {
+            addCriterion("content_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIsNotNull() {
+            addCriterion("content_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdEqualTo(String value) {
+            addCriterion("content_id =", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotEqualTo(String value) {
+            addCriterion("content_id <>", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThan(String value) {
+            addCriterion("content_id >", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("content_id >=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThan(String value) {
+            addCriterion("content_id <", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLessThanOrEqualTo(String value) {
+            addCriterion("content_id <=", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdLike(String value) {
+            addCriterion("content_id like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotLike(String value) {
+            addCriterion("content_id not like", value, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdIn(List<String> values) {
+            addCriterion("content_id in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotIn(List<String> values) {
+            addCriterion("content_id not in", values, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdBetween(String value1, String value2) {
+            addCriterion("content_id between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIdNotBetween(String value1, String value2) {
+            addCriterion("content_id not between", value1, value2, "contentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameIsNull() {
+            addCriterion("oss_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameIsNotNull() {
+            addCriterion("oss_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameEqualTo(String value) {
+            addCriterion("oss_name =", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameNotEqualTo(String value) {
+            addCriterion("oss_name <>", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameGreaterThan(String value) {
+            addCriterion("oss_name >", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameGreaterThanOrEqualTo(String value) {
+            addCriterion("oss_name >=", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameLessThan(String value) {
+            addCriterion("oss_name <", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameLessThanOrEqualTo(String value) {
+            addCriterion("oss_name <=", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameLike(String value) {
+            addCriterion("oss_name like", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameNotLike(String value) {
+            addCriterion("oss_name not like", value, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameIn(List<String> values) {
+            addCriterion("oss_name in", values, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameNotIn(List<String> values) {
+            addCriterion("oss_name not in", values, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameBetween(String value1, String value2) {
+            addCriterion("oss_name between", value1, value2, "ossName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOssNameNotBetween(String value1, String value2) {
+            addCriterion("oss_name not between", value1, value2, "ossName");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 15 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/ArticleSortParam.java

@@ -0,0 +1,15 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Data;
+
+@Data
+public class ArticleSortParam {
+
+    private String accountId;
+    private String accountName;
+    private String ghId;
+    private String strategy;
+    private Integer publishNum;
+    private String planId;
+    private Integer pushType;
+}

+ 23 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/ContentItemVO.java

@@ -0,0 +1,23 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class ContentItemVO {
+    //"发布内容ID")
+    private String publishContentId;
+    //"来源ID,一般为生成内容ID")
+    private String sourceId;
+    //"标题")
+    private String title;
+    //"正文")
+    private String content;
+    private String flowPoolLevelTag;
+
+}

+ 23 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/CreatePushTaskParam.java

@@ -0,0 +1,23 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.List;
+
+@Getter
+@Setter
+@ToString
+public class CreatePushTaskParam {
+
+    //"计划ID")
+    private String planId;
+    //"账号ID")
+    private String accountId;
+    //"1-手动推送;2-自动群发;3-自动发表;4-自动发布;5-分组群发;6-触发推送")
+    private Integer pushType;
+    //"计划推送时间戳")
+    private Long pushScheduleTimestamp;
+    private List<PushContentParam> pushContentList;
+}

+ 16 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/FilterSortContentParam.java

@@ -0,0 +1,16 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class FilterSortContentParam {
+
+    //"发布内容ID")
+    private String publishContentId;
+    //"过滤原因")
+    private String filterReason;
+
+}

+ 12 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/FilterSortParam.java

@@ -0,0 +1,12 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Getter
+@Setter
+public class FilterSortParam {
+    private List<FilterSortContentParam> filterSortContentList;
+}

+ 18 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/GetContentsParam.java

@@ -0,0 +1,18 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class GetContentsParam {
+
+    //"计划ID")
+    private String planId;
+    //"账号ID")
+    private String accountId;
+    //"页码,第1开始")
+    private Integer pageNum;
+    //"每页个数")
+    private Integer pageSize;
+}

+ 12 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/GzhArticleSortTaskParam.java

@@ -0,0 +1,12 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class GzhArticleSortTaskParam {
+    //"策略")
+    private String strategy;
+    // "账号ID列表")
+    private List<String> accountIds;
+}

+ 20 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemContentVO.java

@@ -0,0 +1,20 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class LongArticleSystemContentVO {
+
+    //"内容总数")
+    private Long totalCount;
+    //"内容列表")
+    private List<ContentItemVO> contentItemList;
+}

+ 46 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemPlan.java

@@ -0,0 +1,46 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+public class LongArticleSystemPlan {
+
+    //"计划ID")
+    private String id;
+    //"计划名称")
+    private String name;
+    //"操作账号")
+    private List<LongArticleSystemPlanAccount> accountList;
+    //"发布频率(0-每天,1-固定日期)")
+    private Integer publishRate;
+    //"发布频率固定-发布日期 星期 数组[1,2,3,4,5,6,7]")
+    private String publishDate;
+    //"发布窗口时间-开始时间")
+    private String publishWindowStart;
+    //"发布频率固定-结束时间")
+    private String publishWindowEnd;
+    //"发布时间间隔(单位:分钟)")
+    private Integer publishTimeInterval;
+    //"发布数量")
+    private Integer publishNum;
+    //"每次发布数量(公众号每次推送文章数量)")
+    private Integer publishPerNum;
+    //"每次最少发布数量(公众号每次最少推送文章数量)")
+    private Integer publishPerMinNum;
+    //"公众号-推送时间")
+    private String publishPushTime;
+    //"推送方式(公众号),1-手动推送;2-自动群发;3-自动发表;4-自动发布;5-分组群发;6-触发推送")
+    private Integer pushType;
+    //"小程序插入开关(0-关闭 1-打开)")
+    private Integer miniprogramInsertFlag;
+    //"小程序插入任务")
+    private List<MiniprogramInsertTaskParam> miniprogramInsertTasks;
+    //"公众号文章排序任务")
+    private List<GzhArticleSortTaskParam> gzhArticleSortTask;
+}

+ 19 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemPlanAccount.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+public class LongArticleSystemPlanAccount {
+    //"账号ID")
+    private String id;
+    //"账号名称")
+    private String name;
+    //"公众号ID")
+    private String ghId;
+    // 发布开关(0-关闭,1-打开)
+    private Integer publishOpenFlag;
+}

+ 16 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MatchMiniprogramStatusParam.java

@@ -0,0 +1,16 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class MatchMiniprogramStatusParam {
+
+    //"发布内容ID")
+    private String publishContentId;
+    //"小程序匹配状态(2-匹配成功,3-匹配失败)")
+    private Integer status;
+    //"匹配失败原因")
+    private String errorMsg;
+}

+ 16 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MatchVideoVo.java

@@ -0,0 +1,16 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Data;
+
+@Data
+public class MatchVideoVo {
+
+    private String ghId;
+    private String accountName;
+    private String content;
+    private String title;
+    private String cover;
+    private String strategy;
+    private String articleId;
+    private String flowPoolLevelTag;
+}

+ 22 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/MiniprogramInsertTaskParam.java

@@ -0,0 +1,22 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MiniprogramInsertTaskParam {
+
+    //"任务ID")
+    private String taskId;
+    //"任务序号")
+    private Integer taskIndex;
+    //"任务名称")
+    private String name;
+    //"策略")
+    private String strategy;
+    //"账号ID列表")
+    private List<String> accountIds;
+    //"小程序用途,1-自然流,2-投流'")
+    private Integer miniprogramUseType;
+}

+ 33 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PublishMiniprogramParam.java

@@ -0,0 +1,33 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class PublishMiniprogramParam {
+
+    private String productionCover;
+    private String productionName;
+    private String productionPath;
+    private String programAvatar;
+    private String programId;
+    private String programName;
+    private String rootShareId;
+    private String source;
+    private String videoUrl;
+    private BigDecimal paragraphPosition;
+    private Integer mini_id;
+    private String traceId;
+    private Integer miniprogramUseType;
+
+
+
+}

+ 17 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushContentParam.java

@@ -0,0 +1,17 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.List;
+
+@Getter
+@Setter
+@ToString
+public class PushContentParam {
+    //"发布内容ID")
+    private String publishContentId;
+    //"排版内容")
+    private List<PublishMiniprogramParam> miniprogramCardList;
+}

+ 15 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushRecordParam.java

@@ -0,0 +1,15 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+public class PushRecordParam {
+    //计划ID")
+    private String planId;
+    //账号ID")
+    private String publishAccountId;
+}

+ 36 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushRecordVO.java

@@ -0,0 +1,36 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class PushRecordVO {
+    //推送ID")
+    private String pushId;
+    //计划ID")
+    private String planId;
+    //账号ID")
+    private String publishAccountId;
+    //推送方式,1-手动推送;2-自动群发;3-自动发表;4-自动发布;5-分组群发;6-触发推送")
+    private Integer pushType;
+    //推送到草稿箱状态(0-待推送,1-推送中,2-推送成功,3-推送失败)")
+    private Integer pushStatus;
+    //发表状态(-1-未推送不能发表,0-待发表,1-发表中,2-发表成功,3-发表失败)")
+    private Integer publishStatus;
+    //错误代码")
+    private String errorCode;
+    //错误信息")
+    private String errorMsg;
+    //推送计划时间戳")
+    private Long pushScheduleTimestamp;
+    //推送完成时间戳")
+    private Long pushFinishTimestamp;
+    //发布内容数量")
+    private Integer publishContentCount;
+}

+ 11 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushStatusParam.java

@@ -0,0 +1,11 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class PushStatusParam {
+
+    private String pushId;
+}

+ 26 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/PushStatusVO.java

@@ -0,0 +1,26 @@
+package com.tzld.piaoquan.longarticle.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@ToString
+public class PushStatusVO {
+
+    //"推送ID")
+    private String pushId;
+    //"推送到草稿箱状态(0-待推送,1-推送中,2-推送成功,3-推送失败)")
+    private Integer pushStatus;
+    //"发表状态(-1-未推送不能发表,0-待发表,1-发表中,2-发表成功,3-发表失败)")
+    private Integer publishStatus;
+    //错误码
+    private String errorCode;
+    //"错误信息")
+    private String errorMsg;
+    //"推送完成时间戳")
+    private Long pushFinishTimestamp;
+}

+ 4 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/CardService.java

@@ -0,0 +1,4 @@
+package com.tzld.piaoquan.longarticle.service.local;
+
+public interface CardService {
+}

+ 4 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/ContentService.java

@@ -0,0 +1,4 @@
+package com.tzld.piaoquan.longarticle.service.local;
+
+public interface ContentService {
+}

+ 12 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/CoreService.java

@@ -0,0 +1,12 @@
+package com.tzld.piaoquan.longarticle.service.local;
+
+public interface CoreService {
+
+    void initPlanAccount();
+
+    void matchContent() throws InterruptedException;
+
+    void core() throws InterruptedException;
+
+    void getPushStatus();
+}

+ 8 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/KimiService.java

@@ -0,0 +1,8 @@
+package com.tzld.piaoquan.longarticle.service.local;
+
+import com.tzld.piaoquan.longarticle.model.po.LongArticlesText;
+
+public interface KimiService {
+
+    LongArticlesText getKimiText(String contentId);
+}

+ 35 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/PlanAccountService.java

@@ -0,0 +1,35 @@
+package com.tzld.piaoquan.longarticle.service.local;
+
+import com.tzld.piaoquan.longarticle.model.po.Plan;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+
+import java.util.List;
+
+public interface PlanAccountService {
+
+    void saveOrUpdatePlanAccount(PlanAccount planAccount);
+
+    void saveOrUpdatePlan(Plan plan);
+
+    List<PlanAccount> getPlanAccountByPlanId(String planId);
+
+    List<PlanAccount> getMatchPlanAccount();
+
+    List<PlanAccount> getNormalPlanAccount();
+
+    List<PlanAccount> getPlanAccount(String accountId);
+
+    List<Plan> getPlanList();
+
+    void delPlan(String planId);
+
+    void delAccount(String planId, String accountId);
+
+    void updateMatchStatus(Integer status, Long id);
+
+    void updateStatus(Integer status, Long id);
+
+    PlanAccount getPlanAccountById(Long id);
+
+    void updateRetry(PlanAccount planAccount);
+}

+ 162 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CardServiceImpl.java

@@ -0,0 +1,162 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.PublishContent;
+import com.tzld.piaoquan.longarticle.model.po.PublishMiniprogram;
+import com.tzld.piaoquan.longarticle.service.local.CardService;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
+
+@Slf4j
+@Service
+public class CardServiceImpl implements CardService {
+
+    @ApolloJsonValue("${miniMap:{}}")
+    private JSONObject miniProgramMap;
+
+    @Autowired
+    AigcService aigcService;
+
+
+    public JSONObject createGzhPath(String videoId, String sharedUid, String ghId, Integer miniProgramType) throws UnsupportedEncodingException {
+        String rootShareId = UUID.randomUUID().toString();
+        String rootSourceId;
+        switch (miniProgramType) {
+            case 1:
+                rootSourceId = "longArticles_" + generateSourceId();
+                break;
+            case 2:
+                rootSourceId = "touliu_tencentGzhArticle_" + ghId + "_" + generateSourceId();
+                break;
+            case 3:
+                rootSourceId = "WeCom_" + generateSourceId();
+                break;
+            default:
+                rootSourceId = "Error mini_program_type " + miniProgramType;
+        }
+
+        String url = String.format("pages/user-videos?id=%s&su=%s&fromGzh=1&rootShareId=%s&shareId=%s&rootSourceId=%s",
+                videoId, sharedUid, rootShareId, rootShareId, rootSourceId);
+        String productionPath = String.format("pages/category?jumpPage=%s", URLEncoder.encode(url, StandardCharsets.UTF_8.toString()));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("rootShareId", rootShareId);
+        jsonObject.put("rootSourceId", rootSourceId);
+        jsonObject.put("productionPath", productionPath);
+        return jsonObject;
+    }
+
+    private String generateSourceId() {
+        long timestamp = System.currentTimeMillis();
+        int randomNum = new Random().nextInt(9000) + 1000;
+        String hashInput = timestamp + "-" + randomNum;
+        return md5(hashInput);
+    }
+
+    private String md5(String input) {
+        try {
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            byte[] messageDigest = md.digest(input.getBytes(StandardCharsets.UTF_8));
+            StringBuilder sb = new StringBuilder();
+            for (byte b : messageDigest) {
+                sb.append(String.format("%02x", b));
+            }
+            return sb.toString();
+        } catch (NoSuchAlgorithmException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public PublishMiniprogramBo generateSingleCard(Integer index, Integer miniId, VideoDetail videoDetail,
+                                                   PlanAccount planAccount, PublishContent publishContent) throws UnsupportedEncodingException {
+        String strMiniId = String.valueOf(miniId);
+        JSONObject miniInfo = miniProgramMap.getJSONObject(strMiniId);
+        String avatar = miniInfo.getString("avatar");
+        String appId = miniInfo.getString("id");
+        String appName = miniInfo.getString("name");
+
+        String videoId = videoDetail.getVideoId();
+        String uid = videoDetail.getUid();
+        JSONObject jsonObject = createGzhPath(videoId, uid, planAccount.getGhId(), planAccount.getMiniprogramUseType());
+
+        PublishMiniprogramBo publishMiniprogramBo = new PublishMiniprogramBo();
+        publishMiniprogramBo.setContentId(publishContent.getId());
+        publishMiniprogramBo.setPlanAccountId(planAccount.getId());
+        publishMiniprogramBo.setAppId(appId);
+        publishMiniprogramBo.setPublishContentId(publishContent.getPublishContentId());
+        publishMiniprogramBo.setAppName(appName);
+        publishMiniprogramBo.setAvatar(avatar);
+        publishMiniprogramBo.setMiniId(miniId);
+        publishMiniprogramBo.setMiniProgramType(planAccount.getMiniprogramUseType());
+        publishMiniprogramBo.setVideoId(Long.parseLong(videoId));
+        publishMiniprogramBo.setSource(videoDetail.getSource());
+        publishMiniprogramBo.setVideoTitle(videoDetail.getKimiTitle());
+        publishMiniprogramBo.setVideoCover(videoDetail.getVideoCover());
+        publishMiniprogramBo.setVideoPath(videoDetail.getVideoPath());
+        publishMiniprogramBo.setProductionPath(jsonObject.getString("productionPath"));
+        publishMiniprogramBo.setRootSourceId(jsonObject.getString("rootSourceId"));
+        publishMiniprogramBo.setRootShareId(jsonObject.getString("rootShareId"));
+        publishMiniprogramBo.setIndex(index);
+        publishMiniprogramBo.setTraceId(videoDetail.getTraceId());
+        publishMiniprogramBo.setCrawlerVideoId(videoDetail.getCrawlerVideoId());
+        publishMiniprogramBo.setVideoOssPath(videoDetail.getVideoOss());
+        publishMiniprogramBo.setUserId(videoDetail.getUid());
+        return publishMiniprogramBo;
+    }
+
+    public List<PublishMiniprogramBo> generateCards(List<VideoDetail> videoDetails, PlanAccount planAccount, PublishContent publishContent) {
+        try {
+            int longArticlesMiniProgramId = 25;
+            int touliuMiniProgramId = 33;
+            int weComMiniProgramId = 27;
+            int miniId = 0;
+            List<PublishMiniprogramBo> cardList = new ArrayList<>();
+            switch (planAccount.getMiniprogramUseType()) {
+                case 1:
+                    miniId = longArticlesMiniProgramId;
+                    break;
+                case 2:
+                    miniId = touliuMiniProgramId;
+                    break;
+                case 3:
+                    miniId = weComMiniProgramId;
+                    break;
+                default:
+                    break;
+            }
+            if (miniId == 0) {
+                return null;
+            }
+            for (int index = 0; index < videoDetails.size(); index++) {
+                VideoDetail videoDetail = videoDetails.get(index);
+                PublishMiniprogramBo card = generateSingleCard(index + 1, miniId, videoDetail, planAccount, publishContent);
+                if (card != null) {
+                    String videoCover = card.getVideoCover();
+                    String wxUrl = aigcService.pushCover(videoCover, card.getPublishContentId());
+                    if (StringUtils.isEmpty(wxUrl)) {
+                        continue;
+                    }
+                    card.setWxUrl(wxUrl);
+                    cardList.add(card);
+                }
+            }
+            return cardList;
+        } catch (UnsupportedEncodingException e) {
+            log.error("generateCards error {}", e.getMessage());
+        }
+        return null;
+    }
+}

+ 284 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/ContentServiceImpl.java

@@ -0,0 +1,284 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
+import com.tzld.piaoquan.longarticle.common.enums.PublishGzhPushTypeEnum;
+import com.tzld.piaoquan.longarticle.dao.mapper.CrawlerVideoMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.MatchVideoMapper;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortRequest;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponse;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponseData;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.*;
+import com.tzld.piaoquan.longarticle.model.vo.*;
+import com.tzld.piaoquan.longarticle.service.local.ContentService;
+import com.tzld.piaoquan.longarticle.service.local.KimiService;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import com.tzld.piaoquan.longarticle.service.remote.SortService;
+import com.tzld.piaoquan.longarticle.service.remote.VideoService;
+import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+
+@Slf4j
+@Service
+public class ContentServiceImpl implements ContentService {
+    @ApolloJsonValue("${testAccountLevel2:{}}")
+    private Map<String, Integer> ghIdMap;
+
+    @Autowired
+    private MatchVideoMapper matchVideoMapper;
+
+    @Autowired
+    private CrawlerVideoMapper crawlerVideoMapper;
+
+    @Autowired
+    private PublicContentServiceImpl publicContentService;
+
+    @Autowired
+    private AigcService aigcService;
+
+    @Autowired
+    private SortService sortService;
+
+    @Autowired
+    private KimiService kimiService;
+
+    @Autowired
+    private VideoService videoService;
+
+
+    public MatchVideo getContent(String contentId, String ghId, Integer publishFlag) {
+        MatchVideoExample matchVideoExample = new MatchVideoExample();
+        matchVideoExample.createCriteria().andGhIdEqualTo(ghId).andContentIdEqualTo(contentId)
+                .andPublishFlagEqualTo(publishFlag);
+        List<MatchVideo> matchVideos = matchVideoMapper.selectByExample(matchVideoExample);
+        if (CollectionUtils.isEmpty(matchVideos)) {
+            return null;
+        }
+        return matchVideos.get(0);
+    }
+
+    public MatchVideo getMatchVideo(PublishContent publishContent, PlanAccount planAccount) {
+        MatchVideoExample matchVideoExample = new MatchVideoExample();
+        matchVideoExample.createCriteria().andGhIdEqualTo(planAccount.getGhId()).andContentIdEqualTo(publishContent.getSourceId())
+                .andPublishFlagIn(Arrays.asList(1, 2));
+        matchVideoExample.setOrderByClause("publish_flag desc");
+        List<MatchVideo> matchVideos = matchVideoMapper.selectByExample(matchVideoExample);
+        if (CollectionUtils.isEmpty(matchVideos)) {
+            return null;
+        }
+        return matchVideos.get(0);
+    }
+
+    public void updateMatchContent(PublishContent publishContent,
+                                   List<PublishMiniprogramBo> publishMiniprogramBoList, MatchVideo matchVideo) {
+        try {
+            JSONArray jsonArray = getResponse(publishMiniprogramBoList);
+            String traceId = matchVideo.getTraceId();
+            MatchVideo updateMatchVideo = new MatchVideo();
+            updateMatchVideo.setId(matchVideo.getId());
+            updateMatchVideo.setContentStatus(4);
+            updateMatchVideo.setPublishFlag(2);
+            updateMatchVideo.setResponse(jsonArray.toJSONString());
+            matchVideoMapper.updateByPrimaryKeySelective(updateMatchVideo);
+            publicContentService.updatePublishContentTraceId(traceId, publishContent.getId());
+        } catch (Exception e) {
+            log.error("updateMatchContent error", e);
+        }
+    }
+
+    private JSONArray getResponse(List<PublishMiniprogramBo> publishMiniprogramBoList) {
+        JSONArray jsonArray = new JSONArray();
+        for (PublishMiniprogramBo publishMiniprogramBo : publishMiniprogramBoList) {
+            //生成match表json数据
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("uid", publishMiniprogramBo.getUserId());
+            jsonObject.put("source", publishMiniprogramBo.getSource());
+            jsonObject.put("kimiTitle", publishMiniprogramBo.getVideoTitle());
+            jsonObject.put("videoId", publishMiniprogramBo.getVideoId());
+            jsonObject.put("videoCover", publishMiniprogramBo.getVideoCover());
+            jsonObject.put("videoPath", publishMiniprogramBo.getVideoPath());
+            jsonObject.put("videoOss", publishMiniprogramBo.getVideoOssPath());
+            jsonObject.put("rootSourceId", publishMiniprogramBo.getRootSourceId());
+            jsonArray.add(jsonObject);
+        }
+        return jsonArray;
+    }
+
+    public List<PublishArticleData> getWaitingSort(PlanAccount planAccount) {
+        //获取待排序数据
+        GetContentsParam waitingSortParam = new GetContentsParam();
+        waitingSortParam.setPlanId(planAccount.getPlanId());
+        waitingSortParam.setAccountId(planAccount.getAccountId());
+        waitingSortParam.setPageNum(1);
+        waitingSortParam.setPageSize(planAccount.getPublishPreNum());
+        LongArticleSystemContentVO longArticleSystemContentVO = aigcService.listWaitingSortContents(waitingSortParam);
+        if (longArticleSystemContentVO == null
+                || longArticleSystemContentVO.getTotalCount() < planAccount.getPublishPreMinNum()
+                || CollectionUtils.isEmpty(longArticleSystemContentVO.getContentItemList())
+                || longArticleSystemContentVO.getContentItemList().size() < planAccount.getPublishPreMinNum()) {
+            return new ArrayList<>();
+        }
+        log.info("aigcService.listWaitingSortContents.total={}", longArticleSystemContentVO.getTotalCount());
+        List<PublishArticleData> waitSortList = new ArrayList<>();
+        for (ContentItemVO contentItemVO : longArticleSystemContentVO.getContentItemList()) {
+            PublishArticleData publishArticleData = new PublishArticleData();
+            publishArticleData.setId(contentItemVO.getPublishContentId());
+            publishArticleData.setSourceId(contentItemVO.getSourceId());
+            publishArticleData.setTitle(contentItemVO.getTitle());
+            publishArticleData.setContentPoolType(contentItemVO.getFlowPoolLevelTag());
+            waitSortList.add(publishArticleData);
+        }
+        return waitSortList;
+    }
+
+    public List<PublishArticleData> getSortList(PlanAccount planAccount) {
+        ArticleSortRequest articleSortRequest = new ArticleSortRequest();
+        articleSortRequest.setAccountId(planAccount.getAccountId());
+        articleSortRequest.setAccountName(planAccount.getAccountName());
+        articleSortRequest.setGhId(planAccount.getGhId());
+        //测试参数
+//            articleSortRequest.setStrategy("ArticleRankRandom");
+//            articleSortRequest.setExcludeLog(true);
+        articleSortRequest.setStrategy(planAccount.getSortStrategy());
+        articleSortRequest.setPublishNum(planAccount.getPublishPreNum());
+        if (Objects.equals(PublishGzhPushTypeEnum.auto_group_publish.getVal(), planAccount.getPushType())) {
+            articleSortRequest.setPublishNum(planAccount.getPublishNum());
+        }
+        articleSortRequest.setPlanId(planAccount.getPlanId());
+        articleSortRequest.setPushType(planAccount.getPushType());
+        log.info("articleSortRequest={}",JSONObject.toJSONString(articleSortRequest));
+        ArticleSortResponse articleSortResponse = sortService.publishArticleSort(articleSortRequest);
+
+        if (articleSortResponse == null || articleSortResponse.getData() == null) {
+            log.info("articleSortResponse={}", articleSortResponse);
+            String message = String.format("排序结果为空 planId=%s accountName=%s", planAccount.getPlanId(), planAccount.getAccountName());
+            LarkRobotUtil.sendMessage(message);
+
+            return new ArrayList<>();
+        }
+        ArticleSortResponseData data = articleSortResponse.getData();
+        if (!CollectionUtils.isEmpty(data.getFilter_list())) {
+            List<FilterSortContentParam> list = new ArrayList<>();
+            for (PublishArticleData publishArticleData : data.getFilter_list()) {
+                FilterSortContentParam param = new FilterSortContentParam();
+                param.setFilterReason(publishArticleData.getFilterReason());
+                param.setPublishContentId(publishArticleData.getId());
+                list.add(param);
+            }
+            FilterSortParam param = new FilterSortParam();
+            param.setFilterSortContentList(list);
+            aigcService.filterSortContents(param);
+        }
+        if (CollectionUtils.isEmpty(articleSortResponse.getData().getRank_list())
+                || articleSortResponse.getData().getRank_list().size() < planAccount.getPublishPreMinNum()) {
+            log.info("rank_list = {}", articleSortResponse.getData().getRank_list());
+            String message = String.format("排序结果不足 planId=%s accountName=%s num=%s",
+                    planAccount.getPlanId(), planAccount.getAccountName(), articleSortResponse.getData().getRank_list().size());
+            LarkRobotUtil.sendMessage(message);
+            return new ArrayList<>();
+        }
+        return data.getRank_list();
+    }
+
+    public List<VideoDetail> getPublishVideoDetail(PublishContent publishContent, PlanAccount planAccount, MatchVideo matchVideo) {
+        List<CrawlerVideo> contentMiniVideos = getContentMiniVideo(publishContent, planAccount);
+        log.info("getPublishVideoDetail contentMiniVideos={}", contentMiniVideos);
+        if (contentMiniVideos.size() < 2) {
+            publicContentService.delPublishContent(publishContent);
+            return new ArrayList<>();
+        }
+        List<VideoDetail> videoDetails = publishVideo(contentMiniVideos, matchVideo);
+        log.info("getPublishVideoDetail videoDetails={}", videoDetails);
+        if (videoDetails.size() < 2) {
+            publicContentService.delPublishContent(publishContent);
+            return new ArrayList<>();
+        }
+        return videoDetails;
+    }
+
+    public List<VideoDetail> publishVideo(List<CrawlerVideo> contentMiniVideos, MatchVideo matchVideo) {
+        List<VideoDetail> videoDetails = new ArrayList<>();
+        //发布小程序
+        for (CrawlerVideo crawlerVideo : contentMiniVideos) {
+            Integer crawlerVideoId = crawlerVideo.getId();
+            String videoOssPath = crawlerVideo.getVideoOssPath();
+            String platform = crawlerVideo.getPlatform();
+            String userId = crawlerVideo.getUserId();
+            String traceId = matchVideo.getTraceId();
+            String kimiTitle;
+            LongArticlesText kimiText = kimiService.getKimiText(crawlerVideo.getContentId());
+            if (kimiText != null && StringUtils.isNotEmpty(kimiText.getKimiTitle())) {
+                kimiTitle = kimiText.getKimiTitle();
+            } else {
+                kimiTitle = crawlerVideo.getVideoTitle();
+            }
+            VideoDetail videoDetail = videoService.publish(videoOssPath, userId, kimiTitle);
+            if (videoDetail == null) {
+                continue;
+            }
+            videoDetail.setCrawlerVideoId(crawlerVideoId);
+            videoDetail.setKimiTitle(kimiTitle);
+            videoDetail.setUid(userId);
+            videoDetail.setVideoOss(videoOssPath);
+            videoDetail.setSource(platform);
+            videoDetail.setTraceId(traceId);
+            videoDetails.add(videoDetail);
+        }
+        return videoDetails;
+    }
+
+
+    public List<CrawlerVideo> getContentMiniVideo(PublishContent publishContent, PlanAccount planAccount) {
+        try {
+            CrawlerVideoExample example = new CrawlerVideoExample();
+            example.setOrderByClause("score desc");
+            example.createCriteria().andDownloadStatusEqualTo(2).andContentIdEqualTo(publishContent.getSourceId());
+            List<CrawlerVideo> crawlerVideoList = crawlerVideoMapper.selectByExample(example);
+            List<CrawlerVideo> videoList;
+            switch (publishContent.getContentPoolType()) {
+                case "autoArticlePoolLevel4":
+                    // 冷启层,全量做
+                    videoList = shuffleList(crawlerVideoList).subList(0, Math.min(crawlerVideoList.size(), 3));
+                    break;
+                case "autoArticlePoolLevel3":
+                    //次条,只针对具体账号做
+                    if (ghIdMap.containsKey(planAccount.getGhId())) {
+                        videoList = shuffleList(crawlerVideoList).subList(0, Math.min(crawlerVideoList.size(), 3));
+                    } else {
+                        videoList = crawlerVideoList.subList(0, Math.min(crawlerVideoList.size(), 3));
+                    }
+                    break;
+                case "autoArticlePoolLevel1":
+                    // 头条,先不做
+                    videoList = crawlerVideoList.subList(0, Math.min(crawlerVideoList.size(), 3));
+                    break;
+                default:
+                    videoList = crawlerVideoList.subList(0, Math.min(crawlerVideoList.size(), 3));
+                    break;
+            }
+            log.info("getContentMiniVideo videoList={}", videoList);
+            return videoList;
+        } catch (Exception e) {
+            log.error("getContentMiniVideo error", e);
+        }
+        return new ArrayList<>();
+    }
+
+    private <T> List<T> shuffleList(List<T> oriList) {
+        // 使用 ArrayList 创建副本
+        List<T> shuffledList = new ArrayList<>(oriList);
+        Collections.shuffle(shuffledList); // 随机打乱列表
+        return shuffledList;
+    }
+
+}

+ 704 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CoreServiceImpl.java

@@ -0,0 +1,704 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.tzld.piaoquan.longarticle.common.constants.TimeConstant;
+import com.tzld.piaoquan.longarticle.common.enums.ContentStatusEnum;
+import com.tzld.piaoquan.longarticle.common.enums.PublishGzhPushTypeEnum;
+import com.tzld.piaoquan.longarticle.dao.mapper.PlanAccountMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.PublishContentMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.PublishMiniprogramMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.RootSourceMapper;
+import com.tzld.piaoquan.longarticle.model.bo.MatchContent;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+import com.tzld.piaoquan.longarticle.model.dto.MiniprogramCardRequest;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.*;
+import com.tzld.piaoquan.longarticle.model.vo.*;
+import com.tzld.piaoquan.longarticle.service.local.CoreService;
+import com.tzld.piaoquan.longarticle.service.local.PlanAccountService;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import com.tzld.piaoquan.longarticle.service.remote.MatchService;
+import com.tzld.piaoquan.longarticle.service.remote.VideoService;
+import com.tzld.piaoquan.longarticle.service.remote.impl.SortServiceImpl;
+import com.tzld.piaoquan.longarticle.utils.DateUtil;
+import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
+import com.tzld.piaoquan.longarticle.utils.TimeZoneUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalTime;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class CoreServiceImpl implements CoreService {
+
+    @Autowired
+    private AigcService aigcService;
+
+    @Autowired
+    private SortServiceImpl sortService;
+
+    @Autowired
+    private ContentServiceImpl contentService;
+
+    @Autowired
+    private MatchService matchService;
+
+    @Autowired
+    private VideoService videoService;
+
+    @Autowired
+    private CardServiceImpl cardService;
+
+    @Autowired
+    private PlanAccountMapper planAccountMapper;
+
+    @Autowired
+    private PlanAccountService planAccountService;
+
+    @Autowired
+    private PublishMiniprogramMapper publishMiniprogramMapper;
+
+    @Autowired
+    private PublishContentMapper publishContentMapper;
+
+    @Autowired
+    private RootSourceMapper rootSourceMapper;
+
+    @Autowired
+    private PublicContentServiceImpl publicContentService;
+
+    @Autowired
+    private RootSourceServiceImpl rootSourceService;
+
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
+
+    @Override
+    public void initPlanAccount() {
+        List<Plan> planList = planAccountService.getPlanList();
+        Set<String> planIdSet = planList.stream().map(Plan::getPlanId).collect(Collectors.toSet());
+        List<LongArticleSystemPlan> allLongArticleSystemPlans = aigcService.getAllLongArticleSystemPlan();
+        for (LongArticleSystemPlan longArticleSystemPlan : allLongArticleSystemPlans) {
+            Plan plan = createPlan(longArticleSystemPlan);
+            planAccountService.saveOrUpdatePlan(plan);
+            planIdSet.remove(longArticleSystemPlan.getId());
+            //获取排序策略
+            Map<String, String> sortStgMap = new HashMap<>();
+            List<GzhArticleSortTaskParam> gzhArticleSortTask = longArticleSystemPlan.getGzhArticleSortTask();
+            for (GzhArticleSortTaskParam gzhArticleSortTaskParam : gzhArticleSortTask) {
+                String strategy = gzhArticleSortTaskParam.getStrategy();
+                List<String> accountIds = gzhArticleSortTaskParam.getAccountIds();
+                for (String accountId : accountIds) {
+                    sortStgMap.put(accountId, strategy);
+                }
+            }
+            //获取小程序策略
+            Map<String, MiniprogramInsertTaskParam> miniStgMap = new HashMap<>();
+            List<MiniprogramInsertTaskParam> miniprogramInsertTasks = longArticleSystemPlan.getMiniprogramInsertTasks();
+            for (MiniprogramInsertTaskParam miniprogramInsertTaskParam : miniprogramInsertTasks) {
+                List<String> accountIds = miniprogramInsertTaskParam.getAccountIds();
+                for (String accountId : accountIds) {
+                    miniStgMap.put(accountId, miniprogramInsertTaskParam);
+                }
+            }
+            List<PlanAccount> planAccounts = planAccountService.getPlanAccountByPlanId(longArticleSystemPlan.getId());
+            Set<String> accountIdSet = planAccounts.stream().map(PlanAccount::getAccountId).collect(Collectors.toSet());
+            for (LongArticleSystemPlanAccount account : longArticleSystemPlan.getAccountList()) {
+                PlanAccount planAccount = new PlanAccount();
+                String accountId = account.getId();
+                accountIdSet.remove(accountId);
+                planAccount.setPlanId(longArticleSystemPlan.getId());
+                planAccount.setPlanName(longArticleSystemPlan.getName());
+                planAccount.setAccountId(accountId);
+                planAccount.setAccountName(account.getName());
+                planAccount.setGhId(account.getGhId());
+                planAccount.setPublishOpenFlag(account.getPublishOpenFlag());
+                planAccount.setPublishRate(longArticleSystemPlan.getPublishRate());
+                planAccount.setPublishDate(longArticleSystemPlan.getPublishDate());
+                planAccount.setPublishNum(longArticleSystemPlan.getPublishNum());
+                planAccount.setPublishWindowStart(longArticleSystemPlan.getPublishWindowStart());
+                planAccount.setPublishWindowEnd(longArticleSystemPlan.getPublishWindowEnd());
+                planAccount.setPublishTimeInterval(longArticleSystemPlan.getPublishTimeInterval());
+                planAccount.setPublishNum(longArticleSystemPlan.getPublishNum());
+                planAccount.setPublishPreNum(longArticleSystemPlan.getPublishPerNum());
+                planAccount.setPublishPreMinNum(longArticleSystemPlan.getPublishPerMinNum());
+                planAccount.setPublishPushTime(longArticleSystemPlan.getPublishPushTime());
+                planAccount.setPushType(longArticleSystemPlan.getPushType());
+                planAccount.setMiniprogramInsertFlag(longArticleSystemPlan.getMiniprogramInsertFlag());
+                MiniprogramInsertTaskParam miniprogramInsertTaskParam = miniStgMap.get(accountId);
+                if (miniprogramInsertTaskParam != null) {
+                    planAccount.setMiniprogramUseType(miniprogramInsertTaskParam.getMiniprogramUseType());
+                    planAccount.setMiniStrategy(miniprogramInsertTaskParam.getStrategy());
+                }
+                if (sortStgMap.containsKey(accountId)) {
+                    planAccount.setSortStrategy(sortStgMap.get(accountId));
+                }
+                planAccount.setPushType(longArticleSystemPlan.getPushType());
+                planAccountService.saveOrUpdatePlanAccount(planAccount);
+            }
+            if (CollectionUtils.isEmpty(accountIdSet)) {
+                continue;
+            }
+            for (String accountId : accountIdSet) {
+                planAccountService.delAccount(longArticleSystemPlan.getId(), accountId);
+            }
+
+        }
+        if (CollectionUtils.isEmpty(planIdSet)) {
+            return;
+        }
+        for (String planId : planIdSet) {
+            planAccountService.delPlan(planId);
+        }
+    }
+
+    private Plan createPlan(LongArticleSystemPlan longArticleSystemPlan) {
+        Plan plan = new Plan();
+        plan.setPlanId(longArticleSystemPlan.getId());
+        plan.setPlanName(longArticleSystemPlan.getName());
+        plan.setPublishRate(longArticleSystemPlan.getPublishRate());
+        plan.setPublishDate(longArticleSystemPlan.getPublishDate());
+        plan.setPublishWindowStart(longArticleSystemPlan.getPublishWindowStart());
+        plan.setPublishWindowEnd(longArticleSystemPlan.getPublishWindowEnd());
+        plan.setPublishTimeInterval(longArticleSystemPlan.getPublishTimeInterval());
+        plan.setPublishNum(longArticleSystemPlan.getPublishNum());
+        plan.setPublishPreNum(longArticleSystemPlan.getPublishPerNum());
+        plan.setPublishPreMinNum(longArticleSystemPlan.getPublishPerMinNum());
+        plan.setPublishPushTime(longArticleSystemPlan.getPublishPushTime());
+        plan.setPushType(longArticleSystemPlan.getPushType());
+        plan.setMiniprogramInsertFlag(longArticleSystemPlan.getMiniprogramInsertFlag());
+        return plan;
+    }
+
+
+    // 定义一个阻塞队列
+    private static final ArrayBlockingQueue<MatchContent> matchQueue = new ArrayBlockingQueue<>(100000);
+
+    private static final ArrayBlockingQueue<PlanAccount> coreQueue = new ArrayBlockingQueue<>(100000);
+
+
+    private static final int size = 5;
+    // 定义一个线程池,设置消费线程的数量
+    private static final ThreadPoolExecutor matchPoolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(size);
+
+    private static final ThreadPoolExecutor corePoolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
+
+
+    @Override
+    public void matchContent() throws InterruptedException {
+        if (matchPoolExecutor.getCorePoolSize() - matchPoolExecutor.getActiveCount() > 0) {
+            int threadSize = matchPoolExecutor.getCorePoolSize() - matchPoolExecutor.getActiveCount();
+            log.info("threadNum={}", threadSize);
+            CountDownLatch countDownLatch = new CountDownLatch(threadSize);
+            // 启动消费者线程
+            for (int i = 0; i < threadSize; i++) {
+                matchPoolExecutor.submit(new Thread(() -> {
+                    log.info("启动匹配小程序线程");
+                    while (true) {
+                        try {
+                            // 超过 5 分钟没有数据,销毁当前线程
+                            MatchContent matchContent = matchQueue.poll(5, TimeUnit.MINUTES); // 等待最多 5 分钟
+                            if (matchContent == null) {
+                                break; // 退出当前线程
+                            }
+                            MatchVideo content = contentService.getContent(matchContent.getSourceId(), matchContent.getGhId(), 2);
+                            if (content != null) {
+                                Integer contentStatus = content.getContentStatus();
+                                if (ContentStatusEnum.isSuccess(contentStatus)) {
+                                    MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
+                                    statusParam.setStatus(2);
+                                    statusParam.setPublishContentId(matchContent.getPublishContentId());
+                                    aigcService.updateMatchMiniprogramStatus(statusParam);
+                                    continue;
+                                }
+                                if (ContentStatusEnum.isFail(contentStatus)) {
+                                    MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
+                                    statusParam.setStatus(3);
+                                    statusParam.setPublishContentId(matchContent.getPublishContentId());
+                                    String errorMessage = ContentStatusEnum.getErrorMessage(contentStatus);
+                                    statusParam.setErrorMsg(errorMessage);
+                                    aigcService.updateMatchMiniprogramStatus(statusParam);
+                                }
+                            } else {
+                                MiniprogramCardRequest request = new MiniprogramCardRequest();
+                                request.setGhId(matchContent.getGhId());
+                                request.setAccountName(matchContent.getAccountName());
+                                request.setContent(matchContent.getContent());
+                                request.setTitle(matchContent.getTitle());
+                                //请求到新服务
+                                request.setStrategy("strategy_v2");
+                                request.setArticleId(matchContent.getSourceId());
+                                request.setFlowPoolLevelTag(matchContent.getFlowPoolLevelTag());
+                                request.setPublishFlag(2);
+                                matchService.matchMiniprogramVideo(request);
+                            }
+                        } catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+                    log.info("启动匹配小程序线程结束");
+                    countDownLatch.countDown();
+                }));
+            }
+
+            List<PlanAccount> matchPlanAccounts = planAccountService.getMatchPlanAccount();
+            if (CollectionUtils.isEmpty(matchPlanAccounts)) {
+                return;
+            }
+            for (PlanAccount planAccount : matchPlanAccounts) {
+                GetContentsParam param = new GetContentsParam();
+                param.setAccountId(planAccount.getAccountId());
+                param.setPlanId(planAccount.getPlanId());
+                LongArticleSystemContentVO longArticleSystemContentVO = aigcService.getContentItemList(param);
+                if (longArticleSystemContentVO == null || CollectionUtils.isEmpty(longArticleSystemContentVO.getContentItemList())) {
+                    continue;
+                }
+                log.info("longArticleSystemContentVO totalCount={}", longArticleSystemContentVO.getTotalCount());
+                for (ContentItemVO contentItemVO : longArticleSystemContentVO.getContentItemList()) {
+                    MatchContent matchContent = new MatchContent();
+                    matchContent.setSourceId(contentItemVO.getSourceId());
+                    matchContent.setGhId(planAccount.getGhId());
+                    matchContent.setPublishContentId(contentItemVO.getPublishContentId());
+                    matchContent.setAccountName(planAccount.getAccountName());
+                    matchContent.setContent(contentItemVO.getContent());
+                    matchContent.setTitle(contentItemVO.getTitle());
+                    matchContent.setFlowPoolLevelTag(contentItemVO.getFlowPoolLevelTag());
+                    try {
+                        matchQueue.put(matchContent);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+            countDownLatch.await();
+        }
+    }
+
+
+    private boolean effectiveTime(String startWindow, String endWindow, TimeZoneUtil.Timezone timezone) {
+        if (!org.springframework.util.StringUtils.hasText(startWindow) || !org.springframework.util.StringUtils.hasText(endWindow)) {
+            return true;
+        }
+        LocalTime currentTime = TimeZoneUtil
+                .currentTime(Optional.ofNullable(timezone).orElse(TimeZoneUtil.Timezone.china));
+        return currentTime.isAfter(LocalTime.parse(startWindow)) && currentTime.isBefore(LocalTime.parse(endWindow));
+    }
+
+    public boolean checkPlanAccount(PlanAccount planAccount) {
+        boolean isGzhGroupPushPlan = Objects.nonNull(planAccount.getPushType())
+                && PublishGzhPushTypeEnum.auto_group_publish.getVal().equals(planAccount.getPushType());
+        boolean flag = true;
+        // 固定日期
+        if (planAccount.getPublishRate() == 1) {
+            List<Integer> weeks = JSON.parseArray(planAccount.getPublishDate(), Integer.class);
+            if (!weeks.contains(TimeZoneUtil.getTodayDayOfWeek(TimeZoneUtil.Timezone.china))) {
+                planAccount.setStatus(2);
+                planAccountMapper.updateByPrimaryKeySelective(planAccount);
+                return false;
+            }
+        }
+        // 指定时间
+        if (isGzhGroupPushPlan && StringUtils.isNotEmpty(planAccount.getPublishPushTime())) {
+            long pushTime = DateUtil.convertToTimestamp(planAccount.getPublishPushTime());
+            long nowTime = new Date().getTime();
+            // 当前时间距离目标时间超过30分钟
+            if (nowTime + 30 * TimeConstant.MILLISECOND_MINUTE < pushTime) {
+                return false;
+            }
+            // 当前时间已经超过目标时间600分钟
+            if (nowTime - 600 * TimeConstant.MILLISECOND_MINUTE > pushTime) {
+                return false;
+            }
+        } else if (StringUtils.isNotEmpty(planAccount.getPublishWindowStart())
+                && StringUtils.isNotEmpty(planAccount.getPublishWindowEnd())) {
+            if (!effectiveTime(planAccount.getPublishWindowStart(), planAccount.getPublishWindowEnd(),
+                    TimeZoneUtil.Timezone.china)) {
+                return false;
+            }
+            if (planAccount.getPublishTimeInterval() != null) {
+                // 找到该账号最近发布的内容,判断时间间隔
+                PublishContentExample example = new PublishContentExample();
+                example.createCriteria().andStatusIn(Arrays.asList(1, 2))
+                        .andCreateTimeGreaterThan(DateUtil.getThatDayDate())
+                        .andPlanAccountIdEqualTo(planAccount.getId());
+                example.setOrderByClause("create_time desc");
+                List<PublishContent> publishContents = publishContentMapper.selectByExample(example);
+                if (!CollectionUtils.isEmpty(publishContents)) {
+                    long time = System.currentTimeMillis() - publishContents.get(0).getCreateTime().getTime();
+                    if (time < planAccount.getPublishTimeInterval() * 60 * 1000L) {
+                        return false;
+                    }
+                }
+            }
+        }
+        PushRecordParam param = new PushRecordParam();
+        param.setPlanId(planAccount.getPlanId());
+        param.setPublishAccountId(planAccount.getAccountId());
+        List<PushRecordVO> todayPushRecords = aigcService.getTodayPushRecords(param);
+
+
+        //查询aigc发布成功数量
+        int aigcCount = 0;
+        if (!CollectionUtils.isEmpty(todayPushRecords)) {
+            List<PushRecordVO> collect = todayPushRecords.stream()
+                    .filter(e -> ((e.getPushStatus() != 3) && (e.getPublishStatus() != 3))).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(collect)) {
+                for (PushRecordVO pushRecordVO : collect) {
+                    if (pushRecordVO.getPublishContentCount() != null) {
+                        aigcCount += pushRecordVO.getPublishContentCount();
+                    }
+                }
+            }
+        }
+        //长文系统发布数量
+        int sendCount = publicContentService.getSendCount(planAccount.getId());
+        //取发布数量多的
+        sendCount = Math.max(aigcCount, sendCount);
+        if (isGzhGroupPushPlan) {
+            //公众号群发每天只能成功发布一次
+            if (sendCount >= 1) {
+                return false;
+            }
+            //公众号群发每天最多尝试3次
+            if (planAccount.getRetryCount() >= 3) {
+                planAccount.setStatus(3);
+                planAccountMapper.updateByPrimaryKeySelective(planAccount);
+                LarkRobotUtil.sendMessage("计划发布失败3次,请查看 账号计划id为" + planAccount.getPlanId());
+                return false;
+            }
+        }
+        Integer publishNum = planAccount.getPublishNum();
+        if (publishNum == null || publishNum == 0) {
+            LarkRobotUtil.sendMessage("发布数量设置为0 planAccountId=" + planAccount.getId());
+            return false;
+        }
+        if (sendCount >= publishNum) {
+            return false;
+        }
+
+        int todayNeedSendCount = publishNum - sendCount;
+        // 本次推送数量
+        Integer prePushNum = planAccount.getPublishPreNum();
+        if (Objects.isNull(prePushNum)) {
+            prePushNum = 1;
+        }
+        //如果预计推送数量大于剩余推送数量  本次数量设置为剩余推送数量
+        if (prePushNum > todayNeedSendCount) {
+            prePushNum = todayNeedSendCount;
+        }
+        // 自动发布消息,每次暂时限定发布一条
+        if (PublishGzhPushTypeEnum.robopost.getVal().equals(planAccount.getPushType())) {
+            prePushNum = 1;
+        }
+        // 本次最少推送数量
+        Integer preMinPushNum = planAccount.getPublishPreMinNum();
+        if (Objects.isNull(preMinPushNum)) {
+            preMinPushNum = prePushNum;
+        }
+        if (preMinPushNum > prePushNum) {
+            preMinPushNum = prePushNum;
+        }
+        planAccount.setPublishPreNum(prePushNum);
+        planAccount.setPublishPreMinNum(preMinPushNum);
+        return flag;
+    }
+
+
+    @Override
+    public void core() throws InterruptedException {
+        if (corePoolExecutor.getCorePoolSize() - corePoolExecutor.getActiveCount() > 0) {
+            int threadSize = corePoolExecutor.getCorePoolSize() - corePoolExecutor.getActiveCount();
+            log.info("threadNum={}", threadSize);
+            CountDownLatch countDownLatch = new CountDownLatch(threadSize);
+            // 启动消费者线程
+            for (int i = 0; i < threadSize; i++) {
+                corePoolExecutor.submit(new Thread(() -> {
+                    log.info("启动核心操作线程");
+                    while (true) {
+                        try {
+                            // 超过 5 分钟没有数据,销毁当前线程
+                            PlanAccount planAccount = coreQueue.poll(5, TimeUnit.MINUTES); // 等待最多 5 分钟
+                            if (planAccount == null) {
+                                break; // 退出当前线程
+                            }
+                            operatePlanAccount(planAccount);
+                        } catch (Exception e) {
+                            log.error("", e);
+                        }
+                    }
+                    log.info("核心操作线程结束");
+                    countDownLatch.countDown();
+                }));
+            }
+            List<PlanAccount> planAccounts;
+            planAccounts = planAccountService.getNormalPlanAccount();
+            if (CollectionUtils.isEmpty(planAccounts)) {
+                return;
+            }
+            for (PlanAccount planAccount : planAccounts) {
+                coreQueue.put(planAccount);
+            }
+            countDownLatch.await();
+        }
+    }
+
+    public void operatePlanAccount(PlanAccount planAccount) {
+        boolean flag = checkPlanAccount(planAccount);
+        log.info("planAccount={}, flag={}", planAccount, flag);
+        if (!flag) {
+            return;
+        }
+        //获取待排序数据  数量不足会返回空list
+        List<PublishArticleData> rankList = contentService.getWaitingSort(planAccount);
+        if (CollectionUtils.isEmpty(rankList)) {
+            return;
+        }
+        if (StringUtils.isNotEmpty(planAccount.getSortStrategy())) {
+            rankList = contentService.getSortList(planAccount);
+            if (CollectionUtils.isEmpty(rankList)) {
+                return;
+            }
+        }
+        //文章处理  小程序查询和发布
+        List<PushContentParam> pushContentList = new ArrayList<>();
+        List<Long> sendIds = new ArrayList<>();
+        for (PublishArticleData publishArticleData : rankList) {
+            PushContentParam contentParam = new PushContentParam();
+            PublishContent publishContent = publicContentService.getPublishContent(planAccount, publishArticleData);
+            if (publishContent == null) {
+                continue;
+            }
+            //获取小程序
+            List<PublishMiniprogram> publishMiniprogramList = publicContentService.getPublishMiniprograms(publishContent);
+            //不存在则重新生成
+            if (CollectionUtils.isEmpty(publishMiniprogramList)) {
+                MatchVideo matchVideo = contentService.getMatchVideo(publishContent, planAccount);
+                if (matchVideo == null) {
+                    continue;
+                }
+                List<VideoDetail> videoDetails = contentService.getPublishVideoDetail(publishContent, planAccount, matchVideo);
+                log.info("publishContentId={}, videoDetails={}", publishContent.getId(), videoDetails);
+                if (CollectionUtils.isEmpty(videoDetails)) {
+                    continue;
+                }
+                //获取小程序卡片  判断封面是否可用
+                List<PublishMiniprogramBo> publishMiniprogramBoList = cardService.generateCards(videoDetails, planAccount, publishContent);
+                if (CollectionUtils.isEmpty(publishMiniprogramBoList) && publishMiniprogramBoList.size() < 2) {
+                    continue;
+                }
+                for (PublishMiniprogramBo publishMiniprogramBo : publishMiniprogramBoList) {
+                    //插入rootSource
+                    rootSourceService.addRootSource(publishMiniprogramBo, planAccount, publishArticleData);
+
+                    //拷贝小程序BO到PO中 写入数据库
+                    PublishMiniprogram publishMiniprogram = new PublishMiniprogram();
+                    BeanUtils.copyProperties(publishMiniprogramBo, publishMiniprogram);
+                    publishMiniprogramMapper.insertSelective(publishMiniprogram);
+                    publishMiniprogramList.add(publishMiniprogram);
+                }
+                contentService.updateMatchContent(publishContent, publishMiniprogramBoList, matchVideo);
+            }
+            sendIds.add(publishContent.getId());
+            log.info("publishMiniprogramList={}", publishMiniprogramList);
+            List<PublishMiniprogramParam> publishCardList = getPublishCardList(publishMiniprogramList);
+            contentParam.setPublishContentId(publishContent.getPublishContentId());
+            contentParam.setMiniprogramCardList(publishCardList);
+            pushContentList.add(contentParam);
+        }
+        CreatePushTaskParam gzhPushParam = getCreatePushTaskParam(planAccount, pushContentList);
+        if (gzhPushParam == null) {
+            return;
+        }
+        log.info("gzhPushParam={}", gzhPushParam);
+        String pushId = aigcService.createPushTask(gzhPushParam);
+        log.info("pushId = {}", pushId);
+        if (StringUtils.isNotEmpty(pushId)) {
+            publicContentService.updatePublishContentPushId(sendIds, pushId);
+        }
+    }
+
+    private CreatePushTaskParam getCreatePushTaskParam(PlanAccount planAccount, List<PushContentParam> pushContentList) {
+        CreatePushTaskParam gzhPushParam = new CreatePushTaskParam();
+        gzhPushParam.setPlanId(planAccount.getPlanId());
+        gzhPushParam.setAccountId(planAccount.getAccountId());
+        gzhPushParam.setPushType(planAccount.getPushType());
+        gzhPushParam.setPushScheduleTimestamp(System.currentTimeMillis());
+        if (StringUtils.isNotEmpty(planAccount.getPublishPushTime())) {
+            String dateTimeStr = TimeZoneUtil.todayYMD(TimeZoneUtil.Timezone.china) + " " + planAccount.getPublishPushTime();
+            gzhPushParam.setPushScheduleTimestamp(TimeZoneUtil.getDateStrTimestamp(dateTimeStr, "yyyy-MM-dd HH:mm:ss", TimeZoneUtil.Timezone.china));
+        } else {
+            gzhPushParam.setPushScheduleTimestamp(System.currentTimeMillis());
+        }
+        //文章列表为空直接返回
+        if (CollectionUtils.isEmpty(pushContentList)) {
+            return null;
+        }
+        //自动群发少于最少数量不发送
+        if (Objects.equals(planAccount.getPushType(), PublishGzhPushTypeEnum.auto_group_publish.getVal())
+                && pushContentList.size() < planAccount.getPublishPreMinNum()) {
+            return null;
+        }
+        gzhPushParam.setPushContentList(pushContentList);
+        return gzhPushParam;
+    }
+
+    private List<PublishMiniprogramParam> getPublishCardList(List<PublishMiniprogram> publishMiniprogramList) {
+        List<PublishMiniprogramParam> publishCardList = new ArrayList<>();
+        for (PublishMiniprogram publishMiniprogram : publishMiniprogramList) {
+            PublishMiniprogramParam param = new PublishMiniprogramParam();
+            param.setProgramId(publishMiniprogram.getAppId());
+            param.setProgramName(publishMiniprogram.getAppName());
+            param.setProgramAvatar(publishMiniprogram.getAvatar());
+            param.setMini_id(publishMiniprogram.getMiniId());
+            param.setMiniprogramUseType(publishMiniprogram.getMiniProgramType());
+            String videoTitle = publishMiniprogram.getVideoTitle();
+            if (org.springframework.util.StringUtils.hasText(videoTitle)) {
+                videoTitle = videoTitle.replace("\"", "");
+                if (videoTitle.length() > 32) {
+                    videoTitle = videoTitle.substring(0, 32);
+                }
+                param.setProductionName(videoTitle);
+            }
+            param.setProductionCover(publishMiniprogram.getWxUrl());
+            param.setProductionPath(publishMiniprogram.getProductionPath());
+            param.setRootShareId(publishMiniprogram.getRootShareId());
+            param.setSource(publishMiniprogram.getSource());
+            param.setVideoUrl(publishMiniprogram.getVideoPath());
+            param.setParagraphPosition(BigDecimal.valueOf(publishMiniprogram.getIndex() * 0.25));
+            if (publishMiniprogram.getIndex() == 1) {
+                param.setParagraphPosition(BigDecimal.valueOf(0.01));
+            }
+            param.setTraceId(publishMiniprogram.getTraceId());
+            publishCardList.add(param);
+        }
+        return publishCardList;
+    }
+
+    @Override
+    public void getPushStatus() {
+        PublishContentExample example = new PublishContentExample();
+        example.createCriteria().andStatusEqualTo(1).andPushIdIsNotNull().andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        List<PublishContent> publishContents = publishContentMapper.selectByExample(example);
+        Map<String, List<PublishContent>> groupedByPushId = publishContents.stream()
+                .filter(content -> content.getPushId() != null) // 过滤掉 pushId 为空的情况
+                .collect(Collectors.groupingBy(PublishContent::getPushId));
+
+        for (Map.Entry<String, List<PublishContent>> entry : groupedByPushId.entrySet()) {
+            String pushId = entry.getKey();
+            PushStatusParam param = new PushStatusParam();
+            param.setPushId(pushId);
+            PushStatusVO pushStatusVO = aigcService.queryPushStatus(param);
+            log.info("pushStatusVO={} param={}", pushStatusVO, param);
+            if (pushStatusVO == null) {
+                continue;
+            }
+            int updateStatus = 0;
+            //推送失败
+            if (pushStatusVO.getPushStatus() == 3) {
+                updateStatus = 3;
+            }
+            //推送成功
+            if (pushStatusVO.getPushStatus() == 2) {
+                //发表失败
+                if (pushStatusVO.getPublishStatus() == 3) {
+                    updateStatus = 3;
+//                    if (StringUtils.isNotEmpty(pushStatusVO.getErrorCode())) {
+//                        int errorCode = Integer.parseInt(pushStatusVO.getErrorCode());
+//                        if (errorCode == 6 || errorCode == 7 || errorCode == 8 || errorCode == 999) {
+//                            updateStatus = 2;
+//                        }
+//                    }
+
+                }
+                //发表成功
+                if (pushStatusVO.getPublishStatus() == 2) {
+                    updateStatus = 2;
+                }
+            }
+
+
+            Long planAccountId = entry.getValue().get(0).getPlanAccountId();
+            if (planAccountId == null) {
+                continue;
+            }
+            PlanAccount planAccount = planAccountService.getPlanAccountById(planAccountId);
+            if (updateStatus == 2) {
+                for (PublishContent publishContent : entry.getValue()) {
+                    publicContentService.updatePublishContentStatus(updateStatus, publishContent.getId(), pushStatusVO.getErrorMsg());
+//                    if (StringUtils.isNotEmpty(publishContent.getTraceId())) {
+//                        videoService.miniProgramVideoOff(publishContent.getTraceId());
+//                    } else {
+//                        LarkRobotUtil.sendMessage("publishContent traceId is null publishContent id=" + publishContent.getId());
+//                    }
+                }
+                if (planAccount == null) {
+                    continue;
+                }
+                if (Objects.equals(planAccount.getPushType(), PublishGzhPushTypeEnum.auto_group_publish.getVal())) {
+                    planAccountService.updateStatus(2, planAccountId);
+                }
+            }
+            if (updateStatus == 3) {
+                PublishContentExample publishContentExample = new PublishContentExample();
+                publishContentExample.createCriteria().andPushIdEqualTo(pushId);
+                PublishContent update = new PublishContent();
+                if (StringUtils.isNotEmpty(pushStatusVO.getErrorMsg())) {
+                    update.setReason(pushStatusVO.getErrorMsg());
+                }
+                update.setStatus(updateStatus);
+                publishContentMapper.updateByExampleSelective(update, publishContentExample);
+                if (planAccount == null) {
+                    continue;
+                }
+                planAccountService.updateRetry(planAccount);
+                if (Objects.equals(planAccount.getPushType(), PublishGzhPushTypeEnum.auto_group_publish.getVal())) {
+                    if (StringUtils.isNotEmpty(pushStatusVO.getErrorMsg())) {
+                        //45028群发配额用完不再重试  48004封号账号也不再重试
+                        if (pushStatusVO.getErrorMsg().contains("45028") || pushStatusVO.getErrorMsg().contains("48004")) {
+                            planAccountService.updateStatus(3, planAccountId);
+                        }
+                    }
+                }
+            }
+//            if (updateStatus == 0) {
+//                //查询创建时间   重试超过2h 直接设置失败
+//                long createTimestamp = entry.getValue().get(0).getCreateTime().getTime();
+//                long nowTimestamp = System.currentTimeMillis();
+//                if (nowTimestamp - createTimestamp > TimeConstant.MILLISECOND_HOUR * 2) {
+//                    if (StringUtils.isNotEmpty(pushStatusVO.getErrorMsg())) {
+//                        PublishContentExample publishContentExample = new PublishContentExample();
+//                        publishContentExample.createCriteria().andPushIdEqualTo(pushId);
+//                        PublishContent update = new PublishContent();
+//                        if (StringUtils.isNotEmpty(pushStatusVO.getErrorMsg())) {
+//                            update.setReason(pushStatusVO.getErrorMsg());
+//                        }
+//                        update.setStatus(3);
+//                        publishContentMapper.updateByExampleSelective(update, publishContentExample);
+//                        planAccountService.updateRetry(planAccount);
+//                        LarkRobotUtil.sendMessage("重试超过2h失败,pushId=", pushId);
+//                    } else {
+//                        long hour = (nowTimestamp - createTimestamp) / 1000 / 3600;
+//                        LarkRobotUtil.sendMessage("重试时间:" + hour + "pushId=", pushId);
+//                    }
+//                }
+//            }
+            if (StringUtils.isNotEmpty(pushStatusVO.getErrorMsg()) && !pushStatusVO.getErrorMsg().contains("45028")) {
+                log.error("push error pushId={} msg={}", pushId, pushStatusVO.getErrorMsg());
+                String message = String.format("发布失败,请查看,pushId=%s 失败信息:%s 账号名称:%s 计划名称:%s",
+                        pushId, pushStatusVO.getErrorMsg(), planAccount.getAccountName(), planAccount.getPlanName());
+                LarkRobotUtil.sendMessage(message);
+            }
+        }
+    }
+}

+ 29 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/KimiServiceImpl.java

@@ -0,0 +1,29 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.tzld.piaoquan.longarticle.dao.mapper.LongArticlesTextMapper;
+import com.tzld.piaoquan.longarticle.model.po.LongArticlesText;
+import com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample;
+import com.tzld.piaoquan.longarticle.service.local.KimiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+@Service
+public class KimiServiceImpl implements KimiService {
+
+    @Autowired
+    LongArticlesTextMapper longArticlesTextMapper;
+
+    @Override
+    public LongArticlesText getKimiText(String contentId) {
+        LongArticlesTextExample example = new LongArticlesTextExample();
+        example.createCriteria().andContentIdEqualTo(contentId);
+        List<LongArticlesText> longArticlesTexts = longArticlesTextMapper.selectByExample(example);
+        if(CollectionUtils.isEmpty(longArticlesTexts)){
+            return null;
+        }
+        return longArticlesTexts.get(0);
+    }
+}

+ 149 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/PlanAccountServiceImpl.java

@@ -0,0 +1,149 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.tzld.piaoquan.longarticle.dao.mapper.PlanAccountMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.PlanMapper;
+import com.tzld.piaoquan.longarticle.model.po.Plan;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccountExample;
+import com.tzld.piaoquan.longarticle.model.po.PlanExample;
+import com.tzld.piaoquan.longarticle.service.local.PlanAccountService;
+import com.tzld.piaoquan.longarticle.utils.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class PlanAccountServiceImpl implements PlanAccountService {
+
+    @Autowired
+    private PlanAccountMapper planAccountMapper;
+
+    @Autowired
+    private PlanMapper planMapper;
+
+    public void saveOrUpdatePlanAccount(PlanAccount planAccount) {
+        PlanAccountExample example = new PlanAccountExample();
+        example.createCriteria().andAccountIdEqualTo(planAccount.getAccountId())
+                .andPlanIdEqualTo(planAccount.getPlanId())
+                .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        List<PlanAccount> planAccounts = planAccountMapper.selectByExample(example);
+        if (CollectionUtils.isEmpty(planAccounts)) {
+            planAccountMapper.insertSelective(planAccount);
+        } else {
+            planAccount.setId(planAccounts.get(0).getId());
+            planAccount.setIsDelete(0);
+            planAccountMapper.updateByPrimaryKeySelective(planAccount);
+        }
+    }
+
+    @Override
+    public void saveOrUpdatePlan(Plan plan) {
+        PlanExample example = new PlanExample();
+        example.createCriteria().andPlanIdEqualTo(plan.getPlanId());
+        List<Plan> plans = planMapper.selectByExample(example);
+        if (CollectionUtils.isEmpty(plans)) {
+            planMapper.insertSelective(plan);
+        } else {
+            plan.setId(plans.get(0).getId());
+            plan.setIsDelete(0);
+            planMapper.updateByPrimaryKeySelective(plan);
+        }
+    }
+
+    @Override
+    public List<PlanAccount> getPlanAccountByPlanId(String planId) {
+        PlanAccountExample example = new PlanAccountExample();
+        example.createCriteria().andPlanIdEqualTo(planId)
+                .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        return planAccountMapper.selectByExample(example);
+    }
+
+    public List<PlanAccount> getMatchPlanAccount() {
+        PlanAccountExample example = new PlanAccountExample();
+        example.createCriteria().andCreateTimeGreaterThan(DateUtil.getThatDayDate())
+                .andMatchStatusEqualTo(0).andIsDeleteEqualTo(0);
+        return planAccountMapper.selectByExample(example);
+    }
+
+    public List<PlanAccount> getNormalPlanAccount() {
+        PlanAccountExample example = new PlanAccountExample();
+        example.createCriteria().andCreateTimeGreaterThan(DateUtil.getThatDayDate())
+                .andStatusEqualTo(0).andIsDeleteEqualTo(0).andPublishOpenFlagEqualTo(1);
+        return planAccountMapper.selectByExample(example);
+    }
+
+    public List<PlanAccount> getPlanAccount(String accountId) {
+        PlanAccountExample example = new PlanAccountExample();
+        example.createCriteria().andCreateTimeGreaterThan(DateUtil.getThatDayDate())
+                .andAccountIdEqualTo(accountId);
+        return planAccountMapper.selectByExample(example);
+    }
+
+    public List<Plan> getPlanList() {
+        PlanExample example = new PlanExample();
+        List<Plan> plans = planMapper.selectByExample(example);
+        if (CollectionUtils.isEmpty(plans)) {
+            return new ArrayList<>();
+        }
+        return plans;
+    }
+
+    public void delPlan(String planId) {
+        PlanExample planExample = new PlanExample();
+        planExample.createCriteria().andPlanIdEqualTo(planId);
+        Plan updatePlan = new Plan();
+        updatePlan.setIsDelete(1);
+        planMapper.updateByExampleSelective(updatePlan, planExample);
+
+        PlanAccountExample planAccountExample = new PlanAccountExample();
+        planAccountExample.createCriteria().andPlanIdEqualTo(planId).andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        PlanAccount updatePlanAccount = new PlanAccount();
+        updatePlanAccount.setIsDelete(1);
+        planAccountMapper.updateByExampleSelective(updatePlanAccount, planAccountExample);
+    }
+
+    @Override
+    public void delAccount(String planId, String accountId) {
+        PlanAccountExample planAccountExample = new PlanAccountExample();
+        planAccountExample.createCriteria()
+                .andAccountIdEqualTo(accountId)
+                .andPlanIdEqualTo(planId).
+                andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        PlanAccount updatePlanAccount = new PlanAccount();
+        updatePlanAccount.setIsDelete(1);
+        planAccountMapper.updateByExampleSelective(updatePlanAccount, planAccountExample);
+    }
+
+
+    @Override
+    public void updateMatchStatus(Integer status, Long id) {
+        PlanAccount updatePlanAccount = new PlanAccount();
+        updatePlanAccount.setId(id);
+        updatePlanAccount.setMatchStatus(status);
+        planAccountMapper.updateByPrimaryKeySelective(updatePlanAccount);
+    }
+
+    @Override
+    public void updateStatus(Integer status, Long id) {
+        PlanAccount updatePlanAccount = new PlanAccount();
+        updatePlanAccount.setId(id);
+        updatePlanAccount.setStatus(status);
+        planAccountMapper.updateByPrimaryKeySelective(updatePlanAccount);
+    }
+
+    public PlanAccount getPlanAccountById(Long id) {
+        return planAccountMapper.selectByPrimaryKey(id);
+    }
+
+    public void updateRetry(PlanAccount planAccount) {
+        PlanAccount updatePlanAccount = new PlanAccount();
+        updatePlanAccount.setId(planAccount.getId());
+        updatePlanAccount.setRetryCount(planAccount.getRetryCount() + 1);
+        planAccountMapper.updateByPrimaryKeySelective(updatePlanAccount);
+    }
+
+
+}

+ 120 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/PublicContentServiceImpl.java

@@ -0,0 +1,120 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.tzld.piaoquan.longarticle.dao.mapper.PublishContentMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.PublishMiniprogramMapper;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.*;
+import com.tzld.piaoquan.longarticle.model.vo.MatchMiniprogramStatusParam;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import com.tzld.piaoquan.longarticle.utils.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+@Service
+public class PublicContentServiceImpl {
+
+    @Autowired
+    private PublishContentMapper publishContentMapper;
+
+    @Autowired
+    private PublishMiniprogramMapper publishMiniprogramMapper;
+
+    @Autowired
+    private AigcService aigcService;
+
+    public int getSendCount(Long planAccountId) {
+        PublishContentExample example = new PublishContentExample();
+        example.createCriteria().andStatusIn(Arrays.asList(1, 2))
+                .andCreateTimeGreaterThan(DateUtil.getThatDayDate())
+                .andPlanAccountIdEqualTo(planAccountId);
+        long sendCount = publishContentMapper.countByExample(example);
+        return (int) sendCount;
+    }
+
+    public PublishContent getPublishContent(PlanAccount planAccount, PublishArticleData publishArticleData) {
+        String publishContentId = publishArticleData.getId();
+        if (StringUtils.isEmpty(publishContentId)) {
+            return null;
+        }
+        PublishContentExample example = new PublishContentExample();
+        example.createCriteria().andPublishContentIdEqualTo(publishContentId)
+                .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
+        List<PublishContent> publishContents = publishContentMapper.selectByExample(example);
+        if (!CollectionUtils.isEmpty(publishContents)) {
+            PublishContent publishContent = publishContents.get(0);
+            publishContent.setStatus(0);
+            publishContentMapper.updateByPrimaryKeySelective(publishContent);
+            return publishContent;
+        }
+        PublishContent publishContent = new PublishContent();
+        publishContent.setPlanAccountId(planAccount.getId());
+        publishContent.setPublishContentId(publishArticleData.getId());
+        publishContent.setSourceId(publishArticleData.getSourceId());
+        publishContent.setScore(publishArticleData.getScore());
+        publishContent.setContentPoolType(publishArticleData.getContentPoolType());
+        publishContentMapper.insertSelective(publishContent);
+        return publishContent;
+    }
+
+    public List<PublishMiniprogram> getPublishMiniprograms(PublishContent publishContent) {
+        PublishMiniprogramExample publishMiniprogramExample = new PublishMiniprogramExample();
+        publishMiniprogramExample.createCriteria().andContentIdEqualTo(publishContent.getId());
+        List<PublishMiniprogram> publishMiniprograms = publishMiniprogramMapper.selectByExample(publishMiniprogramExample);
+        if (CollectionUtils.isEmpty(publishMiniprograms)) {
+            return new ArrayList<>();
+        }
+        return publishMiniprograms;
+    }
+
+    public void updatePublishContentTraceId(String traceId, Long publishContentId) {
+        if (StringUtils.isEmpty(traceId)) {
+            return;
+        }
+        PublishContent publishContent = new PublishContent();
+        publishContent.setTraceId(traceId);
+        publishContent.setId(publishContentId);
+        publishContentMapper.updateByPrimaryKeySelective(publishContent);
+    }
+
+    public void delPublishContent(PublishContent publishContent) {
+        log.info("delPublishContent publishContent={}", publishContent);
+        MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
+        statusParam.setStatus(3);
+        statusParam.setPublishContentId(publishContent.getPublishContentId());
+        statusParam.setErrorMsg("小程序视频数量不足");
+        aigcService.updateMatchMiniprogramStatus(statusParam);
+        //更新为失败
+        updatePublishContentStatus(3, publishContent.getId(), "小程序数量不足");
+    }
+
+    public void updatePublishContentStatus(Integer status, Long publishContentId, String reason) {
+        PublishContent publishContent = new PublishContent();
+        publishContent.setStatus(status);
+        publishContent.setId(publishContentId);
+        publishContent.setReason(reason);
+        publishContentMapper.updateByPrimaryKeySelective(publishContent);
+    }
+
+    public void updatePublishContentPushId(List<Long> ids, String pushId) {
+        for (Long id : ids) {
+            PublishContent publishContent = publishContentMapper.selectByPrimaryKey(id);
+            if (publishContent == null) {
+                continue;
+            }
+            PublishContent update = new PublishContent();
+            update.setId(id);
+            update.setPushId(pushId);
+            update.setStatus(1);
+            publishContentMapper.updateByPrimaryKeySelective(update);
+        }
+    }
+
+}

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/RootSourceServiceImpl.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.tzld.piaoquan.longarticle.dao.mapper.RootSourceMapper;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.RootSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RootSourceServiceImpl {
+
+    @Autowired
+    private RootSourceMapper rootSourceMapper;
+
+    public void addRootSource(PublishMiniprogramBo publishMiniprogramBo, PlanAccount planAccount, PublishArticleData publishArticleData){
+        RootSource rootSource = new RootSource();
+        rootSource.setAccountName(planAccount.getAccountName());
+        rootSource.setRootSourceId(publishMiniprogramBo.getRootSourceId());
+        rootSource.setGhId(planAccount.getGhId());
+        rootSource.setRequestTime(Integer.valueOf(String.valueOf(System.currentTimeMillis() / 1000)));
+        rootSource.setTraceId(publishMiniprogramBo.getTraceId());
+        rootSource.setPushType(2);
+        rootSource.setVideoId(publishMiniprogramBo.getVideoId());
+        rootSource.setContentId(publishArticleData.getSourceId());
+        //TODO 更新crawler_videos表
+        rootSourceMapper.insertSelective(rootSource);
+    }
+}

+ 28 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/AigcService.java

@@ -0,0 +1,28 @@
+package com.tzld.piaoquan.longarticle.service.remote;
+
+import com.tzld.piaoquan.longarticle.model.vo.*;
+
+import java.util.List;
+
+public interface AigcService {
+
+    List<LongArticleSystemPlan> getAllLongArticleSystemPlan();
+
+    LongArticleSystemContentVO getContentItemList(GetContentsParam param);
+
+    LongArticleSystemContentVO listWaitingMatchMiniprogramContents(GetContentsParam param);
+
+    LongArticleSystemContentVO listWaitingSortContents(GetContentsParam param);
+
+    String createPushTask(CreatePushTaskParam param);
+
+    boolean updateMatchMiniprogramStatus(MatchMiniprogramStatusParam param);
+
+    boolean filterSortContents(FilterSortParam param);
+
+    PushStatusVO queryPushStatus(PushStatusParam param);
+
+    String pushCover(String coverUrl, String publishContentId);
+
+    List<PushRecordVO> getTodayPushRecords(PushRecordParam param);
+}

+ 8 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/MatchService.java

@@ -0,0 +1,8 @@
+package com.tzld.piaoquan.longarticle.service.remote;
+
+import com.tzld.piaoquan.longarticle.model.dto.MiniprogramCardRequest;
+
+public interface MatchService {
+
+    String matchMiniprogramVideo(MiniprogramCardRequest request);
+}

+ 9 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/SortService.java

@@ -0,0 +1,9 @@
+package com.tzld.piaoquan.longarticle.service.remote;
+
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortRequest;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponse;
+
+public interface SortService {
+
+    ArticleSortResponse publishArticleSort(ArticleSortRequest request);
+}

+ 10 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/VideoService.java

@@ -0,0 +1,10 @@
+package com.tzld.piaoquan.longarticle.service.remote;
+
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+
+public interface VideoService {
+
+    VideoDetail publish(String ossPath, String uid, String title);
+
+    void miniProgramVideoOff(String traceId);
+}

+ 210 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/AigcServiceImpl.java

@@ -0,0 +1,210 @@
+package com.tzld.piaoquan.longarticle.service.remote.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.tzld.piaoquan.longarticle.model.vo.LongArticleSystemPlan;
+import com.tzld.piaoquan.longarticle.model.vo.*;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import com.tzld.piaoquan.longarticle.utils.HttpClientUtil;
+import com.tzld.piaoquan.longarticle.utils.HttpPoolClientUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class AigcServiceImpl implements AigcService {
+
+    private static final HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(5000, 10000, 20, 100, 3, 3000);
+
+    @Override
+    //获取所有长文系统托管计划
+    public List<LongArticleSystemPlan> getAllLongArticleSystemPlan() {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/getAllLongArticleSystemPlan";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl);
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                JSONArray data = jsonObject.getJSONArray("data");
+                return data.toJavaList(LongArticleSystemPlan.class);
+            }
+            return null;
+        } catch (Exception e) {
+            log.error("getAllLongArticleSystemPlan error", e);
+        }
+        return null;
+    }
+
+    @Override
+    public LongArticleSystemContentVO getContentItemList(GetContentsParam param) {
+        int pageNum = 1;
+        int pageSize = 500;
+        param.setPageNum(pageNum);
+        param.setPageSize(pageSize);
+        LongArticleSystemContentVO longArticleSystemContentVO = listWaitingMatchMiniprogramContents(param);
+        if (longArticleSystemContentVO == null) {
+            return null;
+        }
+        Long totalCount = longArticleSystemContentVO.getTotalCount();
+        while ((long) pageNum * pageSize < totalCount) {
+            pageNum++;
+            param.setPageNum(pageNum);
+            LongArticleSystemContentVO longArticleSystemContentVO1 = listWaitingMatchMiniprogramContents(param);
+            if (longArticleSystemContentVO1 != null && !CollectionUtils.isEmpty(longArticleSystemContentVO.getContentItemList())) {
+                longArticleSystemContentVO.getContentItemList().addAll(longArticleSystemContentVO1.getContentItemList());
+            }
+        }
+        return longArticleSystemContentVO;
+    }
+
+    @Override
+    //分页获取待匹配内容列表
+    public LongArticleSystemContentVO listWaitingMatchMiniprogramContents(GetContentsParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/listWaitingMatchMiniprogramContents";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return jsonObject.getJSONObject("data").toJavaObject(LongArticleSystemContentVO.class);
+            }
+        } catch (Exception e) {
+            log.error("listWaitingMatchMiniprogramContents error", e);
+        }
+        return null;
+    }
+
+    //分页获取待匹配内容列表
+    public LongArticleSystemContentVO listWaitingSortContents(GetContentsParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/listWaitingSortContents";
+        try {
+            HttpPoolClientUtil httpPoolClientUtil = HttpClientUtil.create(5000, 200000, 5, 10, 3, 3000);
+            String res = httpPoolClientUtil.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return jsonObject.getJSONObject("data").toJavaObject(LongArticleSystemContentVO.class);
+            }
+        } catch (Exception e) {
+            log.error("listWaitingSortContents error", e);
+        }
+        return null;
+    }
+
+    @Override
+    //创建推送任务
+    public String createPushTask(CreatePushTaskParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/createPushTask";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return jsonObject.getJSONObject("data").getString("pushId");
+            }
+        } catch (Exception e) {
+            log.error("createPushTask error", e);
+        }
+        return "";
+    }
+
+    @Override
+    //更新匹配小程序状态
+    public boolean updateMatchMiniprogramStatus(MatchMiniprogramStatusParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/updateMatchMiniprogramStatus";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("updateMatchMiniprogramStatus error", e);
+        }
+        return false;
+    }
+
+    @Override
+    public boolean filterSortContents(FilterSortParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/filterSortContents";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("filterSortContents error", e);
+        }
+        return false;
+    }
+
+    @Override
+    public PushStatusVO queryPushStatus(PushStatusParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/queryPushStatus";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return jsonObject.getJSONObject("data").toJavaObject(PushStatusVO.class);
+            }
+        } catch (Exception e) {
+            log.error("queryPushStatus error", e);
+        }
+        return null;
+    }
+
+    @Override
+    public String pushCover(String coverUrl, String publishContentId) {
+        if (StringUtils.isEmpty(coverUrl) || StringUtils.isEmpty(publishContentId)) {
+            return null;
+        }
+        String apiUrl = "http://aigc-api.cybertogether.net/aigc//publish/LongArticleSystem/uploadMiniprogramCover";
+        try {
+            JSONObject param = new JSONObject();
+            param.put("coverUrl", coverUrl);
+            param.put("publishContentId", publishContentId);
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSONObject.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                JSONObject data = jsonObject.getJSONObject("data");
+                return data.getString("wxUrl");
+            }
+            return null;
+        } catch (Exception e) {
+            log.error("pushCover error", e);
+        }
+        return null;
+    }
+
+    public List<PushRecordVO> getTodayPushRecords(PushRecordParam param) {
+        String apiUrl = "http://aigc-api.cybertogether.net//aigc/publish/LongArticleSystem/getTodayPushRecords";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSONObject.toJSONString(param));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                JSONArray data = jsonObject.getJSONArray("data");
+                if (CollectionUtils.isEmpty(data)) {
+                    return null;
+                }
+                return data.toJavaList(PushRecordVO.class);
+            }
+            return null;
+        } catch (Exception e) {
+            log.error("pushCover error", e);
+        }
+        return null;
+    }
+
+}

+ 34 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/MatchServiceImpl.java

@@ -0,0 +1,34 @@
+package com.tzld.piaoquan.longarticle.service.remote.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.tzld.piaoquan.longarticle.model.dto.MiniprogramCardRequest;
+import com.tzld.piaoquan.longarticle.service.remote.MatchService;
+import com.tzld.piaoquan.longarticle.utils.HttpClientUtil;
+import com.tzld.piaoquan.longarticle.utils.HttpPoolClientUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class MatchServiceImpl implements MatchService {
+
+    private static final HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(3000, 6000, 20, 100, 3, 3000);
+
+
+    @Override
+    public String matchMiniprogramVideo(MiniprogramCardRequest request) {
+        String apiUrl = "http://47.99.132.47:8111/search_videos";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(request));
+            JSONObject jsonObject = JSON.parseObject(res);
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                return jsonObject.getString("traceId");
+            }
+        } catch (Exception e) {
+            log.error("matchMiniprogramVideo error", e);
+        }
+        return "";
+    }
+}

+ 42 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/SortServiceImpl.java

@@ -0,0 +1,42 @@
+package com.tzld.piaoquan.longarticle.service.remote.impl;
+
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSON;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortRequest;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponse;
+import com.tzld.piaoquan.longarticle.service.remote.SortService;
+import com.tzld.piaoquan.longarticle.utils.HttpClientUtil;
+import com.tzld.piaoquan.longarticle.utils.HttpPoolClientUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.Objects;
+
+@Slf4j
+@Service
+public class SortServiceImpl implements SortService {
+
+    HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(5000, 200000, 20, 100, 3, 3000);
+
+    public ArticleSortResponse publishArticleSort(ArticleSortRequest request) {
+        ArticleSortResponse response = new ArticleSortResponse();
+        String apiUrl = "http://101.37.174.139:80/recommend";
+        try {
+            String res = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, JSON.toJSONString(request));
+            log.info("publishArticleSort res={}", res);
+            response = JSON.parseObject(res, ArticleSortResponse.class);
+            if (Objects.nonNull(response) && Objects.nonNull(response.getData())) {
+                response.setSuccessful(true);
+                if (CollectionUtil.isNotEmpty(response.getData().getRank_list())) {
+                    return response;
+                }
+            }
+        } catch (Exception e) {
+            log.error("publishArticleSort recommend response parseObject", e);
+        }
+        return response;
+    }
+
+}

+ 122 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/VideoServiceImpl.java

@@ -0,0 +1,122 @@
+package com.tzld.piaoquan.longarticle.service.remote.impl;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+import com.tzld.piaoquan.longarticle.service.remote.VideoService;
+import com.tzld.piaoquan.longarticle.utils.HttpClientUtil;
+import com.tzld.piaoquan.longarticle.utils.HttpPoolClientUtil;
+import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Slf4j
+@Service
+public class VideoServiceImpl implements VideoService {
+
+    private static final HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(5000, 5000, 20, 100, 3, 3000);
+
+
+    private static final String PUBLISH_URL = "https://vlogapi.piaoquantv.com/longvideoapi/crawler/video/send";
+    private static final String VIDEO_DETAIL_URL = "https://longvideoapi.piaoquantv.com/longvideoapi/openapi/video/batchSelectVideoInfo";
+
+    public VideoDetail publish(String ossPath, String uid, String title) {
+        String videoId = publishToPQ(ossPath, uid, title);
+        if (videoId == null) {
+            return null;
+        }
+        return getPQVideoDetail(videoId);
+    }
+
+    private String publishToPQ(String ossPath, String uid, String title) {
+        try {
+            Map<String, Object> payload = new HashMap<>();
+            payload.put("deviceToken", "9ef064f2f7869b3fd67d6141f8a899175dddc91240971172f1f2a662ef891408");
+            payload.put("fileExtensions", "MP4");
+            payload.put("loginUid", uid);
+            payload.put("networkType", "Wi-Fi");
+            payload.put("platform", "iOS");
+            payload.put("requestId", "fb972cbd4f390afcfd3da1869cd7d001");
+            payload.put("sessionId", "362290597725ce1fa870d7be4f46dcc2");
+            payload.put("subSessionId", "362290597725ce1fa870d7be4f46dcc2");
+            payload.put("title", title);
+            payload.put("token", "524a8bc871dbb0f4d4717895083172ab37c02d2f");
+            payload.put("uid", uid);
+            payload.put("versionCode", "486");
+            payload.put("versionName", "3.4.12");
+            payload.put("videoFromScene", "1");
+            payload.put("videoPath", ossPath);
+            payload.put("viewStatus", "1");
+            payload.put("appType", 888880);
+            payload.put("repeatStatus", 1);
+
+            HttpResponse response = HttpRequest.post(PUBLISH_URL)
+                    .header("User-Agent", "PQSpeed/486 CFNetwork/1410.1 Darwin/22.6.0")
+                    .header("cookie", "JSESSIONID=4DEA2B5173BB9A9E82DB772C0ACDBC9F; JSESSIONID=D02C334150025222A0B824A98B539B78")
+                    .header("referer", "http://appspeed.piaoquantv.com")
+                    .header("accept-language", "zh-CN,zh-Hans;q=0.9")
+                    .header("Content-Type", "application/x-www-form-urlencoded")
+                    .form(payload) // 发送表单数据
+                    .timeout(120000)
+                    .execute();
+            String body = response.body();
+            JSONObject jsonObject = JSONUtil.parseObj(body);
+            return jsonObject.getByPath("data.id", String.class); // 返回响应体
+        } catch (Exception e) {
+            log.error("publishToPQ error", e);
+        }
+        return null;
+    }
+
+    private VideoDetail getPQVideoDetail(String videoId) {
+        try {
+            Map<String, Object> data = new HashMap<>();
+            data.put("videoIdList", new String[]{videoId});
+
+            HttpResponse response = HttpRequest.post(VIDEO_DETAIL_URL)
+                    .header("Content-Type", "application/json")
+                    .body(JSONUtil.toJsonStr(data)) // 将数据转换为 JSON 字符串
+                    .execute();
+            VideoDetail videoDetail = new VideoDetail();
+            JSONObject jsonObject = JSONUtil.parseObj(response.body());
+            List<JSONObject> list = jsonObject.get("data", List.class);
+            if (!CollectionUtils.isEmpty(data)) {
+                String id = list.get(0).getStr("id");
+                String shareImgPath = list.get(0).getStr("shareImgPath");
+                String videoPath = list.get(0).getStr("videoPath");
+                if (StringUtils.isNotEmpty(id)) {
+                    videoDetail.setVideoId(id);
+                }
+                videoDetail.setVideoCover(shareImgPath);
+                videoDetail.setVideoPath(videoPath);
+            }
+            return videoDetail;
+        } catch (Exception e) {
+            log.error("getPQVideoDetail error", e);
+        }
+        return null;
+    }
+
+    @Override
+    public void miniProgramVideoOff(String traceId) {
+        try {
+            String apiUrl = "http://47.98.154.124:8111/get_off_videos";
+            log.info("miniProgramVideoOff,traceId:{}", traceId);
+            com.alibaba.fastjson.JSONObject params = new com.alibaba.fastjson.JSONObject();
+            params.put("traceId", traceId);
+            String post = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, params.toJSONString());
+        } catch (Exception e) {
+            LarkRobotUtil.sendMessage("get_off_videos失败  traceId=" + traceId);
+            log.error("miniProgramVideoOff error {}", e.getMessage());
+        }
+    }
+}

+ 31 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/DateUtil.java

@@ -0,0 +1,31 @@
+package com.tzld.piaoquan.longarticle.utils;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+
+    public static Date getThatDayDate() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTime();
+    }
+
+    private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    public static long convertToTimestamp(String timeString) {
+        LocalTime localTime = LocalTime.parse(timeString, formatter);
+        LocalDate today = LocalDate.now();
+        LocalDateTime localDateTime = LocalDateTime.of(today, localTime);
+        return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
+    }
+
+}

+ 0 - 84
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/DouyinSearch.java

@@ -1,84 +0,0 @@
-package com.tzld.piaoquan.longarticle.utils;
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.json.JSONUtil;
-import cn.hutool.json.JSONObject;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DouyinSearch {
-
-    public static List<JSONObject> douyinSearch(String keyword, String sensitiveWords, String traceId) {
-        String url = "http://8.217.190.241:8888/crawler/dou_yin/top_hub_content";
-        JSONObject payload = new JSONObject();
-        payload.put("keyword", keyword);
-        payload.put("category", "全部");
-        payload.put("period", "近90天");
-        payload.put("content_modal", "视频");
-        payload.put("cursor", "");
-
-        HttpResponse response = HttpRequest.post(url)
-                .header("Content-Type", "application/json")
-                .body(payload.toString())
-                .execute();
-
-        List<JSONObject> resultList = new ArrayList<>();
-
-        try {
-            JSONObject jsonResponse = JSONUtil.parseObj(response.body());
-            List<JSONObject> dtList = jsonResponse.getByPath("data.data", List.class);
-
-            for (JSONObject obj : dtList) {
-                try {
-                    String title = obj.getStr("video_desc");
-                    String videoId = obj.getStr("video_id");
-                    int duration = obj.getInt("duration");
-
-                    if (sensitiveFlag(sensitiveWords, title) && duration < 30000) {
-                        JSONObject res = douyinDetail(videoId);
-                        if (res != null) {
-                            resultList.add(res);
-                        }
-                    }
-                } catch (Exception e) {
-                    System.out.println(e.getMessage());
-                    // 处理异常
-                }
-            }
-
-            return resultList;
-        } catch (Exception e) {
-            return new ArrayList<>();
-        }
-    }
-
-    public static JSONObject douyinDetail(String videoId) {
-        String url = "http://8.217.190.241:8888/crawler/dou_yin/detail";
-        JSONObject payload = new JSONObject();
-        payload.put("content_id", videoId);
-
-        HttpResponse response = HttpRequest.post(url)
-                .header("Content-Type", "application/json")
-                .body(payload.toString())
-                .execute();
-
-        JSONObject videoInfo = JSONUtil.parseObj(response.body()).getByPath("data.data", JSONObject.class);
-
-        if ("note".equals(videoInfo.getStr("content_type"))) {
-            return null;
-        } else {
-            return videoInfo;
-        }
-    }
-
-    private static boolean sensitiveFlag(String sensitiveWords, String title) {
-        // 实现敏感词检查逻辑
-        return true; // 示例
-    }
-
-    public static void main(String[] args) {
-        System.out.println(douyinSearch("美女", "", ""));
-    }
-}
-
-

+ 0 - 183
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HkspSearch.java

@@ -1,183 +0,0 @@
-package com.tzld.piaoquan.longarticle.utils;
-
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-
-import java.io.IOException;
-import java.net.Authenticator;
-import java.net.InetSocketAddress;
-import java.net.PasswordAuthentication;
-import java.net.Proxy;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.UUID;
-
-public class HkspSearch {
-
-
-
-    public static void main(String[] args) throws IOException {
-        System.out.println(hkspSearch("测试", "", "ccc"));
-
-    }
-
-    public static List<JSONObject> hkspSearch(String key, String sensitiveWords, String traceId) throws IOException {
-        long timestampMilliseconds = System.currentTimeMillis();
-        String url = "https://haokan.baidu.com/haokan/ui-search/pc/search/video";
-
-        // 生成签名
-        String strings = String.format("%d_%s_%d_%d_%d", 1, key, 10, timestampMilliseconds, 1);
-        String sign = md5(strings);
-
-        JSONObject params = new JSONObject();
-        params.put("pn", 1);
-        params.put("rn", 10);
-        params.put("type", "video");
-        params.put("query", key);
-        params.put("sign", sign);
-        params.put("version", 1);
-        params.put("timestamp", timestampMilliseconds);
-
-        String base64String = Base64.getEncoder().encodeToString(UUID.randomUUID().toString().getBytes());
-
-        // 这行代码是身份验证的关键配置,不然身份验证不起作用
-        System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
-        // 身份验证
-        Authenticator.setDefault(
-                new Authenticator() {
-                    public PasswordAuthentication getPasswordAuthentication() {
-                        return new PasswordAuthentication(
-                                "t11983523373311", "mtuhdr2z".toCharArray());
-                    }
-                }
-        );
-        // 设置代理服务器
-        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("l901.kdltps.com", 15818));
-        HttpResponse response = HttpRequest.get(url)
-                .header("authority", "haokan.baidu.com")
-                .header("accept", "*/*")
-                .header("accept-language", "zh,en;q=0.9,zh-CN;q=0.8")
-                .header("cookie", "BIDUPSID=" + base64String)
-                .header("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0") // 假用户代理
-                .header("x-requested-with", "xmlhttprequest")
-                .timeout(120000) // 设置超时时间
-//                .setProxy(proxy)
-                .form(params)
-                .execute();
-
-        List<JSONObject> resultList = new ArrayList<>();
-        try {
-            System.out.println(response.body());
-            JSONObject jsonResponse = JSONUtil.parseObj(response.body());
-            List<JSONObject> dataList = jsonResponse.getByPath("data.list", List.class);
-
-            for (JSONObject data : dataList) {
-                try {
-                    String videoId = data.getStr("vid");
-                    String title = data.getStr("title");
-                    int duration = parseDuration(data.getStr("duration"));
-
-                    if (sensitiveFlag(sensitiveWords, title) && duration <= 300) {
-                        JSONObject res = getVideoDetail(videoId);
-                        if (res != null) {
-                            resultList.add(res);
-                        }
-                    }
-                } catch (Exception e) {
-                    // 处理异常
-                }
-            }
-
-            logging(traceId, key, dataList.size(), resultList.size());
-            return resultList;
-        } catch (Exception e) {
-            logging(traceId, key, e.getMessage());
-            return new ArrayList<>();
-        }
-    }
-
-    private static int parseDuration(String duration) {
-        String[] parts = duration.split(":");
-        return Integer.parseInt(parts[0]) * 60 + Integer.parseInt(parts[1]);
-    }
-
-    private static String md5(String input) {
-        try {
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] messageDigest = md.digest(input.getBytes());
-            StringBuilder sb = new StringBuilder();
-            for (byte b : messageDigest) {
-                sb.append(String.format("%02x", b));
-            }
-            return sb.toString();
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private static boolean sensitiveFlag(String sensitiveWords, String title) {
-        // 实现敏感词检查逻辑
-        return true; // 示例
-    }
-
-    private static void logging(String traceId, String key, int searchCount, int usefulCount) {
-        // 实现日志记录逻辑
-    }
-
-    private static void logging(String traceId, String key, String message) {
-        // 实现日志记录逻辑
-    }
-
-    public static JSONObject getVideoDetail(String videoId) {
-
-
-        String url = "https://haokan.baidu.com/v";
-        JSONObject params = new JSONObject();
-        params.put("vid", videoId);
-        params.put("_format", "json");
-
-        String base64String = Base64.getEncoder().encodeToString(UUID.randomUUID().toString().getBytes());
-        HttpRequest proxyHttpRequest = getProxyHttpRequest(url);
-        HttpResponse response = proxyHttpRequest
-                .header("Accept", "*/*")
-                .header("cookie", "BIDUPSID=" + base64String)
-                .header("Accept-Language", "en,zh;q=0.9,zh-CN;q=0.8")
-                .header("Cache-Control", "no-cache")
-                .header("Connection", "keep-alive")
-                .header("Content-Type", "application/x-www-form-urlencoded")
-                .header("Referer", "https://haokan.baidu.com")
-                .form(params)
-
-                .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("l901.kdltps.com", 15818)))
-                .basicProxyAuth("t11983523373311", "mtuhdr2z")
-                .execute();
-
-        return JSONUtil.parseObj(response.body()).getByPath("data.apiData.curVideoMeta", JSONObject.class);
-    }
-
-    public static HttpRequest getProxyHttpRequest(String url) {
-
-        // 代理的地址和端口
-        String proxyHost = "l901.kdltps.com";
-        int proxyPort = 15818;
-
-        // 用户名和密码
-        String username = "t11983523373311"; // 替换为你的用户名
-        String password = "mtuhdr2z"; // 替换为你的密码
-
-        // 创建代理请求
-        String proxyUrl = String.format("https://%s:%s@%s:%d", username, password, proxyHost, proxyPort);
-
-        // 发送请求
-        HttpRequest httpRequest = HttpRequest.get(url) // 替换为你要请求的 URL
-                .proxyAuth(proxyUrl);
-        return httpRequest;
-    }
-
-
-}

+ 90 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HttpClientUtil.java

@@ -0,0 +1,90 @@
+package com.tzld.piaoquan.longarticle.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+/**
+ * http util
+ *
+ * @author xueyiming
+ */
+public class HttpClientUtil {
+
+    private static final String DEFAULT_SHARED_KEY = "DEFAULT_SHARED_KEY";
+
+    /**
+     * 链接建立的超时时间 ms
+     */
+    private static final int DEFAULT_CONNECTION_TIMEOUT = 3000;
+    /**
+     * 响应超时时间 ms
+     */
+    private static final int DEFAULT_SOCKET_TIMEOUT = 3000;
+
+    /**
+     * 每个路由的最大连接数
+     */
+    private static final int DEFAULT_DEFAULT_MAX_PER_ROUTE = 50;
+
+    /**
+     * 最大连接数
+     */
+    private static final int DEFAULT_DEFAULT_MAX_TOTAL = 200;
+
+    /**
+     * 重试次数,默认0
+     */
+    private static final int DEFAULT_RETRY_COUNT = 5;
+
+    /**
+     * 从connection pool中获得一个connection的超时时间 ms
+     */
+    private static final int DEFAULT_CONNECTION_WAIT_TIMEOUT = 300;
+
+    private static final Map<String, HttpPoolClientUtil> CREATED_HTTP_CLIENTS = new HashMap<>();
+
+    private static final Lock LOCK = new ReentrantLock();
+
+    private HttpClientUtil() {
+    }
+
+    public static HttpPoolClientUtil useDefault() {
+        return createCached(DEFAULT_SHARED_KEY);
+    }
+
+
+    public static HttpPoolClientUtil createCached(String cachedKey) {
+        HttpPoolClientUtil httpPoolClientUtil = CREATED_HTTP_CLIENTS.get(cachedKey);
+        if (httpPoolClientUtil != null) {
+            return httpPoolClientUtil;
+        }
+        LOCK.lock();
+        try {
+            httpPoolClientUtil = CREATED_HTTP_CLIENTS.get(cachedKey);
+            if (httpPoolClientUtil == null) {
+                httpPoolClientUtil = create(DEFAULT_CONNECTION_TIMEOUT, DEFAULT_SOCKET_TIMEOUT, DEFAULT_DEFAULT_MAX_PER_ROUTE, DEFAULT_DEFAULT_MAX_TOTAL, DEFAULT_RETRY_COUNT, DEFAULT_CONNECTION_WAIT_TIMEOUT);
+                CREATED_HTTP_CLIENTS.put(cachedKey, httpPoolClientUtil);
+            }
+        } finally {
+            LOCK.unlock();
+        }
+        return httpPoolClientUtil;
+    }
+
+    /**
+     * 创建httpclient
+     *
+     * @param connectTimeout        连接超时时间 ms
+     * @param socketTimeout         读超时时间(等待数据超时时间)ms
+     * @param maxPerRoute           每个路由的最大连接数
+     * @param maxTotal              最大连接数
+     * @param retryCount            重试次数
+     * @param connectionWaitTimeout 连接等待超市时间 ms
+     * @return httpclient instance
+     */
+    public static HttpPoolClientUtil create(int connectTimeout, int socketTimeout, int maxPerRoute, int maxTotal, int retryCount, int connectionWaitTimeout) {
+        return HttpPoolClientUtil.create(connectTimeout, socketTimeout, maxPerRoute, maxTotal, retryCount, connectionWaitTimeout);
+    }
+}

+ 193 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/HttpPoolClientUtil.java

@@ -0,0 +1,193 @@
+package com.tzld.piaoquan.longarticle.utils;
+
+import com.google.common.collect.Lists;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.concurrent.BasicThreadFactory;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpRequestInterceptor;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.*;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.HttpClientConnectionManager;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.http.util.EntityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+import javax.net.ssl.SSLContext;
+import java.io.File;
+import java.io.IOException;
+import java.net.SocketTimeoutException;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * http client
+ *
+ * @author xueyiming
+ */
+public class HttpPoolClientUtil {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(HttpPoolClientUtil.class);
+
+    private static final ScheduledExecutorService SCHEDULED_CLOSED_EXECUTOR = new ScheduledThreadPoolExecutor(1,
+            new BasicThreadFactory.Builder().namingPattern("http conn-closed-thread-%s").priority(Thread.NORM_PRIORITY).daemon(false).build(), (r, e) -> LOGGER.error(" monitor push reject task error={}", e.toString()));
+
+    private static final List<HttpClientConnectionManager> HTTP_CLIENT_CONNECTION_MANAGERS = Lists.newArrayList();
+
+    static {
+        SCHEDULED_CLOSED_EXECUTOR.schedule(() -> HTTP_CLIENT_CONNECTION_MANAGERS.forEach(HttpClientConnectionManager::closeExpiredConnections), 5, TimeUnit.SECONDS);
+    }
+
+    private CloseableHttpClient closeableHttpClient;
+
+    private HttpPoolClientUtil(CloseableHttpClient closeableHttpClient) {
+        this.closeableHttpClient = closeableHttpClient;
+    }
+
+    private static HttpRequestInterceptor getInterceptor() {
+        HttpRequestInterceptor requestInterceptor = (request, context) -> {
+            try {
+                String missSpanId = MDC.get("missSpanId");
+                String missTraceId = MDC.get("request-id");
+                if (missTraceId != null && !"".equals(missTraceId.trim())) {
+                    request.setHeader("request-id", missTraceId);
+                }
+                if (missSpanId != null && !"".equals(missSpanId.trim())) {
+                    request.setHeader("missSpanId", missSpanId);
+                }
+            } catch (Exception e) {
+                LOGGER.error(e.getMessage(), e);
+            }
+        };
+        return requestInterceptor;
+    }
+
+
+    public String get(String url) throws IOException {
+        HttpGet httpGet = new HttpGet(url);
+        return request(httpGet);
+    }
+
+    public String post(String url) throws IOException {
+        HttpPost httpPost = new HttpPost(url);
+        return request(httpPost);
+    }
+
+
+    public String post(String url, String json) throws IOException {
+        HttpPost httpPost = new HttpPost(url);
+        if (StringUtils.isBlank(json)) {
+            return request(httpPost);
+        }
+        StringEntity entity = new StringEntity(json, StandardCharsets.UTF_8);
+        entity.setContentEncoding("UTF-8");
+        entity.setContentType("application/json");
+        httpPost.setEntity(entity);
+        return request(httpPost);
+    }
+
+    public String post(String url, File file) throws IOException {
+        HttpPost uploadFile = new HttpPost(url);
+        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+        builder.addBinaryBody("media", file);
+        uploadFile.setEntity(builder.build());
+        return request(uploadFile);
+    }
+
+    public String request(HttpRequestBase request) throws IOException {
+
+        if (LOGGER.isDebugEnabled()) {
+            String path = request.getURI().toString();
+            LOGGER.debug("http request url = {} ", path);
+        }
+        HttpEntity entity = null;
+        CloseableHttpResponse response = request((HttpUriRequest) request);
+        if (response == null) {
+            throw new RuntimeException("call api exception no response");
+        }
+        entity = response.getEntity();
+        String content = null;
+        if (entity != null) {
+            content = EntityUtils.toString(entity, "UTF-8");
+        }
+        int httpStatus = response.getStatusLine().getStatusCode();
+        if (httpStatus == HttpStatus.SC_OK) {
+            return content;
+        }
+        String path = request.getURI().toString();
+        LOGGER.error("http call api {} fail response status {} content {}", path, httpStatus, content);
+//            throw new HttpServiceException(httpStatus, content);
+        return null;
+    }
+
+
+    public CloseableHttpResponse request(HttpUriRequest request) {
+        try {
+            CloseableHttpResponse execute = closeableHttpClient.execute(request);
+            return execute;
+        } catch (Exception e) {
+            String path = request.getURI().toString();
+            if (e instanceof SocketTimeoutException) {
+                LOGGER.error(String.format("http timeout request url = %s .", path));
+//                throw new TimeoutException();
+            } else {
+            }
+            throw new RuntimeException(String.format("http exception request url = %s ", path), e);
+        }
+    }
+
+    /**
+     * @param connectTimeout 连接超时时间 ms
+     * @param socketTimeout  读超时时间(等待数据超时时间)ms
+     * @param maxPerRoute    每个路由的最大连接数
+     * @param maxTotal       最大连接数
+     * @param retryCount     重试次数
+     * @return httpclient instance
+     */
+    protected static HttpPoolClientUtil create(int connectTimeout, int socketTimeout, int maxPerRoute, int maxTotal, int retryCount, int connectionWaitTimeout) {
+        try {
+            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectTimeout).setSocketTimeout(socketTimeout).setConnectionRequestTimeout(connectionWaitTimeout).build();
+            CloseableHttpClient client = HttpClientBuilder.create()
+                    .setDefaultRequestConfig(requestConfig)
+                    .setConnectionManager(createConnectionManager(maxPerRoute, maxTotal))
+                    .setRetryHandler(new DefaultHttpRequestRetryHandler(retryCount, false)).addInterceptorFirst(getInterceptor()).build();
+            return new HttpPoolClientUtil(client);
+        } catch (Throwable e) {
+            LOGGER.error("create HttpPoolClient exception", e);
+            throw new RuntimeException("create HttpPoolClient exception");
+        }
+    }
+
+    private static PoolingHttpClientConnectionManager createConnectionManager(int maxPerRoute, int maxTotal) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
+        SSLContext sslContext = SSLContexts.custom().loadTrustMaterial((chain, authType) -> true).build();
+        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
+                .register("http", PlainConnectionSocketFactory.getSocketFactory())
+                .register("https", new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE)).build();
+        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(registry);
+        cm.setDefaultMaxPerRoute(maxPerRoute);
+        cm.setMaxTotal(maxTotal);
+        HTTP_CLIENT_CONNECTION_MANAGERS.add(cm);
+        return cm;
+    }
+
+}

+ 0 - 56
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/KimiAPI.java

@@ -1,56 +0,0 @@
-package com.tzld.piaoquan.longarticle.utils;
-
-import cn.hutool.http.HttpRequest;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class KimiAPI {
-
-    /**
-     * 聊天端点
-     */
-    static String chatEndpoint = "https://api.moonshot.cn/v1/chat/completions";
-    /**
-     * api密匙
-     */
-    static String apiKey = "Bearer sk-5DqYCa88kche6nwIWjLE1p4oMm8nXrR9kQMKbBolNAWERu7q";
-
-    /**
-     * 发送消息
-     *
-     * @param txt 内容
-     * @return {@link String}
-     */
-    public static String chat(String txt) {
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("model", "moonshot-v1-8k");
-        List<Map<String, String>> dataList = new ArrayList<>();
-        dataList.add(new HashMap<String, String>() {{
-            put("role", "user");
-            put("content", txt);
-        }});
-        paramMap.put("messages", dataList);
-        JSONObject message = null;
-        try {
-            String body = HttpRequest.post(chatEndpoint)
-                    .header("Authorization", apiKey)
-                    .header("Content-Type", "application/json")
-                    .body(JSONObject.toJSONString(paramMap))
-                    .execute()
-                    .body();
-            JSONObject jsonObject = JSONObject.parseObject(body);
-            JSONArray choices = jsonObject.getJSONArray("choices");
-            JSONObject result = choices.getJSONObject(0);
-            message = result.getJSONObject("message");
-            return message.getString("content");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-}

+ 40 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/LarkRobotUtil.java

@@ -0,0 +1,40 @@
+package com.tzld.piaoquan.longarticle.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+@Slf4j
+public class LarkRobotUtil {
+
+
+    private static final String URL = "https://open.feishu.cn/open-apis/bot/v2/hook/93787b70-33d3-42c1-beae-c09310c9b38b";
+
+    private static final HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(3000, 10000, 20, 100, 3, 3000);
+
+
+    public static void sendMessage(String msg) {
+        sendMessage("text", "长文发布报警:" + msg);
+    }
+
+    public static void sendMessage(String type, String msg) {
+        try {
+            JSONObject param = new JSONObject();
+            param.put("msg_type", type);
+            JSONObject content = new JSONObject();
+            content.put("text", msg);
+            param.put("content", content);
+            HTTP_POOL_CLIENT_UTIL_DEFAULT.post(URL, param.toJSONString());
+        } catch (Exception e) {
+            log.error("Lark sendMessage error", e);
+        }
+    }
+
+
+}

+ 0 - 88
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/OpenAIAPI.java

@@ -1,88 +0,0 @@
-package com.tzld.piaoquan.longarticle.utils;
-
-import cn.hutool.core.convert.ConvertException;
-import cn.hutool.http.HttpException;
-import cn.hutool.http.HttpRequest;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.*;
-
-public class OpenAIAPI {
-
-    /**
-     * 聊天端点
-     */
-    static String chatEndpoint = "https://api.openai.com/v1/chat/completions";
-    /**
-     * api密匙
-     */
-    static String apiKey = "Bearer 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";
-
-    /**
-     * 发送消息
-     *
-     * @param txt 内容
-     * @return {@link String}
-     */
-    public static String chat(String txt) {
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("model", "gpt-3.5-turbo");
-        List<Map<String, String>> dataList = new ArrayList<>();
-        dataList.add(new HashMap<String, String>() {{
-            put("role", "user");
-            put("content", txt);
-        }});
-        paramMap.put("messages", dataList);
-        JSONObject message = null;
-        try {
-            String body = HttpRequest.post(chatEndpoint)
-                    .header("Authorization", apiKey)
-                    .header("Content-Type", "application/json")
-                    .body(JSONObject.toJSONString(paramMap))
-                    .execute()
-                    .body();
-            JSONObject jsonObject = JSONObject.parseObject(body);
-            JSONArray choices = jsonObject.getJSONArray("choices");
-            JSONObject result = choices.getJSONObject(0);
-            message = result.getJSONObject("message");
-        } catch (HttpException e) {
-            return "出现了异常";
-        } catch (ConvertException e) {
-            return "出现了异常";
-        }
-        return message.getString("content");
-    }
-
-    public static String promptGenerate(String promptType) {
-        if (Objects.equals(promptType, "title")) {
-            return " 请将以上标题改写成适合小程序点击和传播的小程序标题,小程序标题的写作规范如下,请学习后进行小程序标题的编写。直接输出最终的小程序标题\n" +
-                    "                小程序标题写作规范:\n" +
-                    "                1.要点前置:将最重要的信息放在标题的最前面,以快速吸引读者的注意力。例如,“5月一辈子同学,三辈子亲,送给我的老同学,听哭无数人!”中的“5月”和“一辈子同学,三辈子亲”都是重要的信息点。\n" +
-                    "                2.激发情绪:使用能够触动人心的语言,激发读者的情感共鸣。如“只剩两人同学聚会,看后感动落泪。”使用“感动落泪”激发读者的同情和怀旧情绪。\n" +
-                    "                3.使用数字和特殊符号:数字可以提供具体性,而特殊符号如“\uD83D\uDD34”、“\uD83D\uDE04”、“\uD83D\uDD25”等可以吸引视觉注意力,增加点击率。\n" +
-                    "                4.悬念和好奇心:创建悬念或提出问题,激发读者的好奇心。例如,“太神奇了!长江水位下降,重庆出现惊奇一幕!”中的“惊奇一幕”就是一个悬念。\n" +
-                    "                5.名人效应:如果内容与知名人士相关,提及他们的名字可以增加标题的吸引力。\n" +
-                    "                6.社会价值观:触及读者的文化和社会价值观,如家庭、友情、国家荣誉等。\n" +
-                    "                7.标点符号的运用:使用感叹号、问号等标点来增强语气和情感表达。\n" +
-                    "                8.直接的语言:使用直白、口语化的语言,易于理解,如“狗屁股,笑死我了!”。\n" +
-                    "                9.热点人物或事件:提及当前的热点人物或事件,利用热点效应吸引读者。\n" +
-                    "                10.字数适中:保持标题在10-20个字之间,既不过长也不过短,确保信息的完整性和吸引力。\n" +
-                    "                11.适当的紧迫感:使用“最新”、“首次”、“紧急”等词汇,创造一种紧迫感,促使读者立即行动。\n" +
-                    "                12.情感或价值诉求:使用如“感动”、“泪目”、“经典”等词汇,直接与读者的情感或价值观产生共鸣。\n" +
-                    "                避免误导:确保标题准确反映内容,避免夸大或误导读者。";
-
-        } else if (Objects.equals(promptType, "text")) {
-            return "请从我给你的文章中挖掘出以下信息并且返回如下结果。\n" +
-                    "                你返回的结果是一个 json, 格式如下:\n" +
-                    "                {\n" +
-                    "                    \"content_keys\": [] # 同时提供三个与文章内容高度相关的关键词,这些关键词将用于网络上搜索相关视频内容,\n" +
-                    "                    \"content_title\": 一个总结性的标题,该标题应简洁并能够反映文章的主要内容\n" +
-                    "                }\n" +
-                    "                你需要处理的文本是:";
-        } else {
-            return "用中文帮我回答以下问题";
-        }
-    }
-
-}

+ 219 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/TimeZoneUtil.java

@@ -0,0 +1,219 @@
+package com.tzld.piaoquan.longarticle.utils;
+
+import lombok.Getter;
+
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TimeZoneUtil {
+
+    @Getter
+    public enum Timezone {
+        china("Asia/Shanghai", "中国"),
+        america("America/New_York", "美国");
+        private final String val;
+        private final String description;
+
+        Timezone(String val, String description) {
+            this.val = val;
+            this.description = description;
+        }
+    }
+
+    private TimeZoneUtil() {
+    }
+
+    public static int toExcelSerialNumber(String dateStr) {
+        // 定义日期格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        // 解析输入日期
+        LocalDate date = LocalDate.parse(dateStr, formatter);
+        // Excel的基准日期
+        LocalDate baseDate = LocalDate.of(1900, 1, 1);
+        // 计算天数差
+        long daysBetween = ChronoUnit.DAYS.between(baseDate, date);
+        // Excel将1900年2月29日(不存在的日期)算作有效日期,因此需要加1
+        return (int) daysBetween + 2;
+    }
+
+    public static LocalTime currentTime(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        return LocalTime.now(zoneId);
+    }
+
+
+    public static long todayMinTimestamp(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate currentDate = LocalDate.now(zoneId);
+        LocalDateTime maxDateTime = LocalDateTime.of(currentDate, LocalTime.MIN);
+        return maxDateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static long dayBeforeTimestamp(Timezone timezone, int dayNum) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDateTime now = LocalDateTime.now(zoneId);
+        return now.minusDays(dayNum).atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static LocalDateTime parseDate(String dateStr, DateTimeFormatter dateTimeFormatter) {
+        return LocalDateTime.parse(dateStr, dateTimeFormatter);
+    }
+
+    public static long dateToTimestamp(Timezone timezone, LocalDateTime localDateTime) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        return localDateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static long hourBeforeTimestamp(Timezone timezone, int hourNUm) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDateTime now = LocalDateTime.now(zoneId);
+        return now.minusHours(hourNUm).atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static String todayYMD(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate today = LocalDate.now(zoneId);
+        return today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String getDateStr(Timezone timezone, int days) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate day = LocalDate.now(zoneId).plusDays(days);
+        return day.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String nowTime(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalTime now = LocalTime.now(zoneId);
+        return now.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
+    }
+
+    public static String yesterdayYMD(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate yesterday = LocalDate.now(zoneId).minusDays(1);
+        return yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String beforeDayYMD(Timezone timezone, Integer dayNum) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate yesterday = LocalDate.now(zoneId).minusDays(dayNum);
+        return yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String beforeDay(Timezone timezone, Integer dayNum, DateTimeFormatter dateTimeFormatter) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate yesterday = LocalDate.now(zoneId).minusDays(dayNum);
+        return yesterday.format(dateTimeFormatter);
+    }
+
+    public static String toDay(Long epochMilli, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        Instant instant = Instant.ofEpochMilli(epochMilli);
+        return LocalDateTime.ofInstant(instant, zoneId).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String toDayTime(Long epochMilli, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        Instant instant = Instant.ofEpochMilli(epochMilli);
+        return LocalDateTime.ofInstant(instant, zoneId).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+    }
+
+
+    public static long todayMaxTimestamp(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate currentDate = LocalDate.now(zoneId);
+        LocalDateTime maxDateTime = LocalDateTime.of(currentDate, LocalTime.MAX);
+        return maxDateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static long getDateMinTimestamp(String dateStr, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate localdate = LocalDate.parse(dateStr);
+        LocalDateTime dateTime = LocalDateTime.of(localdate, LocalTime.MIN);
+        return dateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static long getDateMaxTimestamp(String dateStr, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate localdate = LocalDate.parse(dateStr);
+        LocalDateTime dateTime = LocalDateTime.of(localdate, LocalTime.MAX);
+        return dateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static int getTodayDayOfWeek(Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        LocalDate currentDate = LocalDate.now(zoneId);
+        return currentDate.getDayOfWeek().getValue();
+    }
+
+    public static String format(Timezone timezone, Long epochMilli, DateTimeFormatter dateTimeFormatter) {
+        return Instant.ofEpochMilli(epochMilli).atZone(ZoneId.of(timezone.val)).format(dateTimeFormatter);
+    }
+
+    public static Long getNearestHalfHourTimestamp(Timezone timezone) {
+        LocalDateTime now = LocalDateTime.now(ZoneId.of(timezone.val));
+        LocalDateTime nearestHalfHour = now.withMinute(now.getMinute() > 30 ? 30 : 0).withSecond(0);
+        return nearestHalfHour.atZone(ZoneId.of(timezone.val)).toEpochSecond() * 1000;
+    }
+
+    public static Integer getDateInterval(String dateStr, Timezone timezone) {
+        Long start = getDateMinTimestamp(dateStr, timezone);
+        Long end = todayMinTimestamp(timezone);
+        return (int) Math.floor((end - start) / (24 * 3600 * 1000));
+    }
+
+    public static String toYMD(Long timestamp, Timezone timezone) {
+        return Instant.ofEpochMilli(timestamp).atZone(ZoneId.of(timezone.val)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+    public static String toYMDT(Long timestamp) {
+
+        // 将时间戳转换为Instant对象
+        Instant instant = Instant.ofEpochMilli(timestamp);
+
+        // 将Instant对象转换为ZonedDateTime对象,指定时区为UTC
+        ZonedDateTime zdt = instant.atZone(ZoneOffset.UTC);
+
+        // 定义ISO 8601格式的DateTimeFormatter
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+
+        // 将ZonedDateTime对象格式化为字符串
+        return zdt.format(formatter);
+    }
+
+    public static long getDateStrTimestamp(String dateTimeString, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        // 定义日期时间格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+
+        // 解析字符串为 LocalDateTime 对象
+        LocalDateTime localDateTime = LocalDateTime.parse(dateTimeString, formatter);
+
+        // 将 LocalDateTime 转换为时间戳
+        return localDateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static long getDateStrTimestamp(String dateTimeString, String pattern, Timezone timezone) {
+        ZoneId zoneId = ZoneId.of(timezone.val);
+        // 定义日期时间格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
+
+        // 解析字符串为 LocalDateTime 对象
+        LocalDateTime localDateTime = LocalDateTime.parse(dateTimeString, formatter);
+
+        // 将 LocalDateTime 转换为时间戳
+        return localDateTime.atZone(zoneId).toInstant().toEpochMilli();
+    }
+
+    public static List<String> getBeforeDaysStr(String dateStr, int beforeDayNum) {
+        List<String> result = new ArrayList<>();
+        LocalDate localDate = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        for (int i = 0; i < beforeDayNum; i++) {
+            result.add(localDate.minusDays(i + 1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        }
+        return result;
+    }
+}

+ 0 - 85
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/getContentUtil.java

@@ -1,85 +0,0 @@
-package com.tzld.piaoquan.longarticle.utils;
-
-import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.Objects;
-
-public class getContentUtil {
-    public static void main(String[] args) {
-        String articleTitle = "中国宣布重大消息,韩国被吓,美国不服气,俄罗斯和朝鲜都笑了!";
-        String articleContent = "在当前国际政治舞台上,中朝关系、朝鲜半岛安全局势以及广泛的国际政治关系如同一副错综复杂的画卷,引人注目。\n" +
-                "近期,中国外交部副部长孙卫东带领的代表团访问平壤的消息,为这幅画卷添上了新的一笔,引发了外界对中朝关系未来走向的广泛关注。\n" +
-                "自1949年10月6日中华人民共和国与朝鲜民主主义人民共和国正式建交以来,两国之间的友好合作关系历经风雨,但总体上保持稳定发展。\n" +
-                "两国在多个领域展开了深入合作,包括文化、教育、科技、体育和民生等领域,这些合作不仅加深了两国人民之间的相互理解和友谊,也为地区乃至全球的和平与发展作出了贡献。\n" +
-                "在经济领域,作为朝鲜的重要贸易伙伴和物质援助国,中国对于朝鲜的经济发展起着至关重要的支持作用。中国提供的各种援助,帮助朝鲜在经济上保持稳定,助推其发展。\n" +
-                "而在政治领域,中国一直致力于推动实现半岛无核化,维护朝鲜半岛及地区的和平稳定。在这一过程中,中朝两国保持了密切的沟通与协调。\n" +
-                "\n" +
-                "然而,朝鲜半岛的局势一直是国际政治关系中的一个热点问题。近年来,美国、日本和韩国加强了对朝鲜的军事压力,通过扩大联合军演、部署战略武器等方式,不断提升在半岛的军事存在感,这无疑增加了地区的紧张气氛。对此,俄罗斯表达了对朝鲜的支持,批评美日韩的军事行动,认为这些行动加剧了地区的不稳定因素。\n" +
-                "在这个背景下,中国外交部副部长孙卫东此次访问朝鲜,显得尤为重要。此访旨在深化中朝传统友好,特别是在两国建交75周年之际,进一步加强经济合作,并就朝鲜半岛局势等共同关心的国际和地区问题交换意见。\n" +
-                "这次访问不仅是两国关系发展的一个里程碑,也是在当前复杂国际形势下,中国致力于维护地区和平稳定、推动构建人类命运共同体理念的一个重要体现。\n" +
-                "中朝双方的此次接触,无疑将为推动解决朝鲜半岛问题、维护地区和平稳定发挥积极作用。作为朝鲜半岛问题的直接相关方和重要的地区国家,中国一直倡导通过对话和协商解决问题,反对外部势力的军事干预和压力策略,这一立场在当前形势下显得尤为重要。\n" +
-                "\n" +
-                "未来,随着国际形势的不断变化,中朝之间的合作将更加多元化和深入。两国之间不仅在经济上互为支持,在维护地区和平稳定、推动构建更加公正合理的国际政治经济新秩序方面,也将发挥更加积极的作用。\n" +
-                "作为国际社会的一份子,希望所有国家都能本着相互尊重、平等互利的原则,共同努力,为实现地区乃至全球的和平、稳定与发展作出应有的贡献。\n" +
-                "在国际政治的大棋局中,中朝关系、朝鲜半岛的安全局势和国际政治关系的发展方向,始终是全球关注的焦点。本次中国外交部副部长孙卫东访问朝鲜,不仅是对两国传统友谊的再次肯定,更是在复杂的国际环境中,为维护地区和平稳定、推动构建人类命运共同体贡献中国的智慧和力量。\n" +
-                "让我们共同关注并支持这一重要的外交行动,期待它为地区乃至全球的和平与发展带来积极影响。转发此消息,让更多人了解国际局势的最新动向,共同为世界和平与稳定发声。";
-        String titleTxt = articleTitle + "\n" + promptGenerate("title");
-//        String kimiTitle = KimiAPI.chat(titleTxt);
-        String kimiTitle = "";
-        if (StringUtils.isEmpty(kimiTitle)) {
-            kimiTitle = OpenAIAPI.chat(titleTxt);
-        }
-        if (StringUtils.isEmpty(kimiTitle)) {
-            //TODO 处理异常
-            System.out.println("error");
-        }
-        kimiTitle = kimiTitle.replaceAll("'", "").replaceAll("\"", "").replace("\\", "");
-        System.out.println(kimiTitle);
-        String contentTxt = promptGenerate("text") + "\n" + articleContent;
-//        String kimiContent = KimiAPI.chat(contentTxt);
-        String kimiContent = "";
-        if (StringUtils.isEmpty(kimiContent)) {
-            kimiContent = OpenAIAPI.chat(contentTxt);
-        }
-        if (StringUtils.isEmpty(kimiContent)) {
-            //TODO 处理异常
-            System.out.println("error");
-        }
-        JSONObject jsonObject = JSONObject.parseObject(kimiContent);
-
-
-    }
-
-
-    public static String promptGenerate(String promptType) {
-        if (Objects.equals(promptType, "title")) {
-            return " 请将以上标题改写成适合小程序点击和传播的小程序标题,小程序标题的写作规范如下,请学习后进行小程序标题的编写。直接输出最终的小程序标题\n" +
-                    "                小程序标题写作规范:\n" +
-                    "                1.要点前置:将最重要的信息放在标题的最前面,以快速吸引读者的注意力。例如,“5月一辈子同学,三辈子亲,送给我的老同学,听哭无数人!”中的“5月”和“一辈子同学,三辈子亲”都是重要的信息点。\n" +
-                    "                2.激发情绪:使用能够触动人心的语言,激发读者的情感共鸣。如“只剩两人同学聚会,看后感动落泪。”使用“感动落泪”激发读者的同情和怀旧情绪。\n" +
-                    "                3.使用数字和特殊符号:数字可以提供具体性,而特殊符号如“\uD83D\uDD34”、“\uD83D\uDE04”、“\uD83D\uDD25”等可以吸引视觉注意力,增加点击率。\n" +
-                    "                4.悬念和好奇心:创建悬念或提出问题,激发读者的好奇心。例如,“太神奇了!长江水位下降,重庆出现惊奇一幕!”中的“惊奇一幕”就是一个悬念。\n" +
-                    "                5.名人效应:如果内容与知名人士相关,提及他们的名字可以增加标题的吸引力。\n" +
-                    "                6.社会价值观:触及读者的文化和社会价值观,如家庭、友情、国家荣誉等。\n" +
-                    "                7.标点符号的运用:使用感叹号、问号等标点来增强语气和情感表达。\n" +
-                    "                8.直接的语言:使用直白、口语化的语言,易于理解,如“狗屁股,笑死我了!”。\n" +
-                    "                9.热点人物或事件:提及当前的热点人物或事件,利用热点效应吸引读者。\n" +
-                    "                10.字数适中:保持标题在10-20个字之间,既不过长也不过短,确保信息的完整性和吸引力。\n" +
-                    "                11.适当的紧迫感:使用“最新”、“首次”、“紧急”等词汇,创造一种紧迫感,促使读者立即行动。\n" +
-                    "                12.情感或价值诉求:使用如“感动”、“泪目”、“经典”等词汇,直接与读者的情感或价值观产生共鸣。\n" +
-                    "                避免误导:确保标题准确反映内容,避免夸大或误导读者。";
-
-        } else if (Objects.equals(promptType, "text")) {
-            return "请从我给你的文章中挖掘出以下信息并且返回如下结果。\n" +
-                    "                你返回的结果是一个 json, 格式如下:\n" +
-                    "                {\n" +
-                    "                    \"content_keys\": [] # 同时提供三个与文章内容高度相关的关键词,这些关键词将用于网络上搜索相关视频内容,\n" +
-                    "                    \"content_title\": 一个总结性的标题,该标题应简洁并能够反映文章的主要内容\n" +
-                    "                }\n" +
-                    "                你需要处理的文本是:";
-        } else {
-            return "用中文帮我回答以下问题";
-        }
-    }
-}

+ 108 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/page/Page.java

@@ -0,0 +1,108 @@
+package com.tzld.piaoquan.longarticle.utils.page;
+
+import java.util.List;
+
+public class Page<T> {
+
+    public static final String DEFAULT_PAGE_SIZE = "20";
+    public static final String DEFAULT_CURRENT_PAGE = "1";
+
+    private int currentPage = Integer.valueOf(DEFAULT_CURRENT_PAGE);
+    private int totalSize;
+    private int pageSize = Integer.valueOf(DEFAULT_PAGE_SIZE);
+
+    private List<T> objs;
+
+    private T obj;
+
+    public Page() {
+    }
+
+    public Page(int currentPage) {
+        this.currentPage = currentPage;
+    }
+
+    public Page(int currentPage, int pageSize) {
+        setCurrentPage(currentPage);
+        setPageSize(pageSize);
+    }
+
+    public int getNextPage() {
+        return currentPage == getTotalPage() ? currentPage : currentPage + 1;
+    }
+
+    public int getPrePage() {
+        return currentPage > 1 ? currentPage - 1 : 1;
+    }
+
+    public int getOffset() {
+        return getCurPageFirstRecNum() - 1;
+    }
+
+    public int getCurPageFirstRecNum() {
+        return (getCurrentPage() - 1) * pageSize + 1;
+    }
+
+    public int getCurPageLastRecNum() {
+        return getCurrentPage() * pageSize;
+    }
+
+    public int getTotalPage() {
+        int t = totalSize % pageSize > 0 ? totalSize / pageSize + 1 : totalSize / pageSize;
+        if (t <= 0) {
+            t = 1;
+        }
+        return t;
+    }
+
+    public void setObjs(List<T> objs) {
+        this.objs = objs;
+    }
+
+    public List<T> getObjs() {
+        return objs;
+    }
+
+    public int getCurrentPage() {
+        return currentPage;
+    }
+
+    public void setCurrentPage(int currentPage) {
+        this.currentPage = currentPage;
+    }
+
+    public int getTotalSize() {
+        return totalSize;
+    }
+
+    public void setTotalSize(int totalSize) {
+        this.totalSize = totalSize;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        if (pageSize > 0) {
+            this.pageSize = pageSize;
+        }
+    }
+
+    public boolean containData() {
+        return getTotalSize() > 0;
+    }
+    @Override
+    public String toString() {
+        return "Page [currentPage=" + getCurrentPage() + ", totalSize=" + getTotalSize() + ", pageSize=" + getPageSize()
+                + "]";
+    }
+
+    public T getObj() {
+        return obj;
+    }
+
+    public void setObj(T obj) {
+        this.obj = obj;
+    }
+}

+ 14 - 0
long-article-server/src/main/resources/application-prod.properties

@@ -0,0 +1,14 @@
+server.port=8080
+
+spring.datasource.username=changwen_admin
+spring.datasource.password=changwen@123456
+spring.datasource.url=jdbc:mysql://rm-bp14529nwwcw75yr1ko.mysql.rds.aliyuncs.com:3306/long_articles?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
+
+spring.redis.database=2
+spring.redis.host=r-bp154bpw97gptefiqkpd.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qingqu2019
+
+apollo.meta: https://apolloconfig-internal.piaoquantv.com
+
+xxl.job.admin.addresses=http://xxl-job-internal.piaoquantv.com/xxl-job-admin

+ 14 - 0
long-article-server/src/main/resources/application-test.properties

@@ -0,0 +1,14 @@
+server.port=8080
+
+spring.datasource.username=changwen_admin
+spring.datasource.password=changwen@123456
+spring.datasource.url=jdbc:mysql://rm-bp14529nwwcw75yr1ko.mysql.rds.aliyuncs.com:3306/long_articles?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
+
+spring.redis.database=2
+spring.redis.host=r-bp154bpw97gptefiqkpd.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qingqu2019
+
+apollo.meta: https://apolloconfig-internal.piaoquantv.com
+
+xxl.job.admin.addresses=http://xxl-job-internal.piaoquantv.com/xxl-job-admin

+ 43 - 0
long-article-server/src/main/resources/application.properties

@@ -0,0 +1,43 @@
+spring.profiles.active=test
+spring.application.name=long-article-server
+
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.initialSize=5
+spring.datasource.maxActive=20
+spring.datasource.maxWait=60000
+spring.datasource.timeBetweenEvictionRunsMillis=60000
+spring.datasource.minEvictableIdleTimeMillis=300000
+spring.datasource.validationQuery=SELECT 1 FROM DUAL
+spring.datasource.testWhileIdle=true
+spring.datasource.testOnBorrow=false
+spring.datasource.testOnReturn=false
+spring.datasource.poolPreparedStatements=true
+
+spring.redis.lettuce.pool.max-active=8
+spring.redis.lettuce.pool.max-wait=-1
+spring.redis.lettuce.pool.max-idle=8
+spring.redis.lettuce.pool.min-idle=0
+
+
+app.id=LongArticlesMatchServer
+apollo.bootstrap.enabled=true
+apollo.bootstrap.namespaces=application
+apollo.cacheDir=/datalog/apollo-cache-dir
+
+datalog=/datalog
+
+
+xxl.job.accessToken=
+xxl.job.executor.appname=${spring.application.name}
+xxl.job.executor.address=
+xxl.job.executor.ip=
+xxl.job.executor.port=9999
+xxl.job.executor.logpath=${datalog}/xxl-job/
+xxl.job.executor.logretentiondays=30
+
+
+
+
+
+

+ 94 - 0
long-article-server/src/main/resources/log4j2.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
+<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
+<configuration monitorInterval="5">
+    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
+
+    <!--变量配置-->
+    <Properties>
+        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
+        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
+        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36}  - %msg%n" />
+        <!-- 定义日志存储的路径,不要配置相对路径 -->
+        <property name="FILE_PATH" value="/datalog" />
+        <!--项目名称-->
+        <property name="FILE_NAME" value="long_article_server" />
+    </Properties>
+
+    <appenders>
+
+        <console name="Console" target="SYSTEM_OUT">
+            <!--输出日志的格式-->
+            <PatternLayout pattern="${LOG_PATTERN}"/>
+            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
+            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
+        </console>
+
+
+        <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
+        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/${FILE_NAME}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
+            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
+            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
+            <PatternLayout pattern="${LOG_PATTERN}"/>
+            <Policies>
+                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
+                <TimeBasedTriggeringPolicy interval="1"/>
+                <SizeBasedTriggeringPolicy size="10MB"/>
+            </Policies>
+            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
+            <DefaultRolloverStrategy max="15"/>
+        </RollingFile>
+
+        <!-- 这个会打印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
+        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/${FILE_NAME}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
+            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
+            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
+            <PatternLayout pattern="${LOG_PATTERN}"/>
+            <Policies>
+                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
+                <TimeBasedTriggeringPolicy interval="1"/>
+                <SizeBasedTriggeringPolicy size="10MB"/>
+            </Policies>
+            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
+            <DefaultRolloverStrategy max="15"/>
+        </RollingFile>
+
+        <!-- 这个会打印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
+        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/${FILE_NAME}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
+            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
+            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
+            <PatternLayout pattern="${LOG_PATTERN}"/>
+            <Policies>
+                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
+                <TimeBasedTriggeringPolicy interval="1"/>
+                <SizeBasedTriggeringPolicy size="10MB"/>
+            </Policies>
+            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
+            <DefaultRolloverStrategy max="15"/>
+        </RollingFile>
+
+    </appenders>
+
+    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
+    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->
+    <loggers>
+
+        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
+        <logger name="org.mybatis" level="info" additivity="false">
+            <AppenderRef ref="Console"/>
+        </logger>
+        <!--监控系统信息-->
+        <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->
+        <Logger name="org.springframework" level="info" additivity="false">
+            <AppenderRef ref="Console"/>
+        </Logger>
+
+        <root level="info">
+            <appender-ref ref="Console"/>
+            <appender-ref ref="Filelog"/>
+            <appender-ref ref="RollingFileInfo"/>
+            <appender-ref ref="RollingFileWarn"/>
+            <appender-ref ref="RollingFileError"/>
+        </root>
+    </loggers>
+</configuration>

+ 505 - 0
long-article-server/src/main/resources/mapper/CrawlerVideoMapper.xml

@@ -0,0 +1,505 @@
+<?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.tzld.piaoquan.longarticle.dao.mapper.CrawlerVideoMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="content_id" jdbcType="VARCHAR" property="contentId" />
+    <result column="out_video_id" jdbcType="VARCHAR" property="outVideoId" />
+    <result column="platform" jdbcType="VARCHAR" property="platform" />
+    <result column="video_title" jdbcType="VARCHAR" property="videoTitle" />
+    <result column="play_count" jdbcType="INTEGER" property="playCount" />
+    <result column="like_count" jdbcType="INTEGER" property="likeCount" />
+    <result column="share_count" jdbcType="INTEGER" property="shareCount" />
+    <result column="publish_time" jdbcType="TIMESTAMP" property="publishTime" />
+    <result column="crawler_time" jdbcType="TIMESTAMP" property="crawlerTime" />
+    <result column="duration" jdbcType="INTEGER" property="duration" />
+    <result column="download_status" jdbcType="INTEGER" property="downloadStatus" />
+    <result column="video_oss_path" jdbcType="VARCHAR" property="videoOssPath" />
+    <result column="cover_oss_path" jdbcType="VARCHAR" property="coverOssPath" />
+    <result column="user_id" jdbcType="VARCHAR" property="userId" />
+    <result column="trace_id" jdbcType="VARCHAR" property="traceId" />
+    <result column="score" jdbcType="REAL" property="score" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    <result column="video_url" jdbcType="LONGVARCHAR" property="videoUrl" />
+    <result column="cover_url" jdbcType="LONGVARCHAR" property="coverUrl" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, content_id, out_video_id, platform, video_title, play_count, like_count, share_count, 
+    publish_time, crawler_time, duration, download_status, video_oss_path, cover_oss_path, 
+    user_id, trace_id, score
+  </sql>
+  <sql id="Blob_Column_List">
+    video_url, cover_url
+  </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_crawler_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from long_articles_crawler_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_crawler_videos
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from long_articles_crawler_videos
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample">
+    delete from long_articles_crawler_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    insert into long_articles_crawler_videos (id, content_id, out_video_id, 
+      platform, video_title, play_count, 
+      like_count, share_count, publish_time, 
+      crawler_time, duration, download_status, 
+      video_oss_path, cover_oss_path, user_id, 
+      trace_id, score, video_url, 
+      cover_url)
+    values (#{id,jdbcType=INTEGER}, #{contentId,jdbcType=VARCHAR}, #{outVideoId,jdbcType=VARCHAR}, 
+      #{platform,jdbcType=VARCHAR}, #{videoTitle,jdbcType=VARCHAR}, #{playCount,jdbcType=INTEGER}, 
+      #{likeCount,jdbcType=INTEGER}, #{shareCount,jdbcType=INTEGER}, #{publishTime,jdbcType=TIMESTAMP}, 
+      #{crawlerTime,jdbcType=TIMESTAMP}, #{duration,jdbcType=INTEGER}, #{downloadStatus,jdbcType=INTEGER}, 
+      #{videoOssPath,jdbcType=VARCHAR}, #{coverOssPath,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, 
+      #{traceId,jdbcType=VARCHAR}, #{score,jdbcType=REAL}, #{videoUrl,jdbcType=LONGVARCHAR}, 
+      #{coverUrl,jdbcType=LONGVARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    insert into long_articles_crawler_videos
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="contentId != null">
+        content_id,
+      </if>
+      <if test="outVideoId != null">
+        out_video_id,
+      </if>
+      <if test="platform != null">
+        platform,
+      </if>
+      <if test="videoTitle != null">
+        video_title,
+      </if>
+      <if test="playCount != null">
+        play_count,
+      </if>
+      <if test="likeCount != null">
+        like_count,
+      </if>
+      <if test="shareCount != null">
+        share_count,
+      </if>
+      <if test="publishTime != null">
+        publish_time,
+      </if>
+      <if test="crawlerTime != null">
+        crawler_time,
+      </if>
+      <if test="duration != null">
+        duration,
+      </if>
+      <if test="downloadStatus != null">
+        download_status,
+      </if>
+      <if test="videoOssPath != null">
+        video_oss_path,
+      </if>
+      <if test="coverOssPath != null">
+        cover_oss_path,
+      </if>
+      <if test="userId != null">
+        user_id,
+      </if>
+      <if test="traceId != null">
+        trace_id,
+      </if>
+      <if test="score != null">
+        score,
+      </if>
+      <if test="videoUrl != null">
+        video_url,
+      </if>
+      <if test="coverUrl != null">
+        cover_url,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="contentId != null">
+        #{contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="outVideoId != null">
+        #{outVideoId,jdbcType=VARCHAR},
+      </if>
+      <if test="platform != null">
+        #{platform,jdbcType=VARCHAR},
+      </if>
+      <if test="videoTitle != null">
+        #{videoTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="playCount != null">
+        #{playCount,jdbcType=INTEGER},
+      </if>
+      <if test="likeCount != null">
+        #{likeCount,jdbcType=INTEGER},
+      </if>
+      <if test="shareCount != null">
+        #{shareCount,jdbcType=INTEGER},
+      </if>
+      <if test="publishTime != null">
+        #{publishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="crawlerTime != null">
+        #{crawlerTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="duration != null">
+        #{duration,jdbcType=INTEGER},
+      </if>
+      <if test="downloadStatus != null">
+        #{downloadStatus,jdbcType=INTEGER},
+      </if>
+      <if test="videoOssPath != null">
+        #{videoOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="coverOssPath != null">
+        #{coverOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="userId != null">
+        #{userId,jdbcType=VARCHAR},
+      </if>
+      <if test="traceId != null">
+        #{traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="score != null">
+        #{score,jdbcType=REAL},
+      </if>
+      <if test="videoUrl != null">
+        #{videoUrl,jdbcType=LONGVARCHAR},
+      </if>
+      <if test="coverUrl != null">
+        #{coverUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample" resultType="java.lang.Long">
+    select count(*) from long_articles_crawler_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update long_articles_crawler_videos
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.contentId != null">
+        content_id = #{record.contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.outVideoId != null">
+        out_video_id = #{record.outVideoId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.platform != null">
+        platform = #{record.platform,jdbcType=VARCHAR},
+      </if>
+      <if test="record.videoTitle != null">
+        video_title = #{record.videoTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="record.playCount != null">
+        play_count = #{record.playCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.likeCount != null">
+        like_count = #{record.likeCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.shareCount != null">
+        share_count = #{record.shareCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.publishTime != null">
+        publish_time = #{record.publishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.crawlerTime != null">
+        crawler_time = #{record.crawlerTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.duration != null">
+        duration = #{record.duration,jdbcType=INTEGER},
+      </if>
+      <if test="record.downloadStatus != null">
+        download_status = #{record.downloadStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.videoOssPath != null">
+        video_oss_path = #{record.videoOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="record.coverOssPath != null">
+        cover_oss_path = #{record.coverOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="record.userId != null">
+        user_id = #{record.userId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.traceId != null">
+        trace_id = #{record.traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.score != null">
+        score = #{record.score,jdbcType=REAL},
+      </if>
+      <if test="record.videoUrl != null">
+        video_url = #{record.videoUrl,jdbcType=LONGVARCHAR},
+      </if>
+      <if test="record.coverUrl != null">
+        cover_url = #{record.coverUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExampleWithBLOBs" parameterType="map">
+    update long_articles_crawler_videos
+    set id = #{record.id,jdbcType=INTEGER},
+      content_id = #{record.contentId,jdbcType=VARCHAR},
+      out_video_id = #{record.outVideoId,jdbcType=VARCHAR},
+      platform = #{record.platform,jdbcType=VARCHAR},
+      video_title = #{record.videoTitle,jdbcType=VARCHAR},
+      play_count = #{record.playCount,jdbcType=INTEGER},
+      like_count = #{record.likeCount,jdbcType=INTEGER},
+      share_count = #{record.shareCount,jdbcType=INTEGER},
+      publish_time = #{record.publishTime,jdbcType=TIMESTAMP},
+      crawler_time = #{record.crawlerTime,jdbcType=TIMESTAMP},
+      duration = #{record.duration,jdbcType=INTEGER},
+      download_status = #{record.downloadStatus,jdbcType=INTEGER},
+      video_oss_path = #{record.videoOssPath,jdbcType=VARCHAR},
+      cover_oss_path = #{record.coverOssPath,jdbcType=VARCHAR},
+      user_id = #{record.userId,jdbcType=VARCHAR},
+      trace_id = #{record.traceId,jdbcType=VARCHAR},
+      score = #{record.score,jdbcType=REAL},
+      video_url = #{record.videoUrl,jdbcType=LONGVARCHAR},
+      cover_url = #{record.coverUrl,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update long_articles_crawler_videos
+    set id = #{record.id,jdbcType=INTEGER},
+      content_id = #{record.contentId,jdbcType=VARCHAR},
+      out_video_id = #{record.outVideoId,jdbcType=VARCHAR},
+      platform = #{record.platform,jdbcType=VARCHAR},
+      video_title = #{record.videoTitle,jdbcType=VARCHAR},
+      play_count = #{record.playCount,jdbcType=INTEGER},
+      like_count = #{record.likeCount,jdbcType=INTEGER},
+      share_count = #{record.shareCount,jdbcType=INTEGER},
+      publish_time = #{record.publishTime,jdbcType=TIMESTAMP},
+      crawler_time = #{record.crawlerTime,jdbcType=TIMESTAMP},
+      duration = #{record.duration,jdbcType=INTEGER},
+      download_status = #{record.downloadStatus,jdbcType=INTEGER},
+      video_oss_path = #{record.videoOssPath,jdbcType=VARCHAR},
+      cover_oss_path = #{record.coverOssPath,jdbcType=VARCHAR},
+      user_id = #{record.userId,jdbcType=VARCHAR},
+      trace_id = #{record.traceId,jdbcType=VARCHAR},
+      score = #{record.score,jdbcType=REAL}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    update long_articles_crawler_videos
+    <set>
+      <if test="contentId != null">
+        content_id = #{contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="outVideoId != null">
+        out_video_id = #{outVideoId,jdbcType=VARCHAR},
+      </if>
+      <if test="platform != null">
+        platform = #{platform,jdbcType=VARCHAR},
+      </if>
+      <if test="videoTitle != null">
+        video_title = #{videoTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="playCount != null">
+        play_count = #{playCount,jdbcType=INTEGER},
+      </if>
+      <if test="likeCount != null">
+        like_count = #{likeCount,jdbcType=INTEGER},
+      </if>
+      <if test="shareCount != null">
+        share_count = #{shareCount,jdbcType=INTEGER},
+      </if>
+      <if test="publishTime != null">
+        publish_time = #{publishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="crawlerTime != null">
+        crawler_time = #{crawlerTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="duration != null">
+        duration = #{duration,jdbcType=INTEGER},
+      </if>
+      <if test="downloadStatus != null">
+        download_status = #{downloadStatus,jdbcType=INTEGER},
+      </if>
+      <if test="videoOssPath != null">
+        video_oss_path = #{videoOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="coverOssPath != null">
+        cover_oss_path = #{coverOssPath,jdbcType=VARCHAR},
+      </if>
+      <if test="userId != null">
+        user_id = #{userId,jdbcType=VARCHAR},
+      </if>
+      <if test="traceId != null">
+        trace_id = #{traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="score != null">
+        score = #{score,jdbcType=REAL},
+      </if>
+      <if test="videoUrl != null">
+        video_url = #{videoUrl,jdbcType=LONGVARCHAR},
+      </if>
+      <if test="coverUrl != null">
+        cover_url = #{coverUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    update long_articles_crawler_videos
+    set content_id = #{contentId,jdbcType=VARCHAR},
+      out_video_id = #{outVideoId,jdbcType=VARCHAR},
+      platform = #{platform,jdbcType=VARCHAR},
+      video_title = #{videoTitle,jdbcType=VARCHAR},
+      play_count = #{playCount,jdbcType=INTEGER},
+      like_count = #{likeCount,jdbcType=INTEGER},
+      share_count = #{shareCount,jdbcType=INTEGER},
+      publish_time = #{publishTime,jdbcType=TIMESTAMP},
+      crawler_time = #{crawlerTime,jdbcType=TIMESTAMP},
+      duration = #{duration,jdbcType=INTEGER},
+      download_status = #{downloadStatus,jdbcType=INTEGER},
+      video_oss_path = #{videoOssPath,jdbcType=VARCHAR},
+      cover_oss_path = #{coverOssPath,jdbcType=VARCHAR},
+      user_id = #{userId,jdbcType=VARCHAR},
+      trace_id = #{traceId,jdbcType=VARCHAR},
+      score = #{score,jdbcType=REAL},
+      video_url = #{videoUrl,jdbcType=LONGVARCHAR},
+      cover_url = #{coverUrl,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.CrawlerVideo">
+    update long_articles_crawler_videos
+    set content_id = #{contentId,jdbcType=VARCHAR},
+      out_video_id = #{outVideoId,jdbcType=VARCHAR},
+      platform = #{platform,jdbcType=VARCHAR},
+      video_title = #{videoTitle,jdbcType=VARCHAR},
+      play_count = #{playCount,jdbcType=INTEGER},
+      like_count = #{likeCount,jdbcType=INTEGER},
+      share_count = #{shareCount,jdbcType=INTEGER},
+      publish_time = #{publishTime,jdbcType=TIMESTAMP},
+      crawler_time = #{crawlerTime,jdbcType=TIMESTAMP},
+      duration = #{duration,jdbcType=INTEGER},
+      download_status = #{downloadStatus,jdbcType=INTEGER},
+      video_oss_path = #{videoOssPath,jdbcType=VARCHAR},
+      cover_oss_path = #{coverOssPath,jdbcType=VARCHAR},
+      user_id = #{userId,jdbcType=VARCHAR},
+      trace_id = #{traceId,jdbcType=VARCHAR},
+      score = #{score,jdbcType=REAL}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 293 - 0
long-article-server/src/main/resources/mapper/LongArticlesTextMapper.xml

@@ -0,0 +1,293 @@
+<?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.tzld.piaoquan.longarticle.dao.mapper.LongArticlesTextMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    <id column="content_id" jdbcType="VARCHAR" property="contentId" />
+    <result column="article_title" jdbcType="VARCHAR" property="articleTitle" />
+    <result column="kimi_title" jdbcType="VARCHAR" property="kimiTitle" />
+    <result column="kimi_summary" jdbcType="VARCHAR" property="kimiSummary" />
+    <result column="kimi_keys" jdbcType="VARCHAR" property="kimiKeys" />
+    <result column="kimi_status" jdbcType="INTEGER" property="kimiStatus" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    <result column="article_text" jdbcType="LONGVARCHAR" property="articleText" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    content_id, article_title, kimi_title, kimi_summary, kimi_keys, kimi_status
+  </sql>
+  <sql id="Blob_Column_List">
+    article_text
+  </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_text
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from long_articles_text
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="ResultMapWithBLOBs">
+    select
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_text
+    where content_id = #{contentId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from long_articles_text
+    where content_id = #{contentId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample">
+    delete from long_articles_text
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    insert into long_articles_text (content_id, article_title, kimi_title,
+                                    kimi_summary, kimi_keys, kimi_status,
+                                    article_text)
+    values (#{contentId,jdbcType=VARCHAR}, #{articleTitle,jdbcType=VARCHAR}, #{kimiTitle,jdbcType=VARCHAR},
+            #{kimiSummary,jdbcType=VARCHAR}, #{kimiKeys,jdbcType=VARCHAR}, #{kimiStatus,jdbcType=INTEGER},
+            #{articleText,jdbcType=LONGVARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    insert into long_articles_text
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="contentId != null">
+        content_id,
+      </if>
+      <if test="articleTitle != null">
+        article_title,
+      </if>
+      <if test="kimiTitle != null">
+        kimi_title,
+      </if>
+      <if test="kimiSummary != null">
+        kimi_summary,
+      </if>
+      <if test="kimiKeys != null">
+        kimi_keys,
+      </if>
+      <if test="kimiStatus != null">
+        kimi_status,
+      </if>
+      <if test="articleText != null">
+        article_text,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="contentId != null">
+        #{contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="articleTitle != null">
+        #{articleTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiTitle != null">
+        #{kimiTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiSummary != null">
+        #{kimiSummary,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiKeys != null">
+        #{kimiKeys,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiStatus != null">
+        #{kimiStatus,jdbcType=INTEGER},
+      </if>
+      <if test="articleText != null">
+        #{articleText,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesTextExample" resultType="java.lang.Long">
+    select count(*) from long_articles_text
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update long_articles_text
+    <set>
+      <if test="record.contentId != null">
+        content_id = #{record.contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.articleTitle != null">
+        article_title = #{record.articleTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="record.kimiTitle != null">
+        kimi_title = #{record.kimiTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="record.kimiSummary != null">
+        kimi_summary = #{record.kimiSummary,jdbcType=VARCHAR},
+      </if>
+      <if test="record.kimiKeys != null">
+        kimi_keys = #{record.kimiKeys,jdbcType=VARCHAR},
+      </if>
+      <if test="record.kimiStatus != null">
+        kimi_status = #{record.kimiStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.articleText != null">
+        article_text = #{record.articleText,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExampleWithBLOBs" parameterType="map">
+    update long_articles_text
+    set content_id = #{record.contentId,jdbcType=VARCHAR},
+    article_title = #{record.articleTitle,jdbcType=VARCHAR},
+    kimi_title = #{record.kimiTitle,jdbcType=VARCHAR},
+    kimi_summary = #{record.kimiSummary,jdbcType=VARCHAR},
+    kimi_keys = #{record.kimiKeys,jdbcType=VARCHAR},
+    kimi_status = #{record.kimiStatus,jdbcType=INTEGER},
+    article_text = #{record.articleText,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update long_articles_text
+    set content_id = #{record.contentId,jdbcType=VARCHAR},
+    article_title = #{record.articleTitle,jdbcType=VARCHAR},
+    kimi_title = #{record.kimiTitle,jdbcType=VARCHAR},
+    kimi_summary = #{record.kimiSummary,jdbcType=VARCHAR},
+    kimi_keys = #{record.kimiKeys,jdbcType=VARCHAR},
+    kimi_status = #{record.kimiStatus,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    update long_articles_text
+    <set>
+      <if test="articleTitle != null">
+        article_title = #{articleTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiTitle != null">
+        kimi_title = #{kimiTitle,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiSummary != null">
+        kimi_summary = #{kimiSummary,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiKeys != null">
+        kimi_keys = #{kimiKeys,jdbcType=VARCHAR},
+      </if>
+      <if test="kimiStatus != null">
+        kimi_status = #{kimiStatus,jdbcType=INTEGER},
+      </if>
+      <if test="articleText != null">
+        article_text = #{articleText,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where content_id = #{contentId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    update long_articles_text
+    set article_title = #{articleTitle,jdbcType=VARCHAR},
+        kimi_title = #{kimiTitle,jdbcType=VARCHAR},
+        kimi_summary = #{kimiSummary,jdbcType=VARCHAR},
+        kimi_keys = #{kimiKeys,jdbcType=VARCHAR},
+        kimi_status = #{kimiStatus,jdbcType=INTEGER},
+        article_text = #{articleText,jdbcType=LONGVARCHAR}
+    where content_id = #{contentId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.LongArticlesText">
+    update long_articles_text
+    set article_title = #{articleTitle,jdbcType=VARCHAR},
+        kimi_title = #{kimiTitle,jdbcType=VARCHAR},
+        kimi_summary = #{kimiSummary,jdbcType=VARCHAR},
+        kimi_keys = #{kimiKeys,jdbcType=VARCHAR},
+        kimi_status = #{kimiStatus,jdbcType=INTEGER}
+    where content_id = #{contentId,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 419 - 0
long-article-server/src/main/resources/mapper/MatchVideoMapper.xml

@@ -0,0 +1,419 @@
+<?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.tzld.piaoquan.longarticle.dao.mapper.MatchVideoMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="trace_id" jdbcType="VARCHAR" property="traceId" />
+    <result column="content_id" jdbcType="VARCHAR" property="contentId" />
+    <result column="flow_pool_level" jdbcType="VARCHAR" property="flowPoolLevel" />
+    <result column="gh_id" jdbcType="VARCHAR" property="ghId" />
+    <result column="account_name" jdbcType="VARCHAR" property="accountName" />
+    <result column="content_status" jdbcType="INTEGER" property="contentStatus" />
+    <result column="content_status_update_time" jdbcType="INTEGER" property="contentStatusUpdateTime" />
+    <result column="success_status" jdbcType="INTEGER" property="successStatus" />
+    <result column="request_timestamp" jdbcType="INTEGER" property="requestTimestamp" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="process_times" jdbcType="INTEGER" property="processTimes" />
+    <result column="publish_flag" jdbcType="INTEGER" property="publishFlag" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    <result column="response" jdbcType="LONGVARCHAR" property="response" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, trace_id, content_id, flow_pool_level, gh_id, account_name, content_status, content_status_update_time, 
+    success_status, request_timestamp, update_time, process_times, publish_flag
+  </sql>
+  <sql id="Blob_Column_List">
+    response
+  </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideoExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_match_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideoExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from long_articles_match_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from long_articles_match_videos
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from long_articles_match_videos
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideoExample">
+    delete from long_articles_match_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    insert into long_articles_match_videos (id, trace_id, content_id, 
+      flow_pool_level, gh_id, account_name, 
+      content_status, content_status_update_time, 
+      success_status, request_timestamp, update_time, 
+      process_times, publish_flag, response
+      )
+    values (#{id,jdbcType=INTEGER}, #{traceId,jdbcType=VARCHAR}, #{contentId,jdbcType=VARCHAR}, 
+      #{flowPoolLevel,jdbcType=VARCHAR}, #{ghId,jdbcType=VARCHAR}, #{accountName,jdbcType=VARCHAR}, 
+      #{contentStatus,jdbcType=INTEGER}, #{contentStatusUpdateTime,jdbcType=INTEGER}, 
+      #{successStatus,jdbcType=INTEGER}, #{requestTimestamp,jdbcType=INTEGER}, #{updateTime,jdbcType=TIMESTAMP}, 
+      #{processTimes,jdbcType=INTEGER}, #{publishFlag,jdbcType=INTEGER}, #{response,jdbcType=LONGVARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    insert into long_articles_match_videos
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="traceId != null">
+        trace_id,
+      </if>
+      <if test="contentId != null">
+        content_id,
+      </if>
+      <if test="flowPoolLevel != null">
+        flow_pool_level,
+      </if>
+      <if test="ghId != null">
+        gh_id,
+      </if>
+      <if test="accountName != null">
+        account_name,
+      </if>
+      <if test="contentStatus != null">
+        content_status,
+      </if>
+      <if test="contentStatusUpdateTime != null">
+        content_status_update_time,
+      </if>
+      <if test="successStatus != null">
+        success_status,
+      </if>
+      <if test="requestTimestamp != null">
+        request_timestamp,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="processTimes != null">
+        process_times,
+      </if>
+      <if test="publishFlag != null">
+        publish_flag,
+      </if>
+      <if test="response != null">
+        response,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="traceId != null">
+        #{traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="contentId != null">
+        #{contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="flowPoolLevel != null">
+        #{flowPoolLevel,jdbcType=VARCHAR},
+      </if>
+      <if test="ghId != null">
+        #{ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="accountName != null">
+        #{accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="contentStatus != null">
+        #{contentStatus,jdbcType=INTEGER},
+      </if>
+      <if test="contentStatusUpdateTime != null">
+        #{contentStatusUpdateTime,jdbcType=INTEGER},
+      </if>
+      <if test="successStatus != null">
+        #{successStatus,jdbcType=INTEGER},
+      </if>
+      <if test="requestTimestamp != null">
+        #{requestTimestamp,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="processTimes != null">
+        #{processTimes,jdbcType=INTEGER},
+      </if>
+      <if test="publishFlag != null">
+        #{publishFlag,jdbcType=INTEGER},
+      </if>
+      <if test="response != null">
+        #{response,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideoExample" resultType="java.lang.Long">
+    select count(*) from long_articles_match_videos
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update long_articles_match_videos
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.traceId != null">
+        trace_id = #{record.traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.contentId != null">
+        content_id = #{record.contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.flowPoolLevel != null">
+        flow_pool_level = #{record.flowPoolLevel,jdbcType=VARCHAR},
+      </if>
+      <if test="record.ghId != null">
+        gh_id = #{record.ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.accountName != null">
+        account_name = #{record.accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.contentStatus != null">
+        content_status = #{record.contentStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.contentStatusUpdateTime != null">
+        content_status_update_time = #{record.contentStatusUpdateTime,jdbcType=INTEGER},
+      </if>
+      <if test="record.successStatus != null">
+        success_status = #{record.successStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.requestTimestamp != null">
+        request_timestamp = #{record.requestTimestamp,jdbcType=INTEGER},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.processTimes != null">
+        process_times = #{record.processTimes,jdbcType=INTEGER},
+      </if>
+      <if test="record.publishFlag != null">
+        publish_flag = #{record.publishFlag,jdbcType=INTEGER},
+      </if>
+      <if test="record.response != null">
+        response = #{record.response,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExampleWithBLOBs" parameterType="map">
+    update long_articles_match_videos
+    set id = #{record.id,jdbcType=INTEGER},
+      trace_id = #{record.traceId,jdbcType=VARCHAR},
+      content_id = #{record.contentId,jdbcType=VARCHAR},
+      flow_pool_level = #{record.flowPoolLevel,jdbcType=VARCHAR},
+      gh_id = #{record.ghId,jdbcType=VARCHAR},
+      account_name = #{record.accountName,jdbcType=VARCHAR},
+      content_status = #{record.contentStatus,jdbcType=INTEGER},
+      content_status_update_time = #{record.contentStatusUpdateTime,jdbcType=INTEGER},
+      success_status = #{record.successStatus,jdbcType=INTEGER},
+      request_timestamp = #{record.requestTimestamp,jdbcType=INTEGER},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      process_times = #{record.processTimes,jdbcType=INTEGER},
+      publish_flag = #{record.publishFlag,jdbcType=INTEGER},
+      response = #{record.response,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update long_articles_match_videos
+    set id = #{record.id,jdbcType=INTEGER},
+      trace_id = #{record.traceId,jdbcType=VARCHAR},
+      content_id = #{record.contentId,jdbcType=VARCHAR},
+      flow_pool_level = #{record.flowPoolLevel,jdbcType=VARCHAR},
+      gh_id = #{record.ghId,jdbcType=VARCHAR},
+      account_name = #{record.accountName,jdbcType=VARCHAR},
+      content_status = #{record.contentStatus,jdbcType=INTEGER},
+      content_status_update_time = #{record.contentStatusUpdateTime,jdbcType=INTEGER},
+      success_status = #{record.successStatus,jdbcType=INTEGER},
+      request_timestamp = #{record.requestTimestamp,jdbcType=INTEGER},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      process_times = #{record.processTimes,jdbcType=INTEGER},
+      publish_flag = #{record.publishFlag,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    update long_articles_match_videos
+    <set>
+      <if test="traceId != null">
+        trace_id = #{traceId,jdbcType=VARCHAR},
+      </if>
+      <if test="contentId != null">
+        content_id = #{contentId,jdbcType=VARCHAR},
+      </if>
+      <if test="flowPoolLevel != null">
+        flow_pool_level = #{flowPoolLevel,jdbcType=VARCHAR},
+      </if>
+      <if test="ghId != null">
+        gh_id = #{ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="accountName != null">
+        account_name = #{accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="contentStatus != null">
+        content_status = #{contentStatus,jdbcType=INTEGER},
+      </if>
+      <if test="contentStatusUpdateTime != null">
+        content_status_update_time = #{contentStatusUpdateTime,jdbcType=INTEGER},
+      </if>
+      <if test="successStatus != null">
+        success_status = #{successStatus,jdbcType=INTEGER},
+      </if>
+      <if test="requestTimestamp != null">
+        request_timestamp = #{requestTimestamp,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="processTimes != null">
+        process_times = #{processTimes,jdbcType=INTEGER},
+      </if>
+      <if test="publishFlag != null">
+        publish_flag = #{publishFlag,jdbcType=INTEGER},
+      </if>
+      <if test="response != null">
+        response = #{response,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    update long_articles_match_videos
+    set trace_id = #{traceId,jdbcType=VARCHAR},
+      content_id = #{contentId,jdbcType=VARCHAR},
+      flow_pool_level = #{flowPoolLevel,jdbcType=VARCHAR},
+      gh_id = #{ghId,jdbcType=VARCHAR},
+      account_name = #{accountName,jdbcType=VARCHAR},
+      content_status = #{contentStatus,jdbcType=INTEGER},
+      content_status_update_time = #{contentStatusUpdateTime,jdbcType=INTEGER},
+      success_status = #{successStatus,jdbcType=INTEGER},
+      request_timestamp = #{requestTimestamp,jdbcType=INTEGER},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      process_times = #{processTimes,jdbcType=INTEGER},
+      publish_flag = #{publishFlag,jdbcType=INTEGER},
+      response = #{response,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.MatchVideo">
+    update long_articles_match_videos
+    set trace_id = #{traceId,jdbcType=VARCHAR},
+      content_id = #{contentId,jdbcType=VARCHAR},
+      flow_pool_level = #{flowPoolLevel,jdbcType=VARCHAR},
+      gh_id = #{ghId,jdbcType=VARCHAR},
+      account_name = #{accountName,jdbcType=VARCHAR},
+      content_status = #{contentStatus,jdbcType=INTEGER},
+      content_status_update_time = #{contentStatusUpdateTime,jdbcType=INTEGER},
+      success_status = #{successStatus,jdbcType=INTEGER},
+      request_timestamp = #{requestTimestamp,jdbcType=INTEGER},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      process_times = #{processTimes,jdbcType=INTEGER},
+      publish_flag = #{publishFlag,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.