Browse Source

feat:调整优化会员看课统计(不统计被拉黑的会员)

caoliqin 1 week ago
parent
commit
f7d730b973

+ 2 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -187,6 +187,7 @@ public class FsUserCoursePeriodController extends BaseController {
         return R.ok().put("data", periodRedPacketList);
     }
 
+    @Log(title = "按课程批量保存设置红包金额", businessType = BusinessType.UPDATE)
     @PreAuthorize("@ss.hasPermi('course:period:setCourseRedPacket')")
     @ApiOperation("按课程批量保存设置红包金额")
     @PostMapping("/batchRedPacket")
@@ -200,6 +201,7 @@ public class FsUserCoursePeriodController extends BaseController {
         return R.ok();
     }
 
+    @Log(title = "按营期批量保存设置红包金额", businessType = BusinessType.UPDATE)
     @PreAuthorize("@ss.hasPermi('course:period:setRedPacket')")
     @ApiOperation("按营期批量保存设置红包金额")
     @PostMapping("/batchRedPacket/byPeriod")

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -243,6 +243,8 @@ public interface FsUserMapper
 
     Map<String, Long> countUserCourse(UserStatisticsCommonParam param);
 
+    Map<String, Long> countUserCourseNew(UserStatisticsCommonParam param);
+
     Map<String, Long> countUserAnswer(UserStatisticsCommonParam param);
 
     Map<String, Object> countUserRedPacket(UserStatisticsCommonParam param);

+ 1 - 0
fs-service-system/src/main/resources/mapper/course/FsUserWatchStatisticsMapper.xml

@@ -119,6 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fwl.company_id
         FROM
             fs_course_watch_log fwl
+                JOIN ( SELECT DISTINCT user_id FROM fs_user WHERE fs_user.is_del = 0 AND fs_user.`status` = 1 ) AS fs_user ON fs_user.user_id = fwl.user_id
         WHERE
             fwl.send_type = 1
         GROUP BY

+ 19 - 2
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -519,10 +519,12 @@
         fs_user.*,
         fs_user_course_count.id,
         fs_user_course_count.watch_course_count,
+--         fs_course_watch_log.watch_course_count,
         fs_user_course_count.miss_course_count,
         fs_user_course_count.miss_course_status,
         fs_user_course_count.course_ids,
         fs_user_course_count.part_course_count,
+--         fs_course_watch_log.part_course_count,
         fs_user_course_count.last_watch_date,
         fs_user_course_count.STATUS AS courseCountStatus,
         fs_user_course_count.stop_watch_days,
@@ -538,6 +540,16 @@
         LEFT JOIN company_tag ON FIND_IN_SET(company_tag.tag_id, company_tag_user.tag_ids) > 0
         LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_user.user_id
         LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
+--         LEFT JOIN (
+--         SELECT
+--         fs_course_watch_log.user_id,
+--         count( DISTINCT fs_course_watch_log.video_id ) watch_course_count,
+--         count( DISTINCT fs_course_watch_log.period_id ) part_course_count
+--         FROM
+--         fs_course_watch_log
+--         GROUP BY
+--         fs_course_watch_log.user_id
+--         ) fs_course_watch_log ON fs_course_watch_log.user_id = fs_user.user_id
         where fs_user.is_del = 0
         <if test="userId != null and userId!= 0 ">
             and fs_user.company_user_id = #{userId}
@@ -859,7 +871,7 @@
                     count(distinct fcc.user_id )
                 FROM
                     fs_user_course_count fcc
-                        LEFT JOIN fs_user ON fs_user.user_id = fcc.user_id
+                        LEFT JOIN ( SELECT DISTINCT user_id, company_user_id, company_id FROM fs_user WHERE fs_user.is_del = 0 AND fs_user.`status` = 1 ) AS fs_user ON fs_user.user_id = fcc.user_id
                         LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
                         LEFT JOIN fs_user_course_period_days fcpd ON FIND_IN_SET(fcpd.period_id, fcc.course_ids) > 0
                 <where>
@@ -892,7 +904,7 @@
                     count(distinct fcc.user_id )
                 FROM
                     fs_user_course_count fcc
-                        LEFT JOIN fs_user ON fs_user.user_id = fcc.user_id
+                        LEFT JOIN ( SELECT DISTINCT user_id, company_user_id, company_id FROM fs_user WHERE fs_user.is_del = 0 AND fs_user.`status` = 1 ) AS fs_user ON fs_user.user_id = fcc.user_id
                         LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
                         LEFT JOIN fs_user_course_period_days fcpd ON FIND_IN_SET(fcpd.period_id, fcc.course_ids) > 0
                 <where>
@@ -923,6 +935,10 @@
             ) as courseCompleteNum
     </select>
 
+    <select id="countUserCourseNew" resultType="Map">
+
+    </select>
+
     <select id="countUserAnswer" resultType="Map">
         SELECT
         (
@@ -1649,6 +1665,7 @@
             fwl.period_id, fwl.video_id, fwl.company_user_id, fwl.company_id
         FROM
             fs_course_watch_log fwl
+                JOIN ( SELECT DISTINCT user_id FROM fs_user WHERE fs_user.is_del = 0 AND fs_user.`status` = 1 ) AS fs_user ON fs_user.user_id = fwl.user_id
         WHERE
             fwl.send_type = 1
         GROUP BY