查询逻辑修改
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user