Browse Source

Merge branch 'wyp/1219-producePlanAuditCheck' of Server/long-article-recommend into master

wangyunpeng 6 months ago
parent
commit
fec925d49c

+ 1 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/common/enums/recommend/FeishuRobotIdEnum.java

@@ -10,6 +10,7 @@ public enum FeishuRobotIdEnum {
     JOB("定时任务报警群", "186c9798-5b6a-4ff8-b7fc-4ce4b6ea5076"),
     DAILY("长文每日更新报警群", "b44333f2-16c0-4cb1-af01-d135f8704410"),
     ARTICLE_DELETE("文章删除报警群", "2262caec-3f52-4a93-9fa5-da2382a21482"),
+    ARTICLE_SAFE_AUDIT("长文内容安全审核群", "ea26981a-cf97-4eeb-b1e8-1c4a9f895090"),
 
     ;
 

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

@@ -257,7 +257,7 @@ public class XxlJobService {
             timeStamp = DateUtils.getStartOfDay(param, "yyyyMMdd");
         }
         timeStamp = timeStamp * 1000;
-        List<String> planIds = Arrays.asList("20241030070010871546586","20240802080355355308981","20240802021606053813696");
+        List<String> planIds = Arrays.asList("20241030070010871546586", "20240802080355355308981", "20240802021606053813696");
         List<ProducePlan> producePlans = producePlanRepository.findByIdIn(planIds);
         Map<String, String> producePlanMap = producePlans.stream().collect(Collectors.toMap(ProducePlan::getId, ProducePlan::getName));
         List<ProducePlanAuditCheckDTO> producePlanList = aigcBaseMapper.getColdProducePlanAudit(
@@ -293,6 +293,64 @@ public class XxlJobService {
         return ReturnT.SUCCESS;
     }
 
+    @XxlJob("checkProducePlanAudit")
+    public ReturnT<String> checkProducePlanAudit(String param) {
+        long timeStamp = DateUtils.getBeforeDayStart(1);
+        if (StringUtils.hasText(param)) {
+            timeStamp = DateUtils.getStartOfDay(param, "yyyyMMdd");
+        }
+        timeStamp = timeStamp * 1000;
+        List<String> planIds = Arrays.asList("20240802143345289374071", "20240802171417146947657",
+                "20240804003153130851174", "20241030070010871546586", "20240802080355355308981",
+                "20240802021606053813696");
+        List<ProducePlan> producePlans = producePlanRepository.findByIdIn(planIds);
+        Map<String, String> producePlanMap = producePlans.stream().collect(Collectors.toMap(ProducePlan::getId, ProducePlan::getName));
+        List<ProducePlanAuditCheckDTO> producePlanList = aigcBaseMapper.getColdProducePlanAudit(
+                timeStamp, timeStamp + 86400000, planIds);
+        Map<String, List<ProducePlanAuditCheckDTO>> producePlanAuditMap = producePlanList.stream()
+                .collect(Collectors.groupingBy(ProducePlanAuditCheckDTO::getPlanId));
+        JSONArray jsonArray = new JSONArray();
+        Integer totalAuditNum = 0, totalAuditPassNum = 0, totalWaitingAuditNum = 0;
+        for (String planId : planIds) {
+            JSONObject jsonObject = new JSONObject();
+            List<ProducePlanAuditCheckDTO> auditCheckDTOList = producePlanAuditMap.get(planId);
+            Integer yesterdayAuditNum = 0, yesterdayAuditPassNum = 0, waitingAuditNum = 0;
+            if (CollectionUtils.isNotEmpty(auditCheckDTOList)) {
+                for (ProducePlanAuditCheckDTO producePlanAuditCheckDTO : auditCheckDTOList) {
+                    if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.waiting.getVal())) {
+                        waitingAuditNum = producePlanAuditCheckDTO.getNum();
+                        totalWaitingAuditNum += waitingAuditNum;
+                    } else if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.pass.getVal())) {
+                        yesterdayAuditPassNum = producePlanAuditCheckDTO.getNum();
+                        totalAuditPassNum += yesterdayAuditPassNum;
+                        yesterdayAuditNum += producePlanAuditCheckDTO.getNum();
+                        totalAuditNum += yesterdayAuditNum;
+                    } else if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.reject.getVal())) {
+                        yesterdayAuditNum += producePlanAuditCheckDTO.getNum();
+                        totalAuditNum += yesterdayAuditNum;
+                    }
+                }
+            }
+            jsonObject.put("planId", planId);
+            jsonObject.put("planName", producePlanMap.get(planId));
+            jsonObject.put("yesterdayAuditNum", yesterdayAuditNum);
+            jsonObject.put("yesterdayAuditPassNum", yesterdayAuditPassNum);
+            jsonArray.add(jsonObject);
+        }
+        String alertMsg = "【长文生成计划审核量通知】\n";
+        for (Object o : jsonArray) {
+            JSONObject jsonObject = JSONObject.parseObject(o.toString());
+            alertMsg += "计划名: " + jsonObject.getString("planName") + "\n";
+            alertMsg += "昨日审核数量: " + jsonObject.getInteger("yesterdayAuditNum") +
+                    ",昨日审核通过数量: " + jsonObject.getInteger("yesterdayAuditPassNum") + "\n";
+        }
+        alertMsg += "------------------------------------\n";
+        alertMsg += "昨日总审核数量: " + totalAuditNum + ",总审核通过数量: " + totalAuditPassNum;
+        log.info("checkProducePlanAudit alertMsg: {}", alertMsg);
+        FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.ARTICLE_SAFE_AUDIT.getRobotId(), alertMsg);
+        return ReturnT.SUCCESS;
+    }
+
     @XxlJob("migrateCrawlerRootSourceId")
     public ReturnT<String> migrateCrawlerRootSourceId(String param) {
         try {

+ 5 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/XxlJobController.java

@@ -34,6 +34,11 @@ public class XxlJobController {
         service.checkColdProducePlanAudit(dateStr);
     }
 
+    @GetMapping("/checkProducePlanAudit")
+    public void checkProducePlanAudit(String dateStr) {
+        service.checkProducePlanAudit(dateStr);
+    }
+
     @GetMapping("/migrateCrawlerRootSourceId")
     public void migrateCrawlerRootSourceId(String dateStr) {
         service.migrateCrawlerRootSourceId(dateStr);