From d30853db33e3765d9054a63637a607eb68c68ed0 Mon Sep 17 00:00:00 2001 From: 670788339 <670788339@qq.com> Date: Fri, 14 Nov 2025 09:59:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A7=E7=89=88=E6=9C=AC=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/course/api/CourseAuditApi.java | 15 +++++++++++++-- .../xboe/module/course/api/CourseManageApi.java | 3 +++ .../course/service/impl/CourseServiceImpl.java | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseAuditApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseAuditApi.java index afe477e7..c5d92d5d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseAuditApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseAuditApi.java @@ -422,10 +422,21 @@ public class CourseAuditApi extends ApiBaseController{ dto.getCourse().setEnabled(true);//设置启用状态问题 dto.getCourse().setPublished(false);//重新提交审核设置为未发布状态 try { - log.info("-------- 标签相关开始 ------- 课程ID = {} " , dto.getCourse().getId()); + log.info("------课程提审-- 标签相关开始 ------- 课程ID = {} " , dto.getCourse().getId()); Course oldCourse = StringUtils.isBlank(dto.getCourse().getId()) ? null : courseService.get(dto.getCourse().getId()); + if(oldCourse!=null && StringUtils.isNotEmpty(oldCourse.getTags())){ + String[] tagArray = oldCourse.getTags().split(","); + // 检查每个元素是否为纯数字 + for (String tag : tagArray) { + if (!tag.matches("\\d+")) { // 使用正则表达式检查是否为纯数字 + log.info("-------- 不是纯数字 ------- tag = {} " , tag); + oldCourse.setTags(null); // 兼容 + break; + } + } + } tagService.updateTags(oldCourse,dto.getCourse(),cuser); - log.info("-------- 标签相关结束 -------"); + log.info("-----课程提审--- 标签相关结束 -------"); courseService.submitAndPublish(dto,cuser.getAccountId(),cuser.getName()); log.info("---------------在线课开始同步到讲师管理 ------- token = " + token); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java index 89e93722..0449fd1f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java @@ -286,16 +286,19 @@ public class CourseManageApi extends ApiBaseController{ log.info("-------- 标签相关开始 ------- 课程ID = {} " , dto.getCourse().getId()); CurrentUser userInfo = getCurrent(); Course oldCourse = StringUtils.isBlank(dto.getCourse().getId()) ? null : courseService.get(dto.getCourse().getId()); + log.info("-------- 标签相关 ------- oldtags = {} " , oldCourse.getTags()); if(oldCourse!=null && StringUtils.isNotEmpty(oldCourse.getTags())){ String[] tagArray = oldCourse.getTags().split(","); // 检查每个元素是否为纯数字 for (String tag : tagArray) { if (!tag.matches("\\d+")) { // 使用正则表达式检查是否为纯数字 + log.info("-------- 不是纯数字 ------- tag = {} " , tag); oldCourse.setTags(null); // 兼容 break; } } } + log.info("-------- 标签相关 updateTags ------- oldtags = {} " , oldCourse.getTags()); tagService.updateTags(oldCourse,dto.getCourse(),userInfo); log.info("-------- 标签相关结束 -------"); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index d9bac9eb..23053f3a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -997,7 +997,7 @@ public class CourseServiceImpl implements ICourseService { if (c.getVisible() == null) { c.setVisible(true); } - if (c.getTags() != null && !c.getTags().isEmpty()){ + /*if (c.getTags() != null && !c.getTags().isEmpty()){ CourseTagRelationDto courseTagRelationDto = new CourseTagRelationDto(); courseTagRelationDto.setCourseId(c.getId()); courseTagRelationDto.setSysType1(c.getSysType1()); @@ -1011,7 +1011,7 @@ public class CourseServiceImpl implements ICourseService { courseTagService.createTag(courseTagRelationDto); } } - } + }*/ courseDao.update(c); c.setSysVersion(courseDao.getVersion(c.getId())); full.getCourse().setSysVersion(c.getSysVersion()); From 5848f431a469443557591c0b20603163d11f4807 Mon Sep 17 00:00:00 2001 From: 670788339 <670788339@qq.com> Date: Fri, 14 Nov 2025 14:41:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/service/impl/CourseServiceImpl.java | 9 +++++++++ .../module/course/service/impl/CourseTagServiceImpl.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index 23053f3a..29182fae 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -1012,6 +1012,15 @@ public class CourseServiceImpl implements ICourseService { } } }*/ + + if (!nowCourse.getSysVersion().equals(c.getSysVersion())) { + log.warn("乐观锁冲突 - 课程ID: {}, 期望版本: {}, 实际版本: {}", + c.getId(), c.getSysVersion(), nowCourse.getSysVersion()); +// throw new RuntimeException("数据已被其他用户修改,请刷新页面后重试"); + // 基本无概率同时修改同一课程 如有 以最后提交为准 + c.setSysVersion(courseDao.getVersion(c.getId())); + } + courseDao.update(c); c.setSysVersion(courseDao.getVersion(c.getId())); full.getCourse().setSysVersion(c.getSysVersion()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTagServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTagServiceImpl.java index d9672110..744f3456 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTagServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTagServiceImpl.java @@ -414,7 +414,7 @@ public class CourseTagServiceImpl implements ICourseTagService { List newTagIds = getTagIdsFromCourse(newCourse); log.info(" --- 旧标签 oldTagIds = {} " , oldTagIds); log.info(" --- 新修改 newTagIds = {} " , newTagIds); - if (oldCourse == null) { + if (oldCourse == null || oldTagIds.isEmpty()) { // 新增课程 - 处理所有新标签 handleNewCourseTags(newCourse, newTagIds, userInfo); } else {