diff --git a/src/main/resources/mapper/course/CourseDao.xml b/src/main/resources/mapper/course/CourseDao.xml index cc786738..98d4f032 100644 --- a/src/main/resources/mapper/course/CourseDao.xml +++ b/src/main/resources/mapper/course/CourseDao.xml @@ -39,7 +39,7 @@ c.dy_show as dyShow, c.sort, round(10000*rand(),0) as goodNum, - (select count(*) from course_details d where d.course_id=c.course_id ) as courseDetailsCount, + d.courseDetailsCount, null AS courseDetailsName, null AS courseDetailsId, round(10000*rand(),0) as weekGoodNum, @@ -48,6 +48,7 @@ course AS c LEFT JOIN course_classification AS cc ON c.classify_id = cc.classification_id left join banner as b on b.id=c.banner_id + left join (select course_id,count(*) as courseDetailsCount from course_details group by course_id) d.course_id = c.course_id WHERE 1 = 1 AND c.is_delete = 0 @@ -130,7 +131,7 @@ c.course_type as courseType, c.banner_id as bannerId, b.name as bannerName, - (select sum(cd.view_count) from course_details cd where cd.course_id = c.course_id ) as viewCounts, + d.viewCounts, c.dy_img_id as dyImgId, c.dy_course_id as dyCourseId, c.dy_status as dyStatus, @@ -153,24 +154,26 @@ c.`cost_distribution_uri` as costDistributionUri, c.`assurance_uri` as assuranceUri, c.`playlet_production_cost` as playletProductionCost, - c.`qualification_type` as qualificationType, c.`registration_number` as registrationNumber, c.`qualification_certificate_material_id` as qualificationCertificateMaterialId, c.`cost_of_production` as costOfProduction, c.`cost_commitment_letter_material_id` as costCommitmentLetterMaterialId, c.`wx_course_status` as wxCourseStatus, - - (select count(*) from course_details where dy_url_status in (1,3) or dy_url_status=null) as dyUrlStatus, - (select sum(o.pay_money) from orders o where o.course_id=c.course_id and o.status=1) as payMoney, - (select sum(good_num) from course_details d where d.course_id=c.course_id ) as goodNum, - (select count(*) from course_details d where d.course_id=c.course_id ) as courseDetailsCount, + t.dyUrlStatus, + o.payMoney, + d.goodNum, + d.courseDetailsCount, 0 as weekGoodNum, - (select count(*) from course_details cd where c.course_id=cd.course_id and cd.good=1 ) as isRecommend + tt.isRecommend FROM course AS c LEFT JOIN course_classification AS cc ON c.classify_id = cc.classification_id left join banner as b on b.id=c.banner_id + left join (select 1 as id,count(*) as dyUrlStatus from course_details where dy_url_status in (1,3) or dy_url_status=null group by course_id) t on t.id = 1 + left join (select course_id,sum(pay_money) as payMoney from orders where status=1 group by course_id) o on o.course_id = c.course_id + left join (select course_id,sum(view_count) as viewCounts,sum(good_num) as goodNum,count(*) as courseDetailsCount from course_details group by course_id) d on d.course_id = c.course_id + left join (select course_id,count(*) as isRecommend from course_details where good=1 group by course_id) tt on tt.course_id = c.course_id WHERE 1 = 1 AND c.is_delete = 0 @@ -219,8 +222,6 @@ and c.dy_status=4 - order by c.sort asc,c.create_time desc - select c.*, - (select count(*) from course_collect cc where cc.user_id=#{userId} and cc.course_details_id=c.course_details_id and cc.classify=2) as isGood - from course_details c where c.course_id=#{id} order by c.sort asc + cc.isGood + from course_details c + left join (select course_details_id,count(*) isGood from course_collect where user_id=#{userId} and classify=2 group by course_details_id) cc on c.course_details_id = c.course_details_id + where c.course_id=#{id} order by c.sort asc