Browse Source

酷乐秀优化

zouxuan 5 months ago
parent
commit
70b84e2b00

+ 7 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java

@@ -549,7 +549,13 @@ public class HomeServiceImpl implements HomeService {
         }
         Map<String,List<TeacherIndexWrapper.CourseExposureTotal>> result = new HashMap<>();
         //课程
-        List<TeacherIndexWrapper.CourseExposureTotal> liveSummer = userOrderDetailService.getDao().liveBuyTotal(search,groupBy);
+        List<TeacherIndexWrapper.CourseExposureTotal> liveSummer;
+        if (StringUtils.equals(search.getType(),GoodTypeEnum.VIDEO.getCode())){
+            //视频课
+            liveSummer = userOrderDetailService.getDao().videoBuyTotal(search,groupBy);
+        }else {
+            liveSummer = userOrderDetailService.getDao().liveBuyTotal(search,groupBy);
+        }
         result.put("COURSE",exposureFillData(liveSummer,dateList));
 
         if(StringUtils.isEmpty(search.getType()) || StringUtils.equals(search.getType(),GoodTypeEnum.MUSIC.getCode())){

+ 18 - 18
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderDetailMapper.xml

@@ -152,8 +152,8 @@
     </select>
     <select id="liveBuyTotal"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
-        select c.type,SUM(c.exposureNum) exposureNum,c.date from (
-        select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
+        select SUM(c.exposureNum) exposureNum,c.date from (
+        select COUNT(distinct uod.order_no_) exposureNum,
                DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
         left join user_order uo ON uo.order_no_ = uod.order_no_
         left join course_group cg On cg.id_ = uod.biz_id_
@@ -163,28 +163,28 @@
             and uod.good_type_ = #{param.type}
         </if>
         group by DATE_FORMAT(uod.create_time_,#{groupBy})
-        UNION ALL
-        select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
-        DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
-        left join user_order uo ON uo.order_no_ = uod.order_no_
-        left join video_lesson_group cg On cg.id_ = uod.biz_id_
-        where cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID' AND uod.good_type_ != 'TENANT_ALBUM'
-        AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
-        <if test="param.type != null and param.type != ''">
-            and uod.good_type_ = #{param.type}
+        <if test="param.type == null or param.type == ''">
+            UNION ALL
+            select COUNT(distinct uod.order_no_) exposureNum,
+            DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
+            left join user_order uo ON uo.order_no_ = uod.order_no_
+            left join course_group cg On cg.id_ = uod.biz_id_
+            where cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID' AND uod.good_type_ != 'TENANT_ALBUM' AND uod.good_type_ = 'VIDEO'
+            AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
+            group by DATE_FORMAT(uod.create_time_,#{groupBy})
         </if>
-        group by DATE_FORMAT(uod.create_time_,#{groupBy})) c
+        ) c
         group by c.date ORDER BY c.date
     </select>
     <select id="videoBuyTotal"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
-        select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
-               DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
+        select COUNT(distinct uod.order_no_) exposureNum,
+        DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
         left join user_order uo ON uo.order_no_ = uod.order_no_
-        left join video_lesson_group cg On cg.id_ = uod.biz_id_
-        where uod.good_type_ = 'VIDEO' AND cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID'
-          AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
-        group by DATE_FORMAT(uod.create_time_,#{groupBy}) order by 'date'
+        left join course_group cg On cg.id_ = uod.biz_id_
+        where cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID' AND uod.good_type_ != 'TENANT_ALBUM' AND uod.good_type_ = 'VIDEO'
+        AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
+        group by DATE_FORMAT(uod.create_time_,#{groupBy})
     </select>
     <select id="musicSheetBuyTotal"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">