Quellcode durchsuchen

feat:会员营期统计需求调整、项目会员管理电话查询

caoliqin vor 5 Tagen
Ursprung
Commit
bc8a32e0f6

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

@@ -118,9 +118,9 @@ public class FsUserWatchCourseStatisticsController extends BaseController
     }
 
     /**
-     * 导出会员看课统计-按课程汇总统计列表
+     * 导出会员观看数据明细汇总
      */
-    @Log(title = "会员看课统计-按课程汇总统计", businessType = BusinessType.EXPORT)
+    @Log(title = "会员观看数据明细汇总", businessType = BusinessType.EXPORT)
     @GetMapping("/exportTotal")
     public AjaxResult exportTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     {

+ 3 - 0
fs-admin/src/main/java/com/fs/his/controller/FsUserController.java

@@ -139,6 +139,9 @@ public class FsUserController extends BaseController
     public TableDataInfo listProject(FsUser fsUser)
     {
         startPage();
+        if(StringUtils.isNotEmpty(fsUser.getPhone())){
+            fsUser.setPhone(encryptPhone(fsUser.getPhone()));
+        }
         List<FsUserVO> list = fsUserService.selectFsUserVOListByProject(fsUser);
         boolean checkPhone = isCheckPhone();
         for (FsUserVO fsUserVO : list) {

+ 1 - 1
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -118,7 +118,7 @@ public interface FsUserMapper
     FsUser selectFsUserByCourseOpenId(String openId);
 
 
-    @Select("select * from fs_user where phone=#{phone}")
+    @Select("select * from fs_user where is_del = 0 and phone=#{phone}")
     FsUser selectFsUserByPhone(String phone);
 
     @Select("select * from fs_user where phone=#{phone} limit 1")

+ 2 - 1
fs-service/src/main/resources/mapper/course/FsUserWatchCourseStatisticsMapper.xml

@@ -92,7 +92,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ( sum(complete_watch_num) / sum(watch_num) ) * 100, 2
         ), 0
         ) as complete_watch_rate,
-        sum(red_packet_num) as red_packet_num
+        sum(red_packet_num) as red_packet_num,
+        sum(red_packet_amount) as red_packet_amount
         from fs_user_watch_course_statistics
         <where>
             <if test="periodId != null "> and period_id = #{periodId}</if>

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

@@ -119,9 +119,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fwl.company_id
         FROM
             fs_course_watch_log fwl
-
+                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fwl.user_id
         WHERE
             fwl.send_type = 1
+            AND fs_user_company_user.`status` = 1
         GROUP BY
             fwl.period_id, fwl.company_id
     </select>

+ 24 - 17
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -1712,18 +1712,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFsUserTotal" resultType="FsUserWatchStatistics">
         SELECT
-            count( fs_user.user_id ) as userNum,
+            count( DISTINCT fs_user.user_id ) as userNum,
             count( DISTINCT CASE WHEN to_days( fs_user.create_time ) = to_days( now()) THEN fs_user.user_id END ) as newUserNum,
             fs_user.company_id
         FROM
             fs_user
-                LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
+                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
         WHERE
             fs_user.is_del = 0
           AND fs_user.`status` = 1
-          AND company_user.user_id is not null
+          AND fs_user_company_user.`status` = 1
+          AND company_user.user_id IS NOT NULL
         GROUP BY
-            fs_user.company_id
+            fs_user_company_user.company_id
     </select>
 
 
@@ -1744,16 +1746,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fwl.period_id, fwl.video_id, fwl.company_user_id, fwl.company_id
         FROM
             fs_course_watch_log fwl
-
+                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fwl.user_id
         WHERE
             fwl.send_type = 1
+          AND fs_user_company_user.`status` = 1
         GROUP BY
             fwl.period_id, fwl.video_id, fwl.company_user_id
     </select>
 
     <select id="selectRedPacketLogCount" resultType="FsUserWatchCourseStatistics">
         SELECT
-            count( flog.log_id ) AS redPacketNum,
+            count(DISTINCT flog.log_id ) AS redPacketNum,
             ifnull ( sum( flog.amount ), 0 ) AS redPacketAmount,
             flog.period_id,
             flog.video_id,
@@ -1761,9 +1764,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             flog.company_id
         FROM
             fs_course_red_packet_log flog
-                LEFT JOIN fs_user ON fs_user.user_id = flog.user_id
-                LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
+                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = flog.user_id
+                LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
         where flog.`status` = 1
+          AND fs_user_company_user.`status` = 1
         GROUP BY
             flog.period_id,
             flog.video_id,
@@ -1772,12 +1776,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectAnswerLogCount" resultType="FsUserWatchCourseStatistics">
         SELECT
-            count( DISTINCT fs_user.user_id ) AS answerNum,
-            COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user.user_id END ) AS answerRightNum,
+            count( DISTINCT fs_user_company_user.user_id ) AS answerNum,
+            COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user_company_user.user_id END ) AS answerRightNum,
             ifnull(
                     ROUND(
                             (
-                                COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user.user_id END ) / count( DISTINCT fs_user.user_id )) * 100,
+                                COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user_company_user.user_id END ) / count( DISTINCT fs_user_company_user.user_id )) * 100,
                             2
                     ),
                     0
@@ -1788,8 +1792,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fs_course_answer_logs.company_id
         FROM
             fs_course_answer_logs
-                LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
-                LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
+                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_course_answer_logs.user_id
+                LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
+        where fs_user_company_user.`status` = 1
         GROUP BY
             fs_course_answer_logs.period_id,
             fs_course_answer_logs.video_id,
@@ -1798,7 +1803,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFsUserDetail" resultType="FsUserWatchCourseStatistics">
         SELECT
-            count( fs_user.user_id ) as userNum,
+            count(DISTINCT fs_user.user_id ) as userNum,
             count( DISTINCT CASE WHEN to_days( fs_user.create_time ) = to_days( now()) THEN fs_user.user_id END ) as newUserNum,
             date(fs_user.create_time) as userCreateDate
                 ,company.company_id,
@@ -1808,14 +1813,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
         FROM
             fs_user
-            LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
-            LEFT JOIN company ON company.company_id = fs_user.company_id
+            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 company ON company.company_id = fs_user_company_user.company_id
         WHERE
             fs_user.is_del = 0
+          AND fs_user_company_user.`status` = 1
           AND fs_user.`status` = 1
           AND company_user.user_id is not null
         GROUP BY
-            fs_user.company_user_id, date(fs_user.create_time)
+            fs_user_company_user.company_user_id, date(fs_user.create_time)
     </select>