Browse Source

发布计划校验增加账号

wangyunpeng 9 months ago
parent
commit
87e89891d4

+ 3 - 4
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/aigc/AigcBaseMapper.java

@@ -1,10 +1,7 @@
 package com.tzld.longarticle.recommend.server.mapper.aigc;
 
 import com.tzld.longarticle.recommend.server.model.dto.NotPublishPlan;
-import com.tzld.longarticle.recommend.server.model.entity.aigc.CrawlerPlan;
-import com.tzld.longarticle.recommend.server.model.entity.aigc.CrawlerPlanResultRel;
-import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishContent;
-import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishPlanMiniprogramTask;
+import com.tzld.longarticle.recommend.server.model.entity.aigc.*;
 import com.tzld.longarticle.recommend.server.model.param.MiniprogramTaskParam;
 import com.tzld.longarticle.recommend.server.model.param.PublishContentParam;
 import org.apache.ibatis.annotations.Mapper;
@@ -25,4 +22,6 @@ public interface AigcBaseMapper {
     List<NotPublishPlan> getNotPublishPlan();
 
     Integer getPublishPlanPushType(String planId);
+
+    List<PublishAccount> getPublishAccounts(String planId, Long todayStart);
 }

+ 12 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/XxlJobService.java

@@ -1,7 +1,10 @@
 package com.tzld.longarticle.recommend.server.service;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.tzld.longarticle.recommend.server.mapper.aigc.AigcBaseMapper;
 import com.tzld.longarticle.recommend.server.model.dto.NotPublishPlan;
+import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount;
 import com.tzld.longarticle.recommend.server.util.DateUtils;
 import com.tzld.longarticle.recommend.server.util.feishu.FeishuMessageSender;
 import com.xxl.job.core.biz.model.ReturnT;
@@ -12,7 +15,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import java.time.LocalTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -44,12 +49,19 @@ public class XxlJobService {
     }
 
     private void sendFeishuPublishPlanNotPushWarn(NotPublishPlan publishPlan) {
+        Long todayStart = DateUtils.getTodayStart();
+        List<PublishAccount> publishAccounts = aigcBaseMapper.getPublishAccounts(publishPlan.getPlanId(), todayStart);
+        List<String> accountNames = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(publishAccounts)) {
+            accountNames = publishAccounts.stream().map(PublishAccount::getName).collect(Collectors.toList());
+        }
         FeishuMessageSender.sendWebHookMessage("07026a9f-43f5-448b-ba40-a8d71bd6e634",
                 "发布计划超1H未发送完成\n"
                         + "发布计划ID: " + publishPlan.getPlanId() + "\n"
                         + "发布计划名称: " + publishPlan.getPlanName() + "\n"
                         + "预计数量: " + publishPlan.getExpectCount() + "\n"
                         + "实际数量: " + publishPlan.getPublishCount() + "\n"
+                        + "发送失败账号: " + JSONObject.toJSONString(accountNames) + "\n"
                         + "发布计划失败原因: " + publishPlan.getErrorMsg() + "\n"
                         + "发布时间: " + publishPlan.getPublishPushTime() + "\n"
                         + "<at user_id=\"all\">所有人</at> ");

+ 9 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/util/DateUtils.java

@@ -206,4 +206,13 @@ public final class DateUtils {
         System.out.println(new SimpleDateFormat("HH").format(calendar.getTime()));
 
     }
+
+    public static Long getTodayStart() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar.getTime().getTime();
+    }
 }

+ 12 - 0
long-article-recommend-service/src/main/resources/mapper/aigc/AigcBaseMapper.xml

@@ -86,5 +86,17 @@
         select push_type from publish_plan_setting where plan_id = #{planId}
     </select>
 
+    <select id="getPublishAccounts"
+            resultType="com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount">
+        SELECT account.*
+        FROM publish_plan_account planAccount
+        join publish_account account on planAccount.account_id = account.id
+        left join publish_content content
+            on content.publish_account_id = planAccount.account_id
+           and content.plan_id = planAccount.plan_id
+           and content.publish_timestamp > #{todayStart}
+        WHERE planAccount.plan_id = #{planId} and content.id is null
+    </select>
+
 
 </mapper>