查询逻辑修改

This commit is contained in:
张松
2025-01-03 22:19:53 +08:00
parent 3841c95b56
commit 5aeee2da3a
4 changed files with 25 additions and 2 deletions

View File

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.course.entity.Course;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Mapper
public interface CourseDao extends BaseMapper<Course> {
@@ -37,5 +39,4 @@ public interface CourseDao extends BaseMapper<Course> {
* @return
*/
List<Map<String, Object>> selectCourseTitle(@Param("title")String title);
}

View File

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.course.entity.CourseDetails;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Mapper
public interface CourseDetailsDao extends BaseMapper<CourseDetails> {
@@ -22,4 +24,5 @@ public interface CourseDetailsDao extends BaseMapper<CourseDetails> {
Map<String,Object> countCourse(Long courseId);
List<CourseDetails> countByCourseId(@Param("detailIdList") Set<Long> detailIdList);
}

View File

@@ -12,6 +12,7 @@ import com.sqx.common.utils.Result;
import com.sqx.modules.course.dao.CourseClassificationDao;
import com.sqx.modules.course.dao.CourseCollectDao;
import com.sqx.modules.course.dao.CourseDao;
import com.sqx.modules.course.dao.CourseDetailsDao;
import com.sqx.modules.course.entity.Course;
import com.sqx.modules.course.entity.CourseCollect;
import com.sqx.modules.course.entity.CourseDetails;
@@ -37,6 +38,8 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
private CourseDetailsService courseDetailsService;
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
@Autowired
private CourseDetailsDao courseDetailsDao;
public CourseCollectServiceImpl(CourseDao courseDao) {
this.courseDao = courseDao;
@@ -132,6 +135,9 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
Map<Long, CourseDetails> courseDetailsMap = detailIdList.isEmpty() ? new HashMap<>() : courseDetailsService.list(new LambdaQueryWrapper<CourseDetails>()
.in(CourseDetails::getCourseDetailsId, detailIdList)).stream()
.collect(Collectors.toMap(CourseDetails::getCourseDetailsId, item->item));
Map<Long, Integer> countMap = detailIdList.isEmpty() ? new HashMap<>() : courseDetailsDao.countByCourseId(detailIdList).stream().collect(Collectors.toMap(CourseDetails::getCourseId, CourseDetails::getCourseDetailsCount));
PageInfo<Course> pageInfo = new PageInfo<>(courseList);
if (CollectionUtil.isNotEmpty(courseList)) {
List<Course> courses = pageInfo.getList();
@@ -142,7 +148,7 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
if (courseDetails != null) {
course.setCourseDetailsName(courseDetails.getCourseDetailsName());
course.setCourseDetailsId(courseDetails.getCourseDetailsId());
course.setCourseDetailsCount(courseDetails.getCourseDetailsCount());
course.setCourseDetailsCount(countMap.get(courseCollect.getCourseId()));
}
}
}

View File

@@ -61,5 +61,18 @@
from course_details
where course_id = #{courseId}
</select>
<select id="countByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
SELECT
course_id as courseId,
COUNT(*) AS courseDetailsCount
FROM
course_details
where course_details_id in
<foreach collection="detailIdList" item="ids" open="(" separator="," close=")">
#{ids}
</foreach>
GROUP BY
course_id
</select>
</mapper>