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
-