| 
					
				 | 
			
			
				@@ -8,6 +8,7 @@ import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.util.concurrent.ThreadFactoryBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.CommonThreadPoolExecutor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.common.enums.FieshuTableColumnDataTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.aigc.ProduceContentAuditStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.recommend.AccountBusinessTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.recommend.ContentPoolEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,6 +27,7 @@ import com.tzld.longarticle.recommend.server.model.entity.crawler.LongArticlesVi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.longArticle.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.param.ArticleFindSourceParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.param.TitleHisCacheParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.vo.FeishuTableDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.remote.ODPSManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.repository.aigc.ProducePlanRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.repository.crawler.GetOffVideoCrawlerRepository; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -197,6 +199,8 @@ public class XxlJobService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PublishPlanAccountNotifyDTO> notifyAccounts = aigcBaseMapper.checkPublishPlanAccount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, List<PublishPlanAccountNotifyDTO>> notifyAccountMap = notifyAccounts.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .collect(Collectors.groupingBy(PublishPlanAccountNotifyDTO::getPlanId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FeishuTableDTO.Column> columns = buildCheckPublishPlanAccountColumns(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<JSONObject> rows = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (Map.Entry<String, List<PublishPlanAccountNotifyDTO>> entry : notifyAccountMap.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String planId = entry.getKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<PublishPlanAccountNotifyDTO> list = entry.getValue(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -206,16 +210,37 @@ public class XxlJobService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String planName = list.get(0).getPlanName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<String> accountNames = list.stream().map(PublishPlanAccountNotifyDTO::getAccountName).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.info("checkPublishPlanAccount planId: {}, planName: {}, accountNames: {}", planId, planName, JSONObject.toJSONString(accountNames)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.RECOMMEND.getRobotId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "发布计划开启账号未开启计划报警\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            + "发布计划ID: " + planId + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            + "发布计划名称: " + planName + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            + "开关关闭账号: " + JSONObject.toJSONString(accountNames) + "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            + "<at user_id=\"all\">所有人</at> "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONObject row = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            row.put("plan_id", planId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            row.put("plan_name", planName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            row.put("account_names", accountNames); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rows.add(row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FeishuTableDTO tableDTO = FeishuTableDTO.createTable("发布计划开启账号未开启计划报警", columns, rows); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject content = JSONObject.parseObject(JSONObject.toJSONString(tableDTO)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 无法自动删除 发送飞书通知 人工删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject bodyParam = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bodyParam.put("msg_type", "interactive"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bodyParam.put("card", content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.RECOMMEND.getRobotId(), bodyParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ReturnT.SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<FeishuTableDTO.Column> buildCheckPublishPlanAccountColumns() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FeishuTableDTO.Column> columns = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FeishuTableDTO.Column accountNameColumn = FeishuTableDTO.createFeishuColumns( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                FieshuTableColumnDataTypeEnum.TEXT.getType(), "plan_id", "发布计划ID", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        columns.add(accountNameColumn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FeishuTableDTO.Column accountGhIdColumn = FeishuTableDTO.createFeishuColumns( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                FieshuTableColumnDataTypeEnum.TEXT.getType(), "plan_name", "发布计划名称", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        columns.add(accountGhIdColumn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FeishuTableDTO.Column accountTypeColumn = FeishuTableDTO.createFeishuColumns( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                FieshuTableColumnDataTypeEnum.TEXT.getType(), "account_names", "开关关闭账号", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        columns.add(accountTypeColumn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return columns; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @XxlJob("checkColdCrawlerPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ReturnT<String> checkColdCrawlerPlan(String param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         long timeStamp = DateUtils.getBeforeDayStart(1); 
			 |