diff --git a/src/main/java/xyz/playedu/api/listener/CourseDestroyListener.java b/src/main/java/xyz/playedu/api/listener/CourseDestroyListener.java index 42a0b90..13f624c 100644 --- a/src/main/java/xyz/playedu/api/listener/CourseDestroyListener.java +++ b/src/main/java/xyz/playedu/api/listener/CourseDestroyListener.java @@ -5,6 +5,8 @@ import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import xyz.playedu.api.event.CourseDestroyEvent; import xyz.playedu.api.service.CourseDepartmentService; +import xyz.playedu.api.service.UserCourseHourRecordService; +import xyz.playedu.api.service.UserCourseRecordService; import xyz.playedu.api.service.internal.ResourceCourseCategoryService; /** @@ -21,6 +23,12 @@ public class CourseDestroyListener { @Autowired private ResourceCourseCategoryService courseCategoryService; + @Autowired + private UserCourseRecordService userCourseRecordService; + + @Autowired + private UserCourseHourRecordService userCourseHourRecordService; + @EventListener public void departmentRelateRemove(CourseDestroyEvent event) { courseDepartmentService.removeByCourseId(event.getCourseId()); @@ -31,4 +39,10 @@ public class CourseDestroyListener { courseCategoryService.removeByCourseId(event.getCourseId()); } + @EventListener + public void removeUserRecords(CourseDestroyEvent event) { + userCourseRecordService.removeByCourseId(event.getCourseId()); + userCourseHourRecordService.removeByCourseId(event.getCourseId()); + } + } diff --git a/src/main/java/xyz/playedu/api/service/UserCourseHourRecordService.java b/src/main/java/xyz/playedu/api/service/UserCourseHourRecordService.java index e7d0ecf..a9b3c4f 100644 --- a/src/main/java/xyz/playedu/api/service/UserCourseHourRecordService.java +++ b/src/main/java/xyz/playedu/api/service/UserCourseHourRecordService.java @@ -20,4 +20,6 @@ public interface UserCourseHourRecordService extends IService getRecords(Integer userId, Integer courseId); List getLatestCourseIds(Integer userId, Integer size); + + void removeByCourseId(Integer courseId); } diff --git a/src/main/java/xyz/playedu/api/service/UserCourseRecordService.java b/src/main/java/xyz/playedu/api/service/UserCourseRecordService.java index 87857f9..9594a25 100644 --- a/src/main/java/xyz/playedu/api/service/UserCourseRecordService.java +++ b/src/main/java/xyz/playedu/api/service/UserCourseRecordService.java @@ -23,4 +23,6 @@ public interface UserCourseRecordService extends IService { PaginationResult paginate(int page, int size, CourseUserPaginateFilter filter); void destroy(Integer courseId, List ids); + + void removeByCourseId(Integer courseId); } diff --git a/src/main/java/xyz/playedu/api/service/impl/UserCourseHourRecordServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/UserCourseHourRecordServiceImpl.java index 02974c8..a1be9f9 100644 --- a/src/main/java/xyz/playedu/api/service/impl/UserCourseHourRecordServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/UserCourseHourRecordServiceImpl.java @@ -84,6 +84,11 @@ public class UserCourseHourRecordServiceImpl extends ServiceImpl getLatestCourseIds(Integer userId, Integer size) { return getBaseMapper().getUserLatestRecords(userId, size); } + + @Override + public void removeByCourseId(Integer courseId) { + remove(query().getWrapper().eq("course_id", courseId)); + } } diff --git a/src/main/java/xyz/playedu/api/service/impl/UserCourseRecordServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/UserCourseRecordServiceImpl.java index 1c99007..1e90e78 100644 --- a/src/main/java/xyz/playedu/api/service/impl/UserCourseRecordServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/UserCourseRecordServiceImpl.java @@ -94,6 +94,11 @@ public class UserCourseRecordServiceImpl extends ServiceImpl ids) { remove(query().getWrapper().in("id", ids).eq("course_id", courseId)); } + + @Override + public void removeByCourseId(Integer courseId) { + remove(query().getWrapper().eq("course_id", courseId)); + } }