diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java index 6574c1bd..7f47f851 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java @@ -11,6 +11,9 @@ import com.boe.feign.api.serverall.entity.UserData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException; import com.xboe.api.ThirdApi; +import com.xboe.core.orm.FieldFilters; +import com.xboe.core.orm.IFieldFilter; +import com.xboe.core.orm.QueryBuilder; import com.xboe.data.outside.IOutSideDataService; import com.xboe.module.course.entity.CourseTag; import com.xboe.module.course.service.*; @@ -318,10 +321,23 @@ public class CourseFullTextApi extends ApiBaseController{ String tagName = dto.getKeyword(); log.info("课程查询 关键字 = " + tagName); if (StringUtils.isNotEmpty(tagName)){ - CourseTag courseTag = courseTagService.getTagByName(tagName); - log.info("课程查询 关键字对应标签 = " + courseTag); - if (courseTag != null){ - paras.setTags(courseTag.getId()); + //精准查询 +// CourseTag courseTag = courseTagService.getTagByName(tagName); +// log.info("课程查询 关键字对应标签 = " + courseTag); +// if (courseTag != null){ +// paras.setTags(courseTag.getId()); +// } + // 获取所有标签并进行模糊匹配 + List allTags = courseTagService.getAllTags(); + List matchedTagIds = new ArrayList<>(); + for (CourseTag tag : allTags) { + // 使用模糊匹配(不区分大小写) + if (tag.getTagName() != null && tag.getTagName().toLowerCase().contains(tagName.toLowerCase())) { + matchedTagIds.add(tag.getId()); + } + } + if (!matchedTagIds.isEmpty()) { + paras.setTags(String.join(",", matchedTagIds)); } } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseTagService.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseTagService.java index adbe7b3b..75192df1 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseTagService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseTagService.java @@ -92,4 +92,6 @@ public interface ICourseTagService { CourseTag getTagByName(String tagName); void updateTags(Course oldCourse,Course newCourse,CurrentUser userInfo); + + List getAllTags(); } 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 b7d3f5ac..d9672110 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 @@ -424,6 +424,17 @@ public class CourseTagServiceImpl implements ICourseTagService { log.info("完成课程标签更新: courseId={}", newCourse != null ? newCourse.getId() : "null"); } + @Override + public List getAllTags() { + QueryBuilder query=QueryBuilder.from(CourseTag.class); + List filters = new ArrayList<>(); + filters.add(FieldFilters.eq("deleted",false));//未删除 + filters.add(FieldFilters.eq("status",0));//正式标签 + query.addFilters(filters); + List courseTagList = courseTagDao.findList(query.builder()); + return courseTagList; + } + /** * 从课程对象中提取标签ID列表 */