Ver Fonte

自定义标题封面上报 更换字段

wangyunpeng há 1 semana atrás
pai
commit
44524c1aca
14 ficheiros alterados com 1913 adições e 83 exclusões
  1. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/growth/VideoGrowthMultiCoverMapper.java
  2. 30 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/growth/VideoGrowthMultiTitleMapper.java
  3. 13 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/growth/ext/VideoMultiMapperExt.java
  4. 11 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/dto/PageUrlExtData.java
  5. 68 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiCover.java
  6. 531 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiCoverExample.java
  7. 68 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiTitle.java
  8. 531 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiTitleExample.java
  9. 12 78
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/VideoMultiService.java
  10. 169 0
      long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/VideoMultiServiceImpl.java
  11. 7 5
      long-article-server/src/main/resources/growth-mybatis-generator-config.xml
  12. 214 0
      long-article-server/src/main/resources/mapper/growth/VideoGrowthMultiCoverMapper.xml
  13. 214 0
      long-article-server/src/main/resources/mapper/growth/VideoGrowthMultiTitleMapper.xml
  14. 15 0
      long-article-server/src/main/resources/mapper/growth/ext/VideoMultiMapperExt.xml

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

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

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

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

+ 13 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/growth/ext/VideoMultiMapperExt.java

@@ -0,0 +1,13 @@
+package com.tzld.piaoquan.longarticle.dao.mapper.growth.ext;
+
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle;
+import org.apache.ibatis.annotations.Param;
+
+public interface VideoMultiMapperExt {
+
+    void insertVideoMultiTitleReturnId(@Param("record") VideoGrowthMultiTitle multiTitle);
+
+    void insertVideoMultiCoverReturnId(@Param("record") VideoGrowthMultiCover multiCover);
+
+}

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

@@ -0,0 +1,11 @@
+package com.tzld.piaoquan.longarticle.model.dto;
+
+import lombok.Data;
+
+@Data
+public class PageUrlExtData {
+    private Long growthTitleId;
+    private String growthTitleSource;
+    private Long growthCoverId;
+    private String growthCoverSource;
+}

+ 68 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiCover.java

