Browse Source

Merge branch '20250408-wyp-contentPlatform' into test

wangyunpeng 3 months ago
parent
commit
3364f9c30f

+ 31 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/enums/contentplatform/QwPlanTypeEnum.java

@@ -0,0 +1,31 @@
+package com.tzld.piaoquan.api.common.enums.contentplatform;
+
+import lombok.Getter;
+
+@Getter
+public enum QwPlanTypeEnum {
+    GROUP(0, "社群"),
+    DAILY(1, "每日推送"),
+
+    other(999, "其他");
+
+    private final int val;
+    private final String description;
+
+    QwPlanTypeEnum(int val, String description) {
+        this.val = val;
+        this.description = description;
+    }
+
+    public static QwPlanTypeEnum from(int val) {
+        for (QwPlanTypeEnum typeEnum : QwPlanTypeEnum.values()) {
+            if (typeEnum.getVal() == val) {
+                return typeEnum;
+            }
+        }
+
+        return other;
+    }
+
+
+}

+ 3 - 3
api-module/src/main/java/com/tzld/piaoquan/api/component/AigcApiService.java

@@ -20,7 +20,7 @@ public class AigcApiService {
     @Autowired
     private HttpPoolClient httpPoolClient;
 
-    @Value("${aigc.api.host:http://aigc-api.cybertogether.net/aigc}")
+    @Value("${aigc.api.host:http://aigc-testapi.cybertogether.net/aigc}")
     private String aigcApiHost;
 
     @Value("${aigc.api.token:9ebfcb397e954c41986971f183eb1707}")
@@ -181,11 +181,11 @@ public class AigcApiService {
         return params;
     }
 
-    public void closePublishPlan(String externalId) {
+    public void changePublishPlanStatus(String externalId, Integer status) {
         String url = aigcApiHost + "/publish/plan/updatePlanStatus";
         JSONObject params = new JSONObject();
         params.put("id", externalId);
-        params.put("status", 0);
+        params.put("status", status);
         try {
             String post = httpPoolClient.post(url, getAigcPostParam(params));
             JSONObject res = JSONObject.parseObject(post);

+ 28 - 15
api-module/src/main/java/com/tzld/piaoquan/api/job/ContentPlatformDatastatJob.java

@@ -19,6 +19,8 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -76,15 +78,16 @@ public class ContentPlatformDatastatJob {
                 .collect(Collectors.toMap(WxAccountDatastatVO::getAccountId, wxAccountDatastatVO -> wxAccountDatastatVO));
         List<ContentPlatformGzhPlan> gzhPlanList = planService.getGzhPlanListByCooperateAccountIds(accountIds);
         List<Long> planIds = gzhPlanList.stream().map(ContentPlatformGzhPlan::getId).collect(Collectors.toList());
-        Map<Long, Long> gzhPlanMap = gzhPlanList.stream()
-               .collect(Collectors.toMap(ContentPlatformGzhPlan::getAccountId, ContentPlatformGzhPlan::getId));
+        Map<Long, List<Long>> gzhPlanMap = gzhPlanList.stream()
+               .collect(Collectors.groupingBy(ContentPlatformGzhPlan::getAccountId,
+                       Collectors.mapping(ContentPlatformGzhPlan::getId, Collectors.toList())));
         List<ContentPlatformGzhPlanVideo> gzhPlanVideoList = planService.getGzhPlanVideoList(planIds);
         Map<Long, List<ContentPlatformGzhPlanVideo>> gzhPlanVideoMap = gzhPlanVideoList.stream()
               .collect(Collectors.groupingBy(ContentPlatformGzhPlanVideo::getPlanId));
         List<Long> videoIds = gzhPlanVideoList.stream().map(ContentPlatformGzhPlanVideo::getVideoId).collect(Collectors.toList());
         List<ContentPlatformVideo> contentPlatformVideoList = planService.getVideoContentListByVideoIds(videoIds);
         Map<Long, ContentPlatformVideo> videoMap = contentPlatformVideoList.stream()
-              .collect(Collectors.toMap(ContentPlatformVideo::getId, video -> video));
+              .collect(Collectors.toMap(ContentPlatformVideo::getVideoId, video -> video, (a, b) -> a));
         if (CollectionUtils.isNotEmpty(dataList)) {
             List<ContentPlatformGzhDataStat> saveList = new ArrayList<>();
             for (Record record : dataList) {
@@ -102,15 +105,23 @@ public class ContentPlatformDatastatJob {
                 if (Objects.nonNull(wxAccountDatastatVO)) {
                     item.setFansIncreaseCount(wxAccountDatastatVO.getFansIncreaseCount());
                 }
-                List<ContentPlatformGzhPlanVideo> videoList = gzhPlanVideoMap.get(gzhPlanMap.get(gzhAccount.getId()));
-                if (CollectionUtils.isNotEmpty(videoList)) {
-                    List<Long> itemVideoIds = videoList.stream().map(ContentPlatformGzhPlanVideo::getVideoId).collect(Collectors.toList());
-                    Double score = 0.0;
-                    for (Long videoId : itemVideoIds) {
-                        score += videoMap.get(videoId).getScore();
+                List<Long> planIdList = gzhPlanMap.get(gzhAccount.getId());
+                Double score = 0.0;
+                int size = 0;
+                for (Long planId : planIdList) {
+                    List<ContentPlatformGzhPlanVideo> videoList = gzhPlanVideoMap.get(planId);
+                    if (CollectionUtils.isNotEmpty(videoList)) {
+                        List<Long> itemVideoIds = videoList.stream().map(ContentPlatformGzhPlanVideo::getVideoId).collect(Collectors.toList());
+                        for (Long videoId : itemVideoIds) {
+                            score += videoMap.get(videoId).getScore();
+                        }
+                        size += videoList.size();
                     }
-                    item.setScore(score / itemVideoIds.size());
                 }
+
+                BigDecimal num = BigDecimal.valueOf(score / size);
+                BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
+                item.setScore(rounded.doubleValue());
                 item.setCreateTimestamp(now);
                 saveList.add(item);
             }
@@ -159,9 +170,7 @@ public class ContentPlatformDatastatJob {
         List<Long> videoIds = planVideoList.stream().map(ContentPlatformQwPlanVideo::getVideoId).collect(Collectors.toList());
         List<ContentPlatformVideo> videoList = planService.getVideoContentListByVideoIds(videoIds);
         Map<Long, Double> videoScoreMap = videoList.stream()
-              .collect(Collectors.toMap(ContentPlatformVideo::getId, ContentPlatformVideo::getScore));
-        Map<Long, ContentPlatformVideo> videoMap = videoList.stream()
-               .collect(Collectors.toMap(ContentPlatformVideo::getId, video -> video));
+              .collect(Collectors.toMap(ContentPlatformVideo::getVideoId, ContentPlatformVideo::getScore, (a, b) -> a));
         List<ContentPlatformQwDataStat> saveList = new ArrayList<>();
         List<String> rootSourceIds = qwPlanList.stream().map(ContentPlatformQwPlan::getRootSourceId).collect(Collectors.toList());
         String outSql = String.format("SELECT * FROM loghubods.qw_out_touliu_behavior_detail WHERE dt=%s;", dt);
@@ -179,7 +188,9 @@ public class ContentPlatformDatastatJob {
                 Long planId = rootSourceIdMap.get(rootSourceId);
                 Long videoId = planVideoMap.get(planId);
                 Double score = videoScoreMap.get(videoId);
-                item.setScore(score);
+                BigDecimal num = BigDecimal.valueOf(score);
+                BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
+                item.setScore(rounded.doubleValue());
                 item.setRootSourceId(rootSourceId);
                 item.setFirstLevelCount(firstLevelCount);
                 item.setCreateTimestamp(now);
@@ -200,7 +211,9 @@ public class ContentPlatformDatastatJob {
                 Long planId = rootSourceIdMap.get(rootSourceId);
                 Long videoId = planVideoMap.get(planId);
                 Double score = videoScoreMap.get(videoId);
-                item.setScore(score);
+                BigDecimal num = BigDecimal.valueOf(score);
+                BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
+                item.setScore(rounded.doubleValue());
                 item.setRootSourceId(rootSourceId);
                 item.setFirstLevelCount(firstLevelCount);
                 item.setCreateTimestamp(now);

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/QwPlanSaveParam.java

@@ -8,7 +8,7 @@ import java.util.List;
 @Data
 public class QwPlanSaveParam {
 
-    @ApiModelProperty(value = "类型 0-自动回复 1-每日推送")
+    @ApiModelProperty(value = "类型 0-社群 1-每日推送")
     private Integer type;
 
     @ApiModelProperty(value = "视频列表")

+ 33 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/GzhTotalDatastatItemExportVO.java

@@ -0,0 +1,33 @@
+package com.tzld.piaoquan.api.model.vo.contentplatform;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ColumnWidth(20)//宽
+@HeadRowHeight(50)//表头高
+@ContentRowHeight(25)//正文行高
+public class GzhTotalDatastatItemExportVO {
+
+    @ExcelProperty("日期")
+    private String dateStr;
+
+    @ExcelProperty("新增粉丝数")
+    private Integer fansIncreaseCount;
+
+    @ExcelProperty("小程序访问人数")
+    private Integer firstLevel;
+
+    @ExcelProperty("打开率")
+    private Double openRate;
+
+    @ExcelProperty("传播得分")
+    private Double score;
+}

+ 0 - 3
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/QwDatastatItemExportVO.java

@@ -19,9 +19,6 @@ public class QwDatastatItemExportVO {
     @ExcelProperty("日期")
     private String dateStr;
 
-    @ExcelProperty("小程序访问人数")
-    private Integer firstLevel;
-
     @ExcelProperty("传播得分")
     private Double score;
 

+ 27 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/QwGroupDatastatItemExportVO.java

@@ -0,0 +1,27 @@
+package com.tzld.piaoquan.api.model.vo.contentplatform;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ColumnWidth(20)//宽
+@HeadRowHeight(50)//表头高
+@ContentRowHeight(25)//正文行高
+public class QwGroupDatastatItemExportVO {
+
+    @ExcelProperty("日期")
+    private String dateStr;
+
+    @ExcelProperty("小程序访问人数")
+    private Integer firstLevel;
+
+    @ExcelProperty("传播得分")
+    private Double score;
+}

+ 47 - 8
api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformDatastatServiceImpl.java

@@ -8,10 +8,7 @@ import com.tzld.piaoquan.api.model.config.LoginUserContext;
 import com.tzld.piaoquan.api.model.param.contentplatform.GzhDatastatListParam;
 import com.tzld.piaoquan.api.model.param.contentplatform.QwDatastatListParam;
 import com.tzld.piaoquan.api.model.po.contentplatform.*;
-import com.tzld.piaoquan.api.model.vo.contentplatform.GzhDatastatItemExportVO;
-import com.tzld.piaoquan.api.model.vo.contentplatform.GzhDatastatItemVO;
-import com.tzld.piaoquan.api.model.vo.contentplatform.QwDatastatItemExportVO;
-import com.tzld.piaoquan.api.model.vo.contentplatform.QwDatastatItemVO;
+import com.tzld.piaoquan.api.model.vo.contentplatform.*;
 import com.tzld.piaoquan.api.service.contentplatform.ContentPlatformCooperateAccountService;
 import com.tzld.piaoquan.api.service.contentplatform.ContentPlatformDatastatService;
 import com.tzld.piaoquan.api.service.contentplatform.ContentPlatformPlanService;
@@ -237,7 +234,29 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
         param.setPageSize(10000);
         Page<GzhDatastatItemVO> pageResult = gzhDatastatList(param);
         List<GzhDatastatItemVO> dataList = pageResult.getObjs();
-        return generateGzhDatastatExcelFile(dataList);
+        if (param.getType() == 1) {
+            return generateGzhDatastatExcelFile(dataList);
+        } else {
+            return generateTotalGzhDatastatExcelFile(dataList);
+        }
+    }
+
+    public String generateTotalGzhDatastatExcelFile(List<GzhDatastatItemVO> dataList) {
+        ArrayList<GzhTotalDatastatItemExportVO> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(dataList)) {
+            for (GzhDatastatItemVO data : dataList) {
+                list.add(new GzhTotalDatastatItemExportVO(data.getDateStr(), data.getFansIncreaseCount(),
+                        data.getFirstLevel(), data.getOpenRate(), data.getScore()));
+            }
+        } else {
+            list.add(new GzhTotalDatastatItemExportVO());
+        }
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        EasyExcel.write(out, GzhTotalDatastatItemExportVO.class).sheet("").doWrite(list);
+        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(out.toByteArray());
+        String fileName = "公众号数据统计_" + System.currentTimeMillis() + ".xls";
+        AliOssFileTool.saveInPublicReturnHost(byteArrayInputStream, EnumPublicBuckets.PUBBUCKET, fileName, EnumFileType.TEMP_PICTURE);
+        return CdnUtil.DOWNLOAD_CDN_URL_HOST_PICTURE + fileName;
     }
 
     public String generateGzhDatastatExcelFile(List<GzhDatastatItemVO> dataList) {
@@ -264,15 +283,18 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
         param.setPageSize(10000);
         Page<QwDatastatItemVO> pageResult = qwDatastatList(param);
         List<QwDatastatItemVO> dataList = pageResult.getObjs();
-        return generateQwDatastatExcelFile(dataList);
+        if (param.getType() == 4) {
+            return generateQwDatastatExcelFile(dataList);
+        } else {
+            return generateGroupQwDatastatExcelFile(dataList);
+        }
     }
 
     public String generateQwDatastatExcelFile(List<QwDatastatItemVO> dataList) {
         ArrayList<QwDatastatItemExportVO> list = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(dataList)) {
             for (QwDatastatItemVO data : dataList) {
-                list.add(new QwDatastatItemExportVO(data.getDateStr(), data.getFirstLevel(),
-                        data.getScore(), data.getTitle(), data.getVideoId()));
+                list.add(new QwDatastatItemExportVO(data.getDateStr(), data.getScore(), data.getTitle(), data.getVideoId()));
             }
         } else {
             list.add(new QwDatastatItemExportVO());
@@ -284,4 +306,21 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
         AliOssFileTool.saveInPublicReturnHost(byteArrayInputStream, EnumPublicBuckets.PUBBUCKET, fileName, EnumFileType.TEMP_PICTURE);
         return CdnUtil.DOWNLOAD_CDN_URL_HOST_PICTURE + fileName;
     }
+
+    public String generateGroupQwDatastatExcelFile(List<QwDatastatItemVO> dataList) {
+        ArrayList<QwGroupDatastatItemExportVO> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(dataList)) {
+            for (QwDatastatItemVO data : dataList) {
+                list.add(new QwGroupDatastatItemExportVO(data.getDateStr(), data.getFirstLevel(), data.getScore()));
+            }
+        } else {
+            list.add(new QwGroupDatastatItemExportVO());
+        }
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        EasyExcel.write(out, QwGroupDatastatItemExportVO.class).sheet("").doWrite(list);
+        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(out.toByteArray());
+        String fileName = "企微数据统计_" + System.currentTimeMillis() + ".xls";
+        AliOssFileTool.saveInPublicReturnHost(byteArrayInputStream, EnumPublicBuckets.PUBBUCKET, fileName, EnumFileType.TEMP_PICTURE);
+        return CdnUtil.DOWNLOAD_CDN_URL_HOST_PICTURE + fileName;
+    }
 }

+ 25 - 11
api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformPlanServiceImpl.java

@@ -1,10 +1,13 @@
 package com.tzld.piaoquan.api.service.contentplatform.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
 import com.tzld.piaoquan.api.common.enums.contentplatform.PublishStageEnum;
+import com.tzld.piaoquan.api.common.enums.contentplatform.QwPlanTypeEnum;
 import com.tzld.piaoquan.api.common.exception.CommonException;
+import com.tzld.piaoquan.api.component.AigcApiService;
+import com.tzld.piaoquan.api.component.ManagerApiService;
+import com.tzld.piaoquan.api.component.VlogApiService;
 import com.tzld.piaoquan.api.dao.mapper.contentplatform.*;
 import com.tzld.piaoquan.api.dao.mapper.contentplatform.ext.ContentPlatformPlanMapperExt;
 import com.tzld.piaoquan.api.model.config.LoginUserContext;
@@ -15,9 +18,6 @@ import com.tzld.piaoquan.api.model.vo.contentplatform.GzhPlanItemVO;
 import com.tzld.piaoquan.api.model.vo.contentplatform.GzhPlanVideoContentItemVO;
 import com.tzld.piaoquan.api.model.vo.contentplatform.QwPlanItemVO;
 import com.tzld.piaoquan.api.model.vo.contentplatform.VideoContentItemVO;
-import com.tzld.piaoquan.api.component.AigcApiService;
-import com.tzld.piaoquan.api.component.ManagerApiService;
-import com.tzld.piaoquan.api.component.VlogApiService;
 import com.tzld.piaoquan.api.service.GhDetailService;
 import com.tzld.piaoquan.api.service.contentplatform.ContentPlatformCooperateAccountService;
 import com.tzld.piaoquan.api.service.contentplatform.ContentPlatformPlanService;
@@ -161,7 +161,7 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
         gzhPlanMapper.updateByPrimaryKeySelective(plan);
         if (PublishStageEnum.PLATFORM.getVal() == plan.getPublishStage()) {
             // 调用aigc删除发布计划
-            aigcApiService.closePublishPlan(plan.getExternalId());
+            aigcApiService.changePublishPlanStatus(plan.getExternalId(), 0);
         }
     }
 
@@ -208,6 +208,19 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
             gzhPlan.setCreateTimestamp(now);
             planMapperExt.insertGzhPlanReturnId(gzhPlan);
         } else {
+            ContentPlatformGzhPlan oldPlan = gzhPlanMapper.selectByPrimaryKey(param.getId());
+            if (PublishStageEnum.USER.getVal() == param.getPublishStage()) {
+                if (StringUtils.hasText(oldPlan.getExternalId())) {
+                    aigcApiService.changePublishPlanStatus(oldPlan.getExternalId(), 0);
+                }
+            } else {
+                if (StringUtils.hasText(oldPlan.getExternalId())) {
+                    aigcApiService.changePublishPlanStatus(oldPlan.getExternalId(), 1);
+                } else {
+                    String externalId = aigcApiService.createPublishPlan(account.getExternalId(), account.getName());
+                    gzhPlan.setExternalId(externalId);
+                }
+            }
             gzhPlan.setId(param.getId());
             gzhPlanMapper.updateByPrimaryKeySelective(gzhPlan);
         }
@@ -230,7 +243,7 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
                 continue;
             }
             String existsCover = dataList.get(0).getCoverUrl();
-            String coverSuffix = existsCover.substring(existsCover.indexOf("/watermark"));
+            String coverSuffix = existsCover.substring(existsCover.indexOf("?"));
             cgiReplyBucketDataMapperExt.updateBucketDataTitleCoverByGhId(ghId, video.getVideoId(),
                     video.getCustomTitle(), video.getCustomCover() + coverSuffix);
         }
@@ -282,11 +295,11 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
         GhDetail ghDetail = ghDetailService.getGhDetailByGhIdType(account.getGhId(), GhTypeEnum.THIRD_PARTY_GH.type);
         GhDetailVo detailVo = new GhDetailVo();
         if (Objects.nonNull(ghDetail)) {
-            ghDetail.setStrategyStatus(StrategyStatusEnum.DEFAULT.status);
-            ghDetail.setVideoIds(JSONObject.toJSONString(videoIds));
-            ghDetail.setAutoreplySendMinigramNum(videoIds.size());
-            ghDetail.setCategory1(account.getContentType());
             BeanUtils.copyProperties(ghDetail, detailVo);
+            detailVo.setVideoIds(videoIds);
+            detailVo.setStrategyStatus(StrategyStatusEnum.DEFAULT.status);
+            detailVo.setAutoreplySendMinigramNum(videoIds.size());
+            detailVo.setCategory1(account.getContentType());
             ghDetailService.updateDetail(detailVo);
         } else {
             ContentPlatformAccount loginUser = LoginUserContext.getUser();
@@ -438,7 +451,8 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
             qwPlan.setType(param.getType());
             qwPlan.setScene(videoParam.getScene());
             String pageUrl = messageAttachmentService.getPage(loginUser.getChannel(), "wxbdd2a2e93d9a6e25",
-                    "dyyqw", "企微", "社群", "位置X", videoParam.getVideoId());
+                    "dyyqw", "企微", QwPlanTypeEnum.from(param.getType()).getDescription(),
+                    "位置1", videoParam.getVideoId());
             String rootSourceId = MessageUtil.getRootSourceId(pageUrl);
             qwPlan.setPageUrl(pageUrl);
             qwPlan.setRootSourceId(rootSourceId);

+ 7 - 3
api-module/src/main/java/com/tzld/piaoquan/api/service/strategy/impl/BuckStrategyV1.java

@@ -390,9 +390,13 @@ public class BuckStrategyV1 implements ReplyStrategyService {
             // 内容合作平台视频标题和封面
             if (Objects.nonNull(gzhPlanVideo)) {
                 cgiReplyBucketData.setTitle(ContentPlatformPlanService.getVideoTitle(gzhPlanVideo));
-                if (StringUtils.isNotEmpty(ContentPlatformPlanService.getVideoCover(gzhPlanVideo))) {
-                    String coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("/watermark"));
-                    cgiReplyBucketData.setCoverUrl(ContentPlatformPlanService.getVideoCover(gzhPlanVideo) + coverSuffix);
+                String cover = ContentPlatformPlanService.getVideoCover(gzhPlanVideo);
+                if (StringUtils.isNotEmpty(cover)) {
+                    String coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("?"));
+                    if (cover.contains("?") && cover.contains("image/resize")) {
+                        coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("/watermark"));
+                    }
+                    cgiReplyBucketData.setCoverUrl(cover + coverSuffix);
                 }
             } else {
                 if (videoDetail != null && StringUtils.isNotEmpty(videoDetail.getCover())) {

+ 7 - 3
api-module/src/main/java/com/tzld/piaoquan/api/service/strategy/impl/ThirdPartyPushMessageStrategyV1.java

@@ -262,9 +262,13 @@ public class ThirdPartyPushMessageStrategyV1 implements ReplyStrategyService {
                     // 内容合作平台视频标题和封面
                     if (Objects.nonNull(gzhPlanVideo)) {
                         cgiReplyBucketData.setTitle(ContentPlatformPlanService.getVideoTitle(gzhPlanVideo));
-                        if (StringUtils.isNotEmpty(ContentPlatformPlanService.getVideoCover(gzhPlanVideo))) {
-                            String coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("/watermark"));
-                            cgiReplyBucketData.setCoverUrl(ContentPlatformPlanService.getVideoCover(gzhPlanVideo) + coverSuffix);
+                        String cover = ContentPlatformPlanService.getVideoCover(gzhPlanVideo);
+                        if (StringUtils.isNotEmpty(cover)) {
+                            String coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("?"));
+                            if (cover.contains("?") && cover.contains("image/resize")) {
+                                coverSuffix = videoDetail.getCover().substring(videoDetail.getCover().indexOf("/watermark"));
+                            }
+                            cgiReplyBucketData.setCoverUrl(cover + coverSuffix);
                         }
                     } else {
                         if (videoDetail != null && StringUtils.isNotEmpty(videoDetail.getCover())) {

+ 1 - 1
common-module/src/main/java/com/tzld/piaoquan/growth/common/service/Impl/MessageAttachmentServiceImpl.java

@@ -448,7 +448,7 @@ public class MessageAttachmentServiceImpl implements MessageAttachmentService {
                           String putTypeTwo, String putTypeThree, Long videoId) {
         AdPutFlowParam param = new AdPutFlowParam();
         param.setChannel(channel);
-        param.setPath("pages/category.html");
+        param.setPath("pages/category");
         param.setPutCarrierId(carrierId);
         param.setPutScene(scene);
         param.setPutStartDate(DateUtil.getDayDateString("yyyy-MM-dd"));

+ 1 - 1
common-module/src/main/resources/mapper/ext/CgiReplyBucketDataMapperExt.xml

@@ -5,7 +5,7 @@
   <update id="updateBucketDataTitleCoverByGhId">
       update cgi_reply_bucket_data
       set title = #{title},
-          cover = #{cover}
+          cover_url = #{cover}
       where gh_id = #{ghId}
         and mini_video_id = #{videoId}
         and is_delete = 0