| 
					
				 | 
			
			
				@@ -0,0 +1,394 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?xml version="1.0" encoding="UTF-8" ?> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<!DOCTYPE mapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<mapper namespace="com.fs.statis.mapper.ConsumptionBalanceMapper"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="rechargeConsumption" resultType="com.fs.statis.dto.ConsumptionBalanceDataDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            14371277 AS balance, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            103100 AS today_comsumption, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            195280 AS yesterday_comsumption 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="dealerAggregated" resultType="com.fs.statis.dto.DealerAggregatedDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM COMPANY) AS dealder_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM COMPANY_USER) AS group_mgr_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER) AS member_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER WHERE STATUS=1) AS normal_num, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER WHERE STATUS=0) AS black_num, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (select COUNT(*) FROM qw_user) AS qw_member_num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="analysisPreview" resultType="com.fs.statis.dto.AnalysisPreviewDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        -- 观看人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select (select count(*) from fs_course_watch_log where create_time between #{startTime} and #{endTime} group by user_id) as watch_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 完播人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select count(*) from fs_course_watch_log where finish_time is not null and create_time between #{startTime} and #{endTime} group by user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                                                                                                     as completed_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 观看次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select count(*) from fs_course_watch_log where create_time between #{startTime} and #{endTime}) as watch_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 完播次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select count(*) from fs_course_watch_log where create_time between #{startTime} and #{endTime}) as completed_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 答题人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select count(*) from fs_course_answer_logs where create_time between #{startTime} and #{endTime}) as answer_member_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 正确人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select count(*) from fs_course_answer_logs where is_right=1 AND create_time between #{startTime} and #{endTime}) as correct_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-- 答题红包个数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select 0) as reward_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (select 0) as reward_money 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryWatchCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select count(log_id) from fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and send_type=${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and create_time between #{startTime} and #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryCompletedUserCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select count(DISTINCT user_id) from fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            finish_time is not null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and send_type=${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and create_time between #{startTime} and #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryWatchUserCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select count(distinct user_id) from fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and send_type=${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and create_time between #{startTime} and #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryCompletedCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT COUNT(log_id) FROM fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             finish_time IS NOT NULL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 AND create_time BETWEEN #{startTime} AND #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 and send_type=${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryAnswerMemberCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT COUNT(DISTINCT user_id) FROM fs_course_answer_logs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               create_time BETWEEN #{startTime} AND #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryCorrectUserCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT COUNT(DISTINCT user_id) FROM fs_course_answer_logs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            is_right = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and create_time BETWEEN #{startTime} AND #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryRewardCount" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select count(*) from company_red_package_logs rpl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            left join fs_course_watch_log log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            on rpl.watch_log_id=log.log_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rpl.operate_type=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and rpl.create_time BETWEEN #{startTime} AND #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="queryRewardMoney" resultType="java.math.BigDecimal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select sum(up_money) from company_red_package_logs rpl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        left join fs_course_watch_log log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        on rpl.watch_log_id=log.log_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rpl.operate_type=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null and endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and rpl.create_time BETWEEN #{startTime} AND #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="smsBalance" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select sum(remain_sms_count) from company_sms 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="smsBalanceCompany" resultType="java.lang.Long"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select sum(remain_sms_count) from company_sms 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="authorizationInfo" resultType="com.fs.statis.dto.AuthorizationInfoDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select version_limit,today_watch_user_count from fs_statistics_index limit 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="watchEndPlayTrend" resultType="com.fs.statis.dto.WatchEndPlayTrendDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--             今日/昨日 小时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="type == 0 or type == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DATE_FORMAT(create_time, '%H') AS start_date, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--                 本周/本月/上月 天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="type == 2 or type == 3 or type == 4"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DATE_FORMAT(create_time, '%Y-%m-%d') AS start_date, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT user_id) AS watch_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT CASE WHEN log_type = 2 THEN user_id END) AS completed_user_count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                create_time <![CDATA[>=]]> #{startTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND create_time <![CDATA[<]]> #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        GROUP BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        start_date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ORDER BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        start_date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="deaMemberTopTen" resultType="com.fs.statis.dto.DeaMemberTopTenDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        company_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <if test="statisticalType == 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            count(DISTINCT user_id) AS watch_user_count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <if test="statisticalType == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            COUNT(DISTINCT CASE WHEN log_type = 2 THEN user_id END) AS watch_user_count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fs_course_watch_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                create_time <![CDATA[>=]]> #{startTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND create_time <![CDATA[<]]> #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND company_id = ${companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        GROUP BY company_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        limit 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="watchCourseTopTen" resultType="com.fs.statis.dto.CourseStatsDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        w.course_id AS course_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT w.user_id) AS watch_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT CASE WHEN w.log_type = 2 THEN w.user_id END) AS completed_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT a.user_id) AS answer_user_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fs_course_watch_log w 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LEFT JOIN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fs_course_answer_logs a ON w.video_id = a.video_id AND w.user_id = a.user_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                w.create_time <![CDATA[>=]]> #{startTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND w.create_time <![CDATA[<]]> #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND w.company_id = ${companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        GROUP BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        w.course_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ORDER BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            -- 观看人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="statisticalType == 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                COUNT(DISTINCT w.user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="statisticalType == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                COUNT(DISTINCT CASE WHEN w.log_type = 2 THEN w.user_id END) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="statisticalType == 2"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                COUNT(DISTINCT a.user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="statisticalType == 3"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ${sort} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LIMIT 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="rewardMoneyTopTen" resultType="com.fs.statis.dto.RewardMoneyTopTenDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            -- 按公司 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="dataType == 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rpl.company_id as company_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            -- 按课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="dataType == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rpl.course_id as course_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SUM(rpl.money) as rewardMoney 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            company_red_package_logs rpl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        left join fs_course_watch_log log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        on rpl.watch_log_id=log.log_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rpl.operate_type = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AND rpl.status = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND rpl.create_time <![CDATA[>=]]> #{startTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND rpl.create_time <![CDATA[<]]> #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.company_id = ${companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        GROUP BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="dataType == 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rpl.company_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="dataType == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rpl.course_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ORDER BY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rewardMoney DESC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LIMIT 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="rewardMoneyTrendDTO" resultType="com.fs.statis.dto.RewardMoneyTrendDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        --             今日/昨日 小时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <if test="type == 0 or type == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            DATE_FORMAT(rpl.create_time, '%H') AS start_date, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        --                 本周/本月/上月 天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <if test="type == 2 or type == 3 or type == 4"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            DATE_FORMAT(rpl.create_time, '%Y-%m-%d') AS start_date, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               SUM(rpl.money) as rewardMoney 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        from company_red_package_logs rpl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        left join fs_course_watch_log log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        on rpl.watch_log_id=log.log_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="startTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rpl.create_time <![CDATA[>=]]> #{startTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="endTime != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AND rpl.create_time <![CDATA[<]]> #{endTime} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="userType != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.send_type = ${userType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                and log.company_id = ${companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AND rpl.operate_type = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AND rpl.status = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        group by start_date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="getCurrentBalance" resultType="java.math.BigDecimal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select sum(money) from company 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="dealerAggregatedCompanyId" resultType="com.fs.statis.dto.DealerAggregatedDTO"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                1 AS dealder_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM COMPANY_USER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                 <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                         company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                 </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                 ) AS group_mgr_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                ) AS member_count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    STATUS=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        AND company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                ) AS normal_num, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (SELECT COUNT(*) FROM FS_USER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    STATUS=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        AND company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) AS black_num, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (select COUNT(*) FROM qw_user) AS qw_member_num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <select id="getCurrentBalanceCompanyId" resultType="java.math.BigDecimal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        select sum(money) from company 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <if test="companyId != null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                company_id = #{companyId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</mapper> 
			 |