diff --git a/playedu-api/src/main/java/xyz/playedu/api/controller/backend/UserController.java b/playedu-api/src/main/java/xyz/playedu/api/controller/backend/UserController.java index fa4f04b..b33f520 100644 --- a/playedu-api/src/main/java/xyz/playedu/api/controller/backend/UserController.java +++ b/playedu-api/src/main/java/xyz/playedu/api/controller/backend/UserController.java @@ -515,6 +515,10 @@ public class UserController { UserCourseHourRecordCourseCountMapper::getCourseId, UserCourseHourRecordCourseCountMapper::getTotal)); + // 获取学员每个课程最早的学习课时记录 + List perCourseEarliestRecords = + userCourseHourRecordService.getUserPerCourseEarliestRecord(id); + HashMap data = new HashMap<>(); data.put("open_courses", openCourses); data.put("departments", departments); @@ -524,6 +528,10 @@ public class UserController { userCourseRecords.stream() .collect(Collectors.toMap(UserCourseRecord::getCourseId, e -> e))); data.put("user_course_hour_count", userCourseHourCount); + data.put( + "per_course_earliest_records", + perCourseEarliestRecords.stream() + .collect(Collectors.toMap(UserCourseHourRecord::getCourseId, e -> e))); return JsonResponse.data(data); } diff --git a/playedu-course/src/main/java/xyz/playedu/course/mapper/UserCourseHourRecordMapper.java b/playedu-course/src/main/java/xyz/playedu/course/mapper/UserCourseHourRecordMapper.java index 467c2c5..277637b 100644 --- a/playedu-course/src/main/java/xyz/playedu/course/mapper/UserCourseHourRecordMapper.java +++ b/playedu-course/src/main/java/xyz/playedu/course/mapper/UserCourseHourRecordMapper.java @@ -48,4 +48,6 @@ public interface UserCourseHourRecordMapper extends BaseMapper paginate(UserCourseHourRecordPaginateFilter filter); Long paginateCount(UserCourseHourRecordPaginateFilter filter); + + List getUserPerCourseEarliestRecord(Integer userId); } diff --git a/playedu-course/src/main/java/xyz/playedu/course/service/UserCourseHourRecordService.java b/playedu-course/src/main/java/xyz/playedu/course/service/UserCourseHourRecordService.java index 35051e5..f30920a 100644 --- a/playedu-course/src/main/java/xyz/playedu/course/service/UserCourseHourRecordService.java +++ b/playedu-course/src/main/java/xyz/playedu/course/service/UserCourseHourRecordService.java @@ -66,4 +66,6 @@ public interface UserCourseHourRecordService extends IService paginate( int page, int size, UserCourseHourRecordPaginateFilter filter); + + List getUserPerCourseEarliestRecord(Integer userId); } diff --git a/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseHourRecordServiceImpl.java b/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseHourRecordServiceImpl.java index ded4555..870598d 100644 --- a/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseHourRecordServiceImpl.java +++ b/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseHourRecordServiceImpl.java @@ -123,7 +123,7 @@ public class UserCourseHourRecordServiceImpl @Override public List getUserCourseHourCount( Integer userId, List courseIds, Integer isFinished) { - if (courseIds == null || courseIds.size() == 0) { + if (courseIds == null || courseIds.isEmpty()) { return new ArrayList<>(); } return getBaseMapper().getUserCourseHourCount(userId, courseIds, isFinished); @@ -132,7 +132,7 @@ public class UserCourseHourRecordServiceImpl @Override public List getUserCourseHourUserCount( Integer courseId, List userIds, Integer isFinished) { - if (userIds == null || userIds.size() == 0) { + if (userIds == null || userIds.isEmpty()) { return new ArrayList<>(); } return getBaseMapper().getUserCourseHourUserCount(courseId, userIds, isFinished); @@ -174,9 +174,14 @@ public class UserCourseHourRecordServiceImpl @Override public List getUserCourseHourUserFirstCreatedAt( Integer courseId, List userIds) { - if (userIds == null || userIds.size() == 0) { + if (userIds == null || userIds.isEmpty()) { return new ArrayList<>(); } return getBaseMapper().getUserCourseHourUserFirstCreatedAt(courseId, userIds); } + + @Override + public List getUserPerCourseEarliestRecord(Integer userId) { + return getBaseMapper().getUserPerCourseEarliestRecord(userId); + } } diff --git a/playedu-course/src/main/resources/mapper/UserCourseHourRecordMapper.xml b/playedu-course/src/main/resources/mapper/UserCourseHourRecordMapper.xml index a172583..fab9066 100644 --- a/playedu-course/src/main/resources/mapper/UserCourseHourRecordMapper.xml +++ b/playedu-course/src/main/resources/mapper/UserCourseHourRecordMapper.xml @@ -128,6 +128,7 @@ GROUP BY `user_id`; + + +