From 912e8e01bf0311d3de8e1e21e9961fd6dd0b774c Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Wed, 14 Jan 2026 12:24:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=95=8F=E6=84=9F=E8=AF=8D?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SCCourseServiceImpl.java | 98 ++++++++++--------- 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/schoolNewsServ/study/src/main/java/org/xyzh/study/service/impl/SCCourseServiceImpl.java b/schoolNewsServ/study/src/main/java/org/xyzh/study/service/impl/SCCourseServiceImpl.java index d8972ee..a9805f6 100644 --- a/schoolNewsServ/study/src/main/java/org/xyzh/study/service/impl/SCCourseServiceImpl.java +++ b/schoolNewsServ/study/src/main/java/org/xyzh/study/service/impl/SCCourseServiceImpl.java @@ -126,17 +126,23 @@ public class SCCourseServiceImpl implements SCCourseService { // 查询所有节点 List nodes = courseNodeMapper.selectCourseNodesByChapterIDs(chapterIDs); - // 转换章节为CourseItemVO列表 - List chapterVOs = chapters.stream() - .map(CourseItemVO::fromChapter) - .collect(Collectors.toList()); - // 转换节点为CourseItemVO,并按章节ID分组 Map> nodesMap = nodes.stream() .map(CourseItemVO::fromNode) .collect(Collectors.groupingBy(CourseItemVO::getChapterID)); - // 设置章节列表和章节节点映射 + // 转换章节为CourseItemVO列表,并将节点嵌入到章节的chapters字段中 + List chapterVOs = chapters.stream() + .map(chapter -> { + CourseItemVO chapterVO = CourseItemVO.fromChapter(chapter); + // 将该章节的节点设置到chapters字段中(前端编辑组件使用这个结构) + List chapterNodes = nodesMap.getOrDefault(chapter.getChapterID(), new ArrayList<>()); + chapterVO.setChapters(chapterNodes); + return chapterVO; + }) + .collect(Collectors.toList()); + + // 设置章节列表和章节节点映射(保留chapterNodes用于其他场景) courseItemVO.setChapters(chapterVOs); courseItemVO.setChapterNodes(nodesMap); } @@ -525,37 +531,57 @@ public class SCCourseServiceImpl implements SCCourseService { courseMapper.updateCourse(course2); // 敏感词审核 + // nodeType: 0=文章资源, 1=富文本, 2=上传文件 List notPassList = new ArrayList<>(); for(TbCourseNode node: nodeList){ if(!node.getIsAudited()){ // 重新审核 int type = node.getNodeType(); - // auditService. - if(type==1){ //文章类型 - ResultDomain resourceDomain = resourceService.getResourceById(node.getResourceID()); - if (resourceDomain.isSuccess()) { - if (!resourceDomain.getData().getResource().getIsAudited()) { - ResultDomain pass = auditService.auditText(resourceDomain.getData().getResource().getTitle()+" "+resourceDomain.getData().getResource().getContent()); - if(!pass.isSuccess()){ - // 审核失败,标记课程状态为4(审核失败) - course.setStatus(4); - course.setUpdateTime(new Date()); - courseMapper.updateCourse(course); - auditService.sendAuditResultMessage(node.getCreator(), "课程节点:"+node.getName(), pass.getDataList()); + + if(type == 0){ // 文章资源类型 + if (node.getResourceID() != null && !node.getResourceID().trim().isEmpty()) { + ResultDomain resourceDomain = resourceService.getResourceById(node.getResourceID()); + if (resourceDomain.isSuccess()) { + if (!resourceDomain.getData().getResource().getIsAudited()) { + ResultDomain pass = auditService.auditText(resourceDomain.getData().getResource().getTitle()+" "+resourceDomain.getData().getResource().getContent()); + if(!pass.isSuccess()){ + // 审核失败,标记课程状态为4(审核失败) + course.setStatus(4); + course.setUpdateTime(new Date()); + courseMapper.updateCourse(course); + auditService.sendAuditResultMessage(node.getCreator(), "课程节点:"+node.getName(), pass.getDataList()); - resultDomain.fail("课程节点:"+node.getName()+"审核未通过"); - return resultDomain; - }else{ - // 更新文章的审核状态 - ResourceVO resource = new ResourceVO(); - resource.setResource(new TbResource()); - resource.getResource().setResourceID(node.getResourceID()); - resource.getResource().setIsAudited(true); - resourceService.updateResource(resource); + resultDomain.fail("课程节点:"+node.getName()+"审核未通过"); + return resultDomain; + }else{ + // 更新文章的审核状态 + ResourceVO resource = new ResourceVO(); + resource.setResource(new TbResource()); + resource.getResource().setResourceID(node.getResourceID()); + resource.getResource().setIsAudited(true); + resourceService.updateResource(resource); + } } } } - }else if (type == 2){ + } else if(type == 1){ // 富文本类型 + if (node.getContent() != null && !node.getContent().trim().isEmpty()) { + ResultDomain pass = auditService.auditText(node.getName() + " " + node.getContent()); + if(!pass.isSuccess()){ + // 审核失败,标记课程状态为4(审核失败) + course.setStatus(4); + course.setUpdateTime(new Date()); + courseMapper.updateCourse(course); + auditService.sendAuditResultMessage(node.getCreator(), "课程节点:"+node.getName(), pass.getDataList()); + resultDomain.fail("课程节点:"+node.getName()+"审核未通过"); + return resultDomain; + } else { + // 更新node审核状态 + node.setIsAudited(true); + courseNodeMapper.updateCourseNode(node); + } + } + } else if (type == 2){ // 上传文件类型 ResultDomain pass = auditService.auditByFileId(node.getResourceID()); if(!pass.isSuccess()){ // 审核失败,标记课程状态为4(审核失败) @@ -566,22 +592,6 @@ public class SCCourseServiceImpl implements SCCourseService { resultDomain.fail("课程节点:"+node.getName()+"审核未通过"); return resultDomain; } - }else{ - ResultDomain pass = auditService.auditText(node.getContent()); - if(!pass.isSuccess()){ - // 审核失败,标记课程状态为3(审核失败) - course.setStatus(3); - course.setUpdateTime(new Date()); - courseMapper.updateCourse(course); - auditService.sendAuditResultMessage(node.getCreator(), "课程节点:"+node.getName(), pass.getDataList()); - - resultDomain.fail("课程节点:"+node.getName()+"审核未通过"); - return resultDomain; - }else{ - // 更新node审核状态 - node.setIsAudited(true); - courseNodeMapper.updateCourseNode(node); - } } node.setIsAudited(true); notPassList.add(node);