| 
														
															@@ -40,6 +40,9 @@ import com.tzld.longarticle.recommend.server.util.LarkRobotUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.tzld.longarticle.recommend.server.util.feishu.FeishuMessageSender; 
														 | 
														
														 | 
														
															 import com.tzld.longarticle.recommend.server.util.feishu.FeishuMessageSender; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.xxl.job.core.biz.model.ReturnT; 
														 | 
														
														 | 
														
															 import com.xxl.job.core.biz.model.ReturnT; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.xxl.job.core.handler.annotation.XxlJob; 
														 | 
														
														 | 
														
															 import com.xxl.job.core.handler.annotation.XxlJob; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import lombok.Getter; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import lombok.Setter; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import lombok.experimental.Accessors; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import lombok.extern.slf4j.Slf4j; 
														 | 
														
														 | 
														
															 import lombok.extern.slf4j.Slf4j; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.beans.factory.annotation.Autowired; 
														 | 
														
														 | 
														
															 import org.springframework.beans.factory.annotation.Autowired; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.dao.DuplicateKeyException; 
														 | 
														
														 | 
														
															 import org.springframework.dao.DuplicateKeyException; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -119,6 +122,22 @@ public class XxlJobService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return ReturnT.SUCCESS; 
														 | 
														
														 | 
														
															         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) { 
														 | 
														
														 | 
														
															     private void sendFeishuPublishPlanNotPushWarn(NotPublishPlan publishPlan) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Long todayStart = DateUtils.getTodayStart(); 
														 | 
														
														 | 
														
															         Long todayStart = DateUtils.getTodayStart(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<PublishAccount> publishAccounts = aigcBaseMapper.getPublishAccounts(publishPlan.getPlanId(), todayStart); 
														 | 
														
														 | 
														
															         List<PublishAccount> publishAccounts = aigcBaseMapper.getPublishAccounts(publishPlan.getPlanId(), todayStart); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -128,11 +147,23 @@ public class XxlJobService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else { 
														 | 
														
														 | 
														
															         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return; 
														 | 
														
														 | 
														
															             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; 
														 | 
														
														 | 
														
															             return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.RECOMMEND.getRobotId(), 
														 | 
														
														 | 
														
															         FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.RECOMMEND.getRobotId(), 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -142,7 +173,7 @@ public class XxlJobService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         + "预计数量: " + publishPlan.getExpectCount() + "\n" 
														 | 
														
														 | 
														
															                         + "预计数量: " + publishPlan.getExpectCount() + "\n" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         + "实际数量: " + publishPlan.getPublishCount() + "\n" 
														 | 
														
														 | 
														
															                         + "实际数量: " + publishPlan.getPublishCount() + "\n" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         + "发送失败账号: " + JSONObject.toJSONString(accountNames) + "\n" 
														 | 
														
														 | 
														
															                         + "发送失败账号: " + JSONObject.toJSONString(accountNames) + "\n" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        + "发布计划失败原因: " + publishPlan.getErrorMsg() + "\n" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        + "发布计划失败原因: " + JSONObject.toJSONString(planErrorMsg) + "\n" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         + "发布时间: " + publishPlan.getPublishPushTime() + "\n" 
														 | 
														
														 | 
														
															                         + "发布时间: " + publishPlan.getPublishPushTime() + "\n" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         + "<at user_id=\"all\">所有人</at> "); 
														 | 
														
														 | 
														
															                         + "<at user_id=\"all\">所有人</at> "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 |