| 
					
				 | 
			
			
				@@ -40,6 +40,9 @@ import com.tzld.longarticle.recommend.server.util.LarkRobotUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.util.feishu.FeishuMessageSender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xxl.job.core.biz.model.ReturnT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xxl.job.core.handler.annotation.XxlJob; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.Getter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.Setter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.experimental.Accessors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.dao.DuplicateKeyException; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,6 +122,22 @@ public class XxlJobService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ReturnT.SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Setter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Accessors(chain = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static class PlanErrorMsg { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private String date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PlanErrorMsgDetail> errorMsgDetails; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Setter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Accessors(chain = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static class PlanErrorMsgDetail { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private String accountName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private String errorMsg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void sendFeishuPublishPlanNotPushWarn(NotPublishPlan publishPlan) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long todayStart = DateUtils.getTodayStart(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PublishAccount> publishAccounts = aigcBaseMapper.getPublishAccounts(publishPlan.getPlanId(), todayStart); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,11 +147,23 @@ public class XxlJobService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (StringUtils.hasText(publishPlan.getErrorMsg()) && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                publishPlan.getErrorMsg().contains("45028") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        || publishPlan.getErrorMsg().contains("48004") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        || publishPlan.getErrorMsg().contains("50002") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        )) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PlanErrorMsg planErrorMsg = JSONObject.parseObject(publishPlan.getErrorMsg(), PlanErrorMsg.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (planErrorMsg == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (CollectionUtil.isEmpty(planErrorMsg.getErrorMsgDetails())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Iterator<PlanErrorMsgDetail> iterator = planErrorMsg.getErrorMsgDetails().iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while (iterator.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PlanErrorMsgDetail errorMsgDetail = iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (errorMsgDetail.getErrorMsg().contains("45028") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    || errorMsgDetail.getErrorMsg().contains("48004") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    || errorMsgDetail.getErrorMsg().contains("50002")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iterator.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                accountNames.remove(errorMsgDetail.getAccountName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtil.isEmpty(planErrorMsg.getErrorMsgDetails())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.RECOMMEND.getRobotId(), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +173,7 @@ public class XxlJobService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + "预计数量: " + publishPlan.getExpectCount() + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + "实际数量: " + publishPlan.getPublishCount() + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + "发送失败账号: " + JSONObject.toJSONString(accountNames) + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        + "发布计划失败原因: " + publishPlan.getErrorMsg() + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        + "发布计划失败原因: " + JSONObject.toJSONString(planErrorMsg) + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + "发布时间: " + publishPlan.getPublishPushTime() + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + "<at user_id=\"all\">所有人</at> "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |