From 8b46967c5369375c45ad8f033d2d6cf9a3c12714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 3 Jan 2025 21:46:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CourseCollectServiceImpl.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java index 5f5ccd29..820e7a92 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java @@ -23,10 +23,7 @@ import org.springframework.cache.annotation.CachePut; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors; @@ -116,21 +113,33 @@ public class CourseCollectServiceImpl extends ServiceImpl courseIdList = baseMapper.selectList(new LambdaQueryWrapper() - .eq(CourseCollect::getUserId, userId) - .eq(CourseCollect::getClassify, classify) - .isNotNull(CourseCollect::getCourseId) - .select(CourseCollect::getCourseId, CourseCollect::getUserId)) - .stream().map(CourseCollect::getCourseId).collect(Collectors.toSet()); -// List collectList = baseMapper.selectByUserId(userId, classify); -// Set courseIdList = collectList.stream().map(CourseCollect::getCourseId).collect(Collectors.toSet()); + List courseCollectList = baseMapper.selectList(new LambdaQueryWrapper() + .eq(CourseCollect::getUserId, userId) + .eq(CourseCollect::getClassify, classify) + .isNotNull(CourseCollect::getCourseId) + .select(CourseCollect::getCourseId, CourseCollect::getUserId)); + + Set courseIdList = new HashSet<>(); + HashMap courseCollectHashMap = new HashMap<>(); + for (CourseCollect courseCollect : courseCollectList) { + courseIdList.add(courseCollect.getCourseId()); + courseCollectHashMap.put(courseCollect.getCourseId(), courseCollect); + } + List courseList = courseIdList.isEmpty() ? new ArrayList<>() : courseDao.selectList(new LambdaQueryWrapper().in(Course::getCourseId, courseIdList)); // List courseList = baseMapper.selectCourseByCollect(userId, classify); + Set detailIdList = courseList.stream().map(Course::getCourseDetailsId).collect(Collectors.toSet()); + Map courseDetailsMap = detailIdList.isEmpty() ? new HashMap<>() : courseDetailsService.list(new LambdaQueryWrapper() + .in(CourseDetails::getCourseDetailsId, detailIdList) + .select(CourseDetails::getCourseDetailsName)).stream() + .collect(Collectors.toMap(CourseDetails::getCourseDetailsId, CourseDetails::getCourseDetailsName)); PageInfo pageInfo = new PageInfo<>(courseList); if (CollectionUtil.isNotEmpty(courseList)) { List courses = pageInfo.getList(); for (Course course : courses) { course.setCourseClassification(courseClassificationDao.selectById(course.getClassifyId())); + CourseCollect courseCollect = courseCollectHashMap.get(course.getCourseId()); + course.setCourseDetailsName(courseCollect == null ? null : courseDetailsMap.get(courseCollect.getCourseDetailsId())); } } return Result.success().put("data", PageUtils.page(pageInfo, true));