@@ -0,0 +1,68 @@
+package com.tzld.piaoquan.longarticle.model.po.growth;
+
+public class VideoGrowthMultiCover {
+    private Long id;
+
+    private Long videoId;
+
+    private String source;
+
+    private String cover;
+
+    private Long createTimestamp;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    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 getCover() {
+        return cover;
+    }
+
+    public void setCover(String cover) {
+        this.cover = cover;
+    }
+
+    public Long getCreateTimestamp() {
+        return createTimestamp;
+    }
+
+    public void setCreateTimestamp(Long createTimestamp) {
+        this.createTimestamp = createTimestamp;
+    }
+
+    @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(", videoId=").append(videoId);
+        sb.append(", source=").append(source);
+        sb.append(", cover=").append(cover);
+        sb.append(", createTimestamp=").append(createTimestamp);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 531 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiCoverExample.java

@@ -0,0 +1,531 @@
+package com.tzld.piaoquan.longarticle.model.po.growth;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class VideoGrowthMultiCoverExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public VideoGrowthMultiCoverExample() {
+        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 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 andCoverIsNull() {
+            addCriterion("cover is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverIsNotNull() {
+            addCriterion("cover is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverEqualTo(String value) {
+            addCriterion("cover =", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverNotEqualTo(String value) {
+            addCriterion("cover <>", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverGreaterThan(String value) {
+            addCriterion("cover >", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverGreaterThanOrEqualTo(String value) {
+            addCriterion("cover >=", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverLessThan(String value) {
+            addCriterion("cover <", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverLessThanOrEqualTo(String value) {
+            addCriterion("cover <=", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverLike(String value) {
+            addCriterion("cover like", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverNotLike(String value) {
+            addCriterion("cover not like", value, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverIn(List<String> values) {
+            addCriterion("cover in", values, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverNotIn(List<String> values) {
+            addCriterion("cover not in", values, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverBetween(String value1, String value2) {
+            addCriterion("cover between", value1, value2, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCoverNotBetween(String value1, String value2) {
+            addCriterion("cover not between", value1, value2, "cover");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNull() {
+            addCriterion("create_timestamp is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNotNull() {
+            addCriterion("create_timestamp is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampEqualTo(Long value) {
+            addCriterion("create_timestamp =", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotEqualTo(Long value) {
+            addCriterion("create_timestamp <>", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThan(Long value) {
+            addCriterion("create_timestamp >", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp >=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThan(Long value) {
+            addCriterion("create_timestamp <", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp <=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIn(List<Long> values) {
+            addCriterion("create_timestamp in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotIn(List<Long> values) {
+            addCriterion("create_timestamp not in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp not between", value1, value2, "createTimestamp");
+            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);
+        }
+    }
+}

+ 68 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiTitle.java

@@ -0,0 +1,68 @@
+package com.tzld.piaoquan.longarticle.model.po.growth;
+
+public class VideoGrowthMultiTitle {
+    private Long id;
+
+    private Long videoId;
+
+    private String source;
+
+    private String title;
+
+    private Long createTimestamp;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    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 getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public Long getCreateTimestamp() {
+        return createTimestamp;
+    }
+
+    public void setCreateTimestamp(Long createTimestamp) {
+        this.createTimestamp = createTimestamp;
+    }
+
+    @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(", videoId=").append(videoId);
+        sb.append(", source=").append(source);
+        sb.append(", title=").append(title);
+        sb.append(", createTimestamp=").append(createTimestamp);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 531 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/growth/VideoGrowthMultiTitleExample.java

@@ -0,0 +1,531 @@
+package com.tzld.piaoquan.longarticle.model.po.growth;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class VideoGrowthMultiTitleExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public VideoGrowthMultiTitleExample() {
+        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 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 andTitleIsNull() {
+            addCriterion("title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIsNotNull() {
+            addCriterion("title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleEqualTo(String value) {
+            addCriterion("title =", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotEqualTo(String value) {
+            addCriterion("title <>", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThan(String value) {
+            addCriterion("title >", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("title >=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThan(String value) {
+            addCriterion("title <", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThanOrEqualTo(String value) {
+            addCriterion("title <=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLike(String value) {
+            addCriterion("title like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotLike(String value) {
+            addCriterion("title not like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIn(List<String> values) {
+            addCriterion("title in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotIn(List<String> values) {
+            addCriterion("title not in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleBetween(String value1, String value2) {
+            addCriterion("title between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotBetween(String value1, String value2) {
+            addCriterion("title not between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNull() {
+            addCriterion("create_timestamp is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNotNull() {
+            addCriterion("create_timestamp is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampEqualTo(Long value) {
+            addCriterion("create_timestamp =", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotEqualTo(Long value) {
+            addCriterion("create_timestamp <>", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThan(Long value) {
+            addCriterion("create_timestamp >", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp >=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThan(Long value) {
+            addCriterion("create_timestamp <", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp <=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIn(List<Long> values) {
+            addCriterion("create_timestamp in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotIn(List<Long> values) {
+            addCriterion("create_timestamp not in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp not between", value1, value2, "createTimestamp");
+            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);
+        }
+    }
+}

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

@@ -1,85 +1,19 @@
 package com.tzld.piaoquan.longarticle.service.local;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.tzld.piaoquan.longarticle.service.remote.ManagerApiService;
-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 com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle;
 
-import java.net.URLEncoder;
-import java.util.Objects;
+import java.util.List;
 
-@Slf4j
-@Service
-public class VideoMultiService {
+public interface VideoMultiService {
 
-    @Autowired
-    private ManagerApiService managerApiService;
+    String setVideoMultiTitleCoverPagePath(Long videoId, String pageUrl, String title, String coverUrl);
 
-    public String setVideoMultiTitleCoverPagePath(Long videoId, String pageUrl, String title, String coverUrl) {
-        JSONArray multiTitleList = managerApiService.videoMultiTitleListV2(videoId);
-        JSONArray multiCoverList = managerApiService.videoMultiCoverListV2(videoId);
-        if (!CollectionUtils.isEmpty(multiTitleList)) {
-            Integer titleId = null;
-            for (int i = 0; i < multiTitleList.size(); i++) {
-                JSONObject item = multiTitleList.getJSONObject(i);
-                if (item.getInteger("source") == 0) {
-                    titleId = item.getInteger("id");
-                    break;
-                }
-            }
-            if (Objects.isNull(titleId)) {
-                for (int i = 0; i < multiTitleList.size(); i++) {
-                    JSONObject item = multiTitleList.getJSONObject(i);
-                    if (title.equals(item.getString("title"))) {
-                        titleId = item.getInteger("id");
-                        break;
-                    }
-                }
-            }
-            try {
-                //if (Objects.nonNull(title) && !pageUrl.contains("shareTitle")) {
-                //    pageUrl += URLEncoder.encode("&shareTitle=" + title, "UTF-8");
-                //}
-                if (Objects.nonNull(titleId) && !pageUrl.contains("shareTitleId")) {
-                    pageUrl += URLEncoder.encode("&shareTitleId=" + titleId, "UTF-8");
-                }
-            } catch (Exception e) {
-                log.error("ThirdPartyPushMessageStrategyV1 insertSmallData setCustomerCoverTitleId Error,data:", e);
-            }
-        }
-        if (!CollectionUtils.isEmpty(multiCoverList)) {
-            Integer coverId = null;
-            for (int i = 0; i < multiCoverList.size(); i++) {
-                JSONObject item = multiCoverList.getJSONObject(i);
-                if (item.getInteger("source") == 0) {
-                    coverId = item.getInteger("id");
-                    break;
-                }
-            }
-            if (Objects.isNull(coverId)) {
-                for (int i = 0; i < multiCoverList.size(); i++) {
-                    JSONObject item = multiCoverList.getJSONObject(i);
-                    if (coverUrl.equals(item.getString("coverUrl"))) {
-                        coverId = item.getInteger("id");
-                        break;
-                    }
-                }
-            }
-            try {
-                if (Objects.nonNull(coverId) && !pageUrl.contains("shareImageId")) {
-                    pageUrl += URLEncoder.encode("&shareImageId=" + coverId, "UTF-8");
-                }
-                //if (StringUtils.isNotEmpty(coverUrl) && !pageUrl.contains("shareImageUrl")) {
-                //    pageUrl += URLEncoder.encode("&shareImageUrl=" + URLEncoder.encode(coverUrl, "UTF-8"), "UTF-8");
-                //}
-            } catch (Exception e) {
-                log.error("ThirdPartyPushMessageStrategyV1 insertSmallData setCustomerCoverTitleId Error,data:", e);
-            }
-        }
-        return pageUrl;
-    }
+    Long saveMultiTitle(Long videoId, String source, String title);
+
+    List<VideoGrowthMultiTitle> getMultiTitleByVideoId(Long videoId);
+
+    Long saveMultiCover(Long videoId, String source, String cover);
+
+    List<VideoGrowthMultiCover> getMultiCoverByVideoId(Long videoId);
 }

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

@@ -0,0 +1,169 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.tzld.piaoquan.longarticle.dao.mapper.growth.VideoGrowthMultiCoverMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.growth.VideoGrowthMultiTitleMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.growth.ext.VideoMultiMapperExt;
+import com.tzld.piaoquan.longarticle.model.dto.PageUrlExtData;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCoverExample;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle;
+import com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitleExample;
+import com.tzld.piaoquan.longarticle.service.local.VideoMultiService;
+import com.tzld.piaoquan.longarticle.service.remote.ManagerApiService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Objects;
+
+@Slf4j
+@Service
+public class VideoMultiServiceImpl implements VideoMultiService {
+
+    @Autowired
+    private ManagerApiService managerApiService;
+    @Autowired
+    private VideoMultiMapperExt videoMultiMapperExt;
+    @Autowired
+    private VideoGrowthMultiTitleMapper titleMapper;
+    @Autowired
+    private VideoGrowthMultiCoverMapper coverMapper;
+
+    @Override
+    public String setVideoMultiTitleCoverPagePath(Long videoId, String pageUrl, String title, String coverUrl) {
+        if (pageUrl.contains("extData")) {
+            return pageUrl;
+        }
+        List<VideoGrowthMultiTitle> multiTitleList = getMultiTitleByVideoId(videoId);
+        List<VideoGrowthMultiCover> multiCoverList = getMultiCoverByVideoId(videoId);
+        PageUrlExtData extData = new PageUrlExtData();
+        if (!CollectionUtils.isEmpty(multiTitleList)) {
+            Long titleId = null;
+            String titleSource = "";
+            for (int i = 0; i < multiTitleList.size(); i++) {
+                VideoGrowthMultiTitle item = multiTitleList.get(i);
+                if (title.equals(item.getTitle())) {
+                    titleId = item.getId();
+                    titleSource = item.getSource();
+                    break;
+                }
+            }
+            try {
+                if (Objects.nonNull(titleId)) {
+                    extData.setGrowthTitleId(titleId);
+                    extData.setGrowthTitleSource(titleSource);
+                }
+            } catch (Exception e) {
+                log.error("VideoMultiService VideoMultiService Error,data:", e);
+            }
+        }
+        if (Objects.isNull(extData.getGrowthTitleId())) {
+            JSONArray managerMultiTitleList = managerApiService.videoMultiTitleListV2(videoId);
+            String source = "自定义";
+            if (!CollectionUtils.isEmpty(managerMultiTitleList)) {
+                for (int i = 0; i < managerMultiTitleList.size(); i++) {
+                    JSONObject item = managerMultiTitleList.getJSONObject(i);
+                    if (item.getString("title").equals(title)) {
+                        if (item.getInteger("source") == 0) {
+                            source = "原始";
+                            break;
+                        }
+                    }
+                }
+            }
+            Long titleId = saveMultiTitle(videoId, source, title);
+            extData.setGrowthTitleId(titleId);
+            extData.setGrowthTitleSource(source);
+        }
+        if (!CollectionUtils.isEmpty(multiCoverList)) {
+            Long coverId = null;
+            String coverSource = "";
+            String videoCover = coverUrl.split("\\?")[0];
+            for (int i = 0; i < multiCoverList.size(); i++) {
+                VideoGrowthMultiCover item = multiCoverList.get(i);
+                String itemCover = item.getCover().split("\\?")[0];
+                if (videoCover.equals(itemCover)) {
+                    coverId = item.getId();
+                    coverSource = item.getSource();
+                    break;
+                }
+            }
+            try {
+                if (Objects.nonNull(coverId)) {
+                    extData.setGrowthCoverId(coverId);
+                    extData.setGrowthCoverSource(coverSource);
+                }
+            } catch (Exception e) {
+                log.error("VideoMultiService VideoMultiService Error,data:", e);
+            }
+        }
+        if (Objects.isNull(extData.getGrowthCoverId())) {
+            JSONArray managerMultiCoverList = managerApiService.videoMultiCoverListV2(videoId);
+            String source = "自定义";
+            if (!CollectionUtils.isEmpty(managerMultiCoverList)) {
+                for (int i = 0; i < managerMultiCoverList.size(); i++) {
+                    JSONObject item = managerMultiCoverList.getJSONObject(i);
+                    if (item.getInteger("source") == 0) {
+                        if (item.getString("coverUrl").equals(coverUrl)
+                                || (coverUrl.contains("longvideo") && !coverUrl.contains("/longvideo/pic"))) {
+                            source = "原始";
+                            break;
+                        }
+                    }
+                }
+            }
+            Long coverId = saveMultiCover(videoId, source, coverUrl);
+            extData.setGrowthCoverId(coverId);
+            extData.setGrowthCoverSource(source);
+        }
+        if (Objects.nonNull(extData.getGrowthTitleId()) || Objects.nonNull(extData.getGrowthCoverId())) {
+            try {
+                pageUrl += URLEncoder.encode("&growthExtData=" + JSONObject.toJSONString(extData), "UTF-8");
+            } catch (Exception e) {
+                log.error("VideoMultiService VideoMultiService Error,data:", e);
+            }
+        }
+        return pageUrl;
+    }
+
+    @Override
+    public Long saveMultiTitle(Long videoId, String source, String title) {
+        VideoGrowthMultiTitle multiTitle = new VideoGrowthMultiTitle();
+        multiTitle.setVideoId(videoId);
+        multiTitle.setSource(source);
+        multiTitle.setTitle(title);
+        multiTitle.setCreateTimestamp(System.currentTimeMillis());
+        videoMultiMapperExt.insertVideoMultiTitleReturnId(multiTitle);
+        return multiTitle.getId();
+    }
+
+    @Override
+    public List<VideoGrowthMultiTitle> getMultiTitleByVideoId(Long videoId) {
+        VideoGrowthMultiTitleExample example = new VideoGrowthMultiTitleExample();
+        example.createCriteria().andVideoIdEqualTo(videoId);
+        return titleMapper.selectByExample(example);
+    }
+
+    @Override
+    public Long saveMultiCover(Long videoId, String source, String cover) {
+        VideoGrowthMultiCover multiCover = new VideoGrowthMultiCover();
+        multiCover.setVideoId(videoId);
+        multiCover.setSource(source);
+        multiCover.setCover(cover);
+        multiCover.setCreateTimestamp(System.currentTimeMillis());
+        videoMultiMapperExt.insertVideoMultiCoverReturnId(multiCover);
+        return multiCover.getId();
+    }
+
+    @Override
+    public List<VideoGrowthMultiCover> getMultiCoverByVideoId(Long videoId) {
+        VideoGrowthMultiCoverExample example = new VideoGrowthMultiCoverExample();
+        example.createCriteria().andVideoIdEqualTo(videoId);
+        return coverMapper.selectByExample(example);
+    }
+}

+ 7 - 5
long-article-server/src/main/resources/growth-mybatis-generator-config.xml

@@ -27,7 +27,7 @@
         </commentGenerator>
 
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
-                        connectionURL="jdbc:mysql://rm-bp17q95335a99272b.mysql.rds.aliyuncs.com:3306/growth?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false"
+                        connectionURL="jdbc:mysql://rm-bp17q95335a99272b.mysql.rds.aliyuncs.com:3306/growth-test?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false"
                         userId="crawler" password="crawler123456@">
         </jdbcConnection>
 
@@ -36,23 +36,25 @@
         </javaTypeResolver>
 
         <javaModelGenerator targetPackage="com.tzld.piaoquan.longarticle.model.po.growth"
-                            targetProject="/Users/shimeng/Desktop/project/long-article-manage/long-article-server/src/main/java">
+                            targetProject="long-article-server/src/main/java">
             <property name="constructorBased" value="false"/>
             <property name="enableSubPackages" value="true"/>
             <property name="immutable" value="false"/>
         </javaModelGenerator>
 
         <sqlMapGenerator targetPackage="mapper/growth"
-                         targetProject="/Users/shimeng/Desktop/project/long-article-manage/long-article-server/src/main/resources">
+                         targetProject="long-article-server/src/main/resources">
             <property name="enableSubPackages" value="true"/>
         </sqlMapGenerator>
 
         <javaClientGenerator targetPackage="com.tzld.piaoquan.longarticle.dao.mapper.growth" type="XMLMAPPER"
-                             targetProject="/Users/shimeng/Desktop/project/long-article-manage/long-article-server/src/main/java">
+                             targetProject="long-article-server/src/main/java">
             <property name="enableSubPackages" value="true"/>
         </javaClientGenerator>
 
-        <table tableName="content_platform_video" domainObjectName="ContentPlatformVideo" alias=""/>
+<!--        <table tableName="content_platform_video" domainObjectName="ContentPlatformVideo" alias=""/>-->
+        <table tableName="video_growth_multi_cover" domainObjectName="VideoGrowthMultiCover" alias=""/>
+        <table tableName="video_growth_multi_title" domainObjectName="VideoGrowthMultiTitle" alias=""/>
 
 
     </context>

+ 214 - 0
long-article-server/src/main/resources/mapper/growth/VideoGrowthMultiCoverMapper.xml

@@ -0,0 +1,214 @@
+<?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.growth.VideoGrowthMultiCoverMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="video_id" jdbcType="BIGINT" property="videoId" />
+    <result column="source" jdbcType="VARCHAR" property="source" />
+    <result column="cover" jdbcType="VARCHAR" property="cover" />
+    <result column="create_timestamp" jdbcType="BIGINT" property="createTimestamp" />
+  </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, video_id, `source`, cover, create_timestamp
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCoverExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from video_growth_multi_cover
+    <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.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from video_growth_multi_cover
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from video_growth_multi_cover
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCoverExample">
+    delete from video_growth_multi_cover
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover">
+    insert into video_growth_multi_cover (id, video_id, `source`, 
+      cover, create_timestamp)
+    values (#{id,jdbcType=BIGINT}, #{videoId,jdbcType=BIGINT}, #{source,jdbcType=VARCHAR}, 
+      #{cover,jdbcType=VARCHAR}, #{createTimestamp,jdbcType=BIGINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover">
+    insert into video_growth_multi_cover
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="videoId != null">
+        video_id,
+      </if>
+      <if test="source != null">
+        `source`,
+      </if>
+      <if test="cover != null">
+        cover,
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="videoId != null">
+        #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="cover != null">
+        #{cover,jdbcType=VARCHAR},
+      </if>
+      <if test="createTimestamp != null">
+        #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCoverExample" resultType="java.lang.Long">
+    select count(*) from video_growth_multi_cover
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update video_growth_multi_cover
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=BIGINT},
+      </if>
+      <if test="record.videoId != null">
+        video_id = #{record.videoId,jdbcType=BIGINT},
+      </if>
+      <if test="record.source != null">
+        `source` = #{record.source,jdbcType=VARCHAR},
+      </if>
+      <if test="record.cover != null">
+        cover = #{record.cover,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTimestamp != null">
+        create_timestamp = #{record.createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update video_growth_multi_cover
+    set id = #{record.id,jdbcType=BIGINT},
+      video_id = #{record.videoId,jdbcType=BIGINT},
+      `source` = #{record.source,jdbcType=VARCHAR},
+      cover = #{record.cover,jdbcType=VARCHAR},
+      create_timestamp = #{record.createTimestamp,jdbcType=BIGINT}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover">
+    update video_growth_multi_cover
+    <set>
+      <if test="videoId != null">
+        video_id = #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="source != null">
+        `source` = #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="cover != null">
+        cover = #{cover,jdbcType=VARCHAR},
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp = #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiCover">
+    update video_growth_multi_cover
+    set video_id = #{videoId,jdbcType=BIGINT},
+      `source` = #{source,jdbcType=VARCHAR},
+      cover = #{cover,jdbcType=VARCHAR},
+      create_timestamp = #{createTimestamp,jdbcType=BIGINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>

+ 214 - 0
long-article-server/src/main/resources/mapper/growth/VideoGrowthMultiTitleMapper.xml

@@ -0,0 +1,214 @@
+<?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.growth.VideoGrowthMultiTitleMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="video_id" jdbcType="BIGINT" property="videoId" />
+    <result column="source" jdbcType="VARCHAR" property="source" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="create_timestamp" jdbcType="BIGINT" property="createTimestamp" />
+  </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, video_id, `source`, title, create_timestamp
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitleExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from video_growth_multi_title
+    <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.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from video_growth_multi_title
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from video_growth_multi_title
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitleExample">
+    delete from video_growth_multi_title
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle">
+    insert into video_growth_multi_title (id, video_id, `source`, 
+      title, create_timestamp)
+    values (#{id,jdbcType=BIGINT}, #{videoId,jdbcType=BIGINT}, #{source,jdbcType=VARCHAR}, 
+      #{title,jdbcType=VARCHAR}, #{createTimestamp,jdbcType=BIGINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle">
+    insert into video_growth_multi_title
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="videoId != null">
+        video_id,
+      </if>
+      <if test="source != null">
+        `source`,
+      </if>
+      <if test="title != null">
+        title,
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="videoId != null">
+        #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="createTimestamp != null">
+        #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitleExample" resultType="java.lang.Long">
+    select count(*) from video_growth_multi_title
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update video_growth_multi_title
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=BIGINT},
+      </if>
+      <if test="record.videoId != null">
+        video_id = #{record.videoId,jdbcType=BIGINT},
+      </if>
+      <if test="record.source != null">
+        `source` = #{record.source,jdbcType=VARCHAR},
+      </if>
+      <if test="record.title != null">
+        title = #{record.title,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTimestamp != null">
+        create_timestamp = #{record.createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update video_growth_multi_title
+    set id = #{record.id,jdbcType=BIGINT},
+      video_id = #{record.videoId,jdbcType=BIGINT},
+      `source` = #{record.source,jdbcType=VARCHAR},
+      title = #{record.title,jdbcType=VARCHAR},
+      create_timestamp = #{record.createTimestamp,jdbcType=BIGINT}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle">
+    update video_growth_multi_title
+    <set>
+      <if test="videoId != null">
+        video_id = #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="source != null">
+        `source` = #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        title = #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp = #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.growth.VideoGrowthMultiTitle">
+    update video_growth_multi_title
+    set video_id = #{videoId,jdbcType=BIGINT},
+      `source` = #{source,jdbcType=VARCHAR},
+      title = #{title,jdbcType=VARCHAR},
+      create_timestamp = #{createTimestamp,jdbcType=BIGINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>

+ 15 - 0
long-article-server/src/main/resources/mapper/growth/ext/VideoMultiMapperExt.xml

@@ -0,0 +1,15 @@
+<?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.growth.ext.VideoMultiMapperExt">
+
+    <insert id="insertVideoMultiTitleReturnId" useGeneratedKeys="true" keyProperty="id">
+        insert into video_growth_multi_title (video_id, `source`, title, create_timestamp)
+        values (#{record.videoId}, #{record.source}, #{record.title}, #{record.createTimestamp})
+    </insert>
+
+    <insert id="insertVideoMultiCoverReturnId" useGeneratedKeys="true" keyProperty="id">
+        insert into video_growth_multi_cover (video_id, `source`, cover, create_timestamp)
+        values (#{record.videoId}, #{record.source}, #{record.cover}, #{record.createTimestamp})
+    </insert>
+
+</mapper>