diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java index 47fe360f..fe942b3d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java @@ -342,4 +342,5 @@ public interface ICourseService { List findByIds(List courseIds); + void deletedStudyResourceBatchByCourseIdAndType(String courseId,Integer courseType); } 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 a364cf1d..6e7e311b 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 @@ -1,5 +1,6 @@ package com.xboe.module.course.service.impl; +import java.io.IOException; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -20,6 +21,11 @@ import com.xboe.core.orm.*; import com.xboe.school.study.dao.StudyCourseDao; import com.xboe.school.study.entity.StudyCourse; import org.apache.commons.lang3.StringUtils; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestHighLevelClient; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.reindex.DeleteByQueryRequest; import org.hibernate.mapping.IdGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; @@ -116,6 +122,9 @@ public class CourseServiceImpl implements ICourseService { @Autowired(required = false) private IEventDataSender eventSender; + @Resource + RestHighLevelClient restHighLevelClient; + /** @@ -855,12 +864,14 @@ public class CourseServiceImpl implements ICourseService { log.error("未配置事件消息发送的实现"); } } + + // 删除ES数据 + deletedStudyResourceBatchByCourseIdAndType(id,c.getType()); } else { //彻底删除,课件设置为无课程状态 courseDao.setDeleted(id); } //记录删除日志信息 - } @Override @@ -1987,5 +1998,17 @@ public class CourseServiceImpl implements ICourseService { return courseDao.findListByHql("Select new Course(id,studys,score) from Course where id in(?1)", ids); } - + @Override + public void deletedStudyResourceBatchByCourseIdAndType(String courseId, Integer courseType) { + DeleteByQueryRequest request = new DeleteByQueryRequest("new_study_resource"); + BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); + boolQueryBuilder.must(QueryBuilders.matchQuery("courseId", courseId)); + boolQueryBuilder.must(QueryBuilders.matchQuery("courseType", courseType)); + request.setQuery(boolQueryBuilder); + try { + restHighLevelClient.deleteByQuery(request, RequestOptions.DEFAULT); + } catch (IOException e) { + e.printStackTrace(); + } + } }