Преглед изворни кода

修改发布失败能复用的文章和小程序

xueyiming пре 8 месеци
родитељ
комит
6ad7493a82

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

@@ -41,6 +41,8 @@ public class PublishMiniprogram {
 
     private String traceId;
 
+    private String wxUrl;
+
     private Integer isDelete;
 
     private Date createTime;
@@ -199,6 +201,14 @@ public class PublishMiniprogram {
         this.traceId = traceId;
     }
 
+    public String getWxUrl() {
+        return wxUrl;
+    }
+
+    public void setWxUrl(String wxUrl) {
+        this.wxUrl = wxUrl;
+    }
+
     public Integer getIsDelete() {
         return isDelete;
     }
@@ -248,6 +258,7 @@ public class PublishMiniprogram {
         sb.append(", rootShareId=").append(rootShareId);
         sb.append(", index=").append(index);
         sb.append(", traceId=").append(traceId);
+        sb.append(", wxUrl=").append(wxUrl);
         sb.append(", isDelete=").append(isDelete);
         sb.append(", createTime=").append(createTime);
         sb.append(", updateTime=").append(updateTime);

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

@@ -1376,6 +1376,76 @@ public class PublishMiniprogramExample {
             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 andIsDeleteIsNull() {
             addCriterion("is_delete is null");
             return (Criteria) this;

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

@@ -4,10 +4,9 @@ import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.tzld.piaoquan.longarticle.dao.mapper.CrawlerVideoMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.MatchVideoMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.PublishContentMapper;
-import com.tzld.piaoquan.longarticle.model.po.CrawlerVideo;
-import com.tzld.piaoquan.longarticle.model.po.CrawlerVideoExample;
-import com.tzld.piaoquan.longarticle.model.po.MatchVideo;
-import com.tzld.piaoquan.longarticle.model.po.MatchVideoExample;
+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.service.local.ContentService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -34,6 +33,9 @@ public class ContentServiceImpl implements ContentService {
     @Autowired
     private CrawlerVideoMapper crawlerVideoMapper;
 
+    @Autowired
+    private PublishMiniprogramMapper publishMiniprogramMapper;
+
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
@@ -58,21 +60,31 @@ public class ContentServiceImpl implements ContentService {
         return matchVideos.get(0);
     }
 
+    public List<PublishMiniprogram> getPublishMiniprograms(PublishArticleData publishArticleData) {
+        PublishMiniprogramExample publishMiniprogramExample = new PublishMiniprogramExample();
+        publishMiniprogramExample.createCriteria().andPublishContentIdEqualTo(publishArticleData.getId());
+        List<PublishMiniprogram> publishMiniprograms = publishMiniprogramMapper.selectByExample(publishMiniprogramExample);
+        if (CollectionUtils.isEmpty(publishMiniprograms)) {
+            return null;
+        }
+        return publishMiniprograms;
+    }
+
 
-    public List<CrawlerVideo> getContentMiniVideo(String contentId, String flowPoolLevel, String ghId) {
+    public List<CrawlerVideo> getContentMiniVideo(PublishArticleData publishArticleData, PlanAccount planAccount) {
         CrawlerVideoExample example = new CrawlerVideoExample();
         example.setOrderByClause("score desc");
-        example.createCriteria().andDownloadStatusEqualTo(2).andContentIdEqualTo(contentId);
+        example.createCriteria().andDownloadStatusEqualTo(2).andContentIdEqualTo(publishArticleData.getSourceId());
         List<CrawlerVideo> crawlerVideoList = crawlerVideoMapper.selectByExample(example);
         List<CrawlerVideo> videoList;
-        switch (flowPoolLevel) {
+        switch (publishArticleData.getContentPoolType()) {
             case "autoArticlePoolLevel4":
                 // 冷启层,全量做
                 videoList = shuffleList(crawlerVideoList).subList(0, Math.min(crawlerVideoList.size(), 3));
                 break;
             case "autoArticlePoolLevel3":
                 //次条,只针对具体账号做
-                if (ghIdMap.containsKey(ghId)) {
+                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));

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

@@ -352,65 +352,78 @@ public class CoreServiceImpl implements CoreService {
             List<Long> sendIds = new ArrayList<>();
             for (PublishArticleData publishArticleData : rankList) {
                 LongArticleSystemPushContentParam contentParam = new LongArticleSystemPushContentParam();
-                String publishContentId = publishArticleData.getId();
-                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);
+                PublishContent publishContent = publicContentService.getPublishContent(planAccount, publishArticleData);
                 sendIds.add(publishContent.getId());
                 //获取小程序
-                List<CrawlerVideo> contentVideos =
-                        contentService.getContentMiniVideo(publishArticleData.getSourceId(), publishArticleData.getContentPoolType(), planAccount.getGhId());
-                List<VideoDetail> videoDetails = new ArrayList<>();
-                //发布小程序
-                for (CrawlerVideo crawlerVideo : contentVideos) {
-                    String videoOssPath = crawlerVideo.getVideoOssPath();
-                    String platform = crawlerVideo.getPlatform();
-                    String userId = crawlerVideo.getUserId();
-                    String traceId = crawlerVideo.getTraceId();
-                    String kimiTitle;
-                    LongArticlesText kimiText = kimiService.getKimiText(crawlerVideo.getContentId());
-                    if (kimiText != null && StringUtils.isNotEmpty(kimiText.getKimiTitle())) {
-                        kimiTitle = kimiText.getKimiTitle();
-                    } else {
-                        kimiTitle = crawlerVideo.getVideoTitle();
+                List<PublishMiniprogram> publishMiniprogramList = contentService.getPublishMiniprograms(publishArticleData);
+                if (CollectionUtils.isEmpty(publishMiniprogramList)) {
+                    List<CrawlerVideo> contentVideos =
+                            contentService.getContentMiniVideo(publishArticleData, planAccount);
+                    List<VideoDetail> videoDetails = new ArrayList<>();
+                    //发布小程序
+                    for (CrawlerVideo crawlerVideo : contentVideos) {
+                        String videoOssPath = crawlerVideo.getVideoOssPath();
+                        String platform = crawlerVideo.getPlatform();
+                        String userId = crawlerVideo.getUserId();
+                        String traceId = crawlerVideo.getTraceId();
+                        String kimiTitle;
+                        LongArticlesText kimiText = kimiService.getKimiText(crawlerVideo.getContentId());
+                        if (kimiText != null && StringUtils.isNotEmpty(kimiText.getKimiTitle())) {
+                            kimiTitle = kimiText.getKimiTitle();
+                        } else {
+                            kimiTitle = crawlerVideo.getVideoTitle();
+                        }
+                        VideoDetail publish = videoService.publish(videoOssPath, userId, kimiTitle, platform, traceId);
+                        if (publish == null) {
+                            continue;
+                        }
+                        videoDetails.add(publish);
+                    }
+                    if (videoDetails.size() < 2) {
+                        MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
+                        statusParam.setStatus(3);
+                        statusParam.setPublishContentId(publishContent.getPublishContentId());
+                        statusParam.setErrorMsg("小程序视频数量不足");
+                        aigcService.updateMatchMiniprogramStatus(statusParam);
+
+                        PublishContent update = new PublishContent();
+                        update.setId(publishContent.getId());
+                        update.setStatus(3);
+                        update.setReason("小程序数量不足");
+                        publishContentMapper.updateByPrimaryKeySelective(update);
+                        continue;
                     }
-                    VideoDetail publish = videoService.publish(videoOssPath, userId, kimiTitle, platform, traceId);
-                    if (publish == null) {
+                    String ghId = planAccount.getGhId();
+                    Long planAccountId = planAccount.getId();
+                    publishMiniprogramList = cardService.generateCards(planAccountId, ghId, videoDetails,
+                            planAccount.getMiniprogramUseType(), publishContent.getPublishContentId());
+                    if (CollectionUtils.isEmpty(publishMiniprogramList) && publishMiniprogramList.size() < 2) {
                         continue;
                     }
-                    videoDetails.add(publish);
+                    for (PublishMiniprogram publishMiniprogram : publishMiniprogramList) {
+                        String videoCover = publishMiniprogram.getVideoCover();
+                        String wxUrl = aigcService.pushCover(videoCover, publishMiniprogram.getPublishContentId());
+                        if (StringUtils.isEmpty(wxUrl)) {
+                            continue;
+                        }
+                        publishMiniprogram.setWxUrl(wxUrl);
+                        publishMiniprogram.setContentId(publishContent.getId());
+                        RootSource rootSource = new RootSource();
+                        rootSource.setAccountName(planAccount.getAccountName());
+                        rootSource.setRootSourceId(publishMiniprogram.getRootSourceId());
+                        rootSource.setGhId(planAccount.getGhId());
+                        rootSource.setRequestTime(Integer.valueOf(String.valueOf(System.currentTimeMillis() / 1000)));
+                        rootSource.setTraceId(publishMiniprogram.getTraceId());
+                        rootSource.setPushType(planAccount.getPushType());
+                        rootSource.setVideoId(publishMiniprogram.getVideoId());
+                        rootSource.setContentId(publishArticleData.getSourceId());
+                        rootSourceMapper.insertSelective(rootSource);
+                        publishMiniprogramMapper.insertSelective(publishMiniprogram);
+                    }
                 }
-                if (videoDetails.size() < 2) {
-                    MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
-                    statusParam.setStatus(3);
-                    statusParam.setPublishContentId(publishContentId);
-                    statusParam.setErrorMsg("小程序视频数量不足");
-                    aigcService.updateMatchMiniprogramStatus(statusParam);
 
-                    PublishContent update = new PublishContent();
-                    update.setId(publishContent.getId());
-                    update.setStatus(3);
-                    update.setReason("小程序数量不足");
-                    publishContentMapper.updateByPrimaryKeySelective(update);
-                    continue;
-                }
-                String ghId = planAccount.getGhId();
-                Long planAccountId = planAccount.getId();
-                List<PublishMiniprogram> cardList = cardService.generateCards(planAccountId, ghId, videoDetails, planAccount.getMiniprogramUseType(), publishContentId);
-                if (CollectionUtils.isEmpty(cardList) && cardList.size() < 2) {
-                    continue;
-                }
                 List<PublishMiniprogramParam> publishCardList = new ArrayList<>();
-                for (PublishMiniprogram publishMiniprogram : cardList) {
-                    String videoCover = publishMiniprogram.getVideoCover();
-                    String wxUrl = aigcService.pushCover(videoCover, publishMiniprogram.getPublishContentId());
-                    if (StringUtils.isEmpty(wxUrl)) {
-                        continue;
-                    }
+                for (PublishMiniprogram publishMiniprogram : publishMiniprogramList) {
                     PublishMiniprogramParam param = new PublishMiniprogramParam();
                     param.setProgramId(publishMiniprogram.getAppId());
                     param.setProgramName(publishMiniprogram.getAppName());
@@ -425,7 +438,16 @@ public class CoreServiceImpl implements CoreService {
                         }
                         param.setProductionName(videoTitle);
                     }
-                    param.setProductionCover(wxUrl);
+                    String wxUrl = null;
+                    if (StringUtils.isNotEmpty(publishMiniprogram.getWxUrl())) {
+                        wxUrl = publishMiniprogram.getWxUrl();
+                    } else {
+                        aigcService.pushCover(publishMiniprogram.getVideoCover(), publishMiniprogram.getPublishContentId());
+                    }
+                    if (StringUtils.isEmpty(wxUrl)) {
+                        continue;
+                    }
+                    param.setProductionCover(publishMiniprogram.getVideoCover());
                     param.setProductionPath(publishMiniprogram.getProductionPath());
                     param.setRootShareId(publishMiniprogram.getRootShareId());
                     param.setSource(publishMiniprogram.getSource());
@@ -436,24 +458,11 @@ public class CoreServiceImpl implements CoreService {
                     }
                     param.setTraceId(publishMiniprogram.getTraceId());
                     publishCardList.add(param);
-                    publishMiniprogram.setContentId(publishContent.getId());
-                    RootSource rootSource = new RootSource();
-                    rootSource.setAccountName(planAccount.getAccountName());
-                    rootSource.setRootSourceId(publishMiniprogram.getRootSourceId());
-                    rootSource.setGhId(planAccount.getGhId());
-                    rootSource.setRequestTime(Integer.valueOf(String.valueOf(System.currentTimeMillis() / 1000)));
-                    rootSource.setTraceId(publishMiniprogram.getTraceId());
-                    rootSource.setPushType(planAccount.getPushType());
-                    rootSource.setVideoId(publishMiniprogram.getVideoId());
-                    rootSource.setContentId(publishArticleData.getSourceId());
-                    rootSourceMapper.insertSelective(rootSource);
-                    publishMiniprogramMapper.insertSelective(publishMiniprogram);
                 }
-
                 if (publishCardList.size() < 2) {
                     MatchMiniprogramStatusParam statusParam = new MatchMiniprogramStatusParam();
                     statusParam.setStatus(3);
-                    statusParam.setPublishContentId(publishContentId);
+                    statusParam.setPublishContentId(publishContent.getPublishContentId());
                     statusParam.setErrorMsg("小程序视频数量不足");
                     aigcService.updateMatchMiniprogramStatus(statusParam);
 
@@ -464,7 +473,7 @@ public class CoreServiceImpl implements CoreService {
                     publishContentMapper.updateByPrimaryKeySelective(update);
                     continue;
                 }
-                contentParam.setPublishContentId(publishContentId);
+                contentParam.setPublishContentId(publishContent.getPublishContentId());
                 contentParam.setMiniprogramCardList(publishCardList);
                 pushContentList.add(contentParam);
             }

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

@@ -1,12 +1,18 @@
 package com.tzld.piaoquan.longarticle.service.local.impl;
 
 import com.tzld.piaoquan.longarticle.dao.mapper.PublishContentMapper;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.PublishContent;
 import com.tzld.piaoquan.longarticle.model.po.PublishContentExample;
 import com.tzld.piaoquan.longarticle.utils.DateUtil;
+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.Arrays;
+import java.util.List;
 
 @Service
 public class PublicContentServiceImpl {
@@ -22,4 +28,28 @@ public class PublicContentServiceImpl {
         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);
+        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;
+    }
 }

+ 21 - 5
long-article-server/src/main/resources/mapper/PublishMiniprogramMapper.xml

@@ -21,6 +21,7 @@
     <result column="root_share_id" jdbcType="VARCHAR" property="rootShareId" />
     <result column="index" jdbcType="INTEGER" property="index" />
     <result column="trace_id" jdbcType="VARCHAR" property="traceId" />
+    <result column="wx_url" jdbcType="VARCHAR" property="wxUrl" />
     <result column="is_delete" jdbcType="INTEGER" property="isDelete" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
@@ -86,7 +87,8 @@
   <sql id="Base_Column_List">
     id, content_id, plan_account_id, publish_content_id, app_id, app_name, avatar, mini_id, 
     mini_program_type, video_id, `source`, video_title, video_cover, video_path, production_path, 
-    root_source_id, root_share_id, `index`, trace_id, is_delete, create_time, update_time
+    root_source_id, root_share_id, `index`, trace_id, wx_url, is_delete, create_time, 
+    update_time
   </sql>
   <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.PublishMiniprogramExample" resultMap="BaseResultMap">
     select
@@ -128,16 +130,16 @@
       video_id, `source`, video_title, 
       video_cover, video_path, production_path, 
       root_source_id, root_share_id, `index`, 
-      trace_id, is_delete, create_time, 
-      update_time)
+      trace_id, wx_url, is_delete, 
+      create_time, update_time)
     values (#{id,jdbcType=BIGINT}, #{contentId,jdbcType=BIGINT}, #{planAccountId,jdbcType=BIGINT}, 
       #{publishContentId,jdbcType=VARCHAR}, #{appId,jdbcType=VARCHAR}, #{appName,jdbcType=VARCHAR}, 
       #{avatar,jdbcType=VARCHAR}, #{miniId,jdbcType=INTEGER}, #{miniProgramType,jdbcType=INTEGER}, 
       #{videoId,jdbcType=BIGINT}, #{source,jdbcType=VARCHAR}, #{videoTitle,jdbcType=VARCHAR}, 
       #{videoCover,jdbcType=VARCHAR}, #{videoPath,jdbcType=VARCHAR}, #{productionPath,jdbcType=VARCHAR}, 
       #{rootSourceId,jdbcType=VARCHAR}, #{rootShareId,jdbcType=VARCHAR}, #{index,jdbcType=INTEGER}, 
-      #{traceId,jdbcType=VARCHAR}, #{isDelete,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{updateTime,jdbcType=TIMESTAMP})
+      #{traceId,jdbcType=VARCHAR}, #{wxUrl,jdbcType=VARCHAR}, #{isDelete,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.PublishMiniprogram">
     insert into long_articles_publish_miniprogram
@@ -199,6 +201,9 @@
       <if test="traceId != null">
         trace_id,
       </if>
+      <if test="wxUrl != null">
+        wx_url,
+      </if>
       <if test="isDelete != null">
         is_delete,
       </if>
@@ -267,6 +272,9 @@
       <if test="traceId != null">
         #{traceId,jdbcType=VARCHAR},
       </if>
+      <if test="wxUrl != null">
+        #{wxUrl,jdbcType=VARCHAR},
+      </if>
       <if test="isDelete != null">
         #{isDelete,jdbcType=INTEGER},
       </if>
@@ -344,6 +352,9 @@
       <if test="record.traceId != null">
         trace_id = #{record.traceId,jdbcType=VARCHAR},
       </if>
+      <if test="record.wxUrl != null">
+        wx_url = #{record.wxUrl,jdbcType=VARCHAR},
+      </if>
       <if test="record.isDelete != null">
         is_delete = #{record.isDelete,jdbcType=INTEGER},
       </if>
@@ -379,6 +390,7 @@
       root_share_id = #{record.rootShareId,jdbcType=VARCHAR},
       `index` = #{record.index,jdbcType=INTEGER},
       trace_id = #{record.traceId,jdbcType=VARCHAR},
+      wx_url = #{record.wxUrl,jdbcType=VARCHAR},
       is_delete = #{record.isDelete,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       update_time = #{record.updateTime,jdbcType=TIMESTAMP}
@@ -443,6 +455,9 @@
       <if test="traceId != null">
         trace_id = #{traceId,jdbcType=VARCHAR},
       </if>
+      <if test="wxUrl != null">
+        wx_url = #{wxUrl,jdbcType=VARCHAR},
+      </if>
       <if test="isDelete != null">
         is_delete = #{isDelete,jdbcType=INTEGER},
       </if>
@@ -475,6 +490,7 @@
       root_share_id = #{rootShareId,jdbcType=VARCHAR},
       `index` = #{index,jdbcType=INTEGER},
       trace_id = #{traceId,jdbcType=VARCHAR},
+      wx_url = #{wxUrl,jdbcType=VARCHAR},
       is_delete = #{isDelete,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       update_time = #{updateTime,jdbcType=TIMESTAMP}