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 380310d8..19810333 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 @@ -424,10 +424,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 1e42da60..7f62af7d 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 @@ -321,16 +321,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 0881a770..ad682ae6 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 @@ -1011,7 +1011,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()); @@ -1025,7 +1025,16 @@ public class CourseServiceImpl implements ICourseService { courseTagService.createTag(courseTagRelationDto); } } + }*/ + + 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 {