|  | @@ -0,0 +1,232 @@
 | 
											
												
													
														|  | 
 |  | +<?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.qw.mapper.QwWatchLogExMapper">
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <resultMap type="QwWatchLog" id="QwWatchLogResult">
 | 
											
												
													
														|  | 
 |  | +        <result property="id"    column="id"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="extId"    column="ext_id"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="qwUserId"    column="qw_user_id"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="status"    column="status"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="day"    column="day"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="project"    column="project"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="createTime"    column="create_time"    />
 | 
											
												
													
														|  | 
 |  | +        <result property="lineTime"    column="line_time"    />
 | 
											
												
													
														|  | 
 |  | +    </resultMap>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <sql id="selectQwWatchLogVo">
 | 
											
												
													
														|  | 
 |  | +        select id, ext_id, qw_user_id,line_time, status, day, project, create_time from qw_watch_log_ex
 | 
											
												
													
														|  | 
 |  | +    </sql>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <select id="selectQwWatchLogList" parameterType="QwWatchLog" resultMap="QwWatchLogResult">
 | 
											
												
													
														|  | 
 |  | +        <include refid="selectQwWatchLogVo"/>
 | 
											
												
													
														|  | 
 |  | +        <where>
 | 
											
												
													
														|  | 
 |  | +            <if test="extId != null "> and ext_id = #{extId}</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="qwUserId != null "> and qw_user_id = #{qwUserId}</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="status != null "> and status = #{status}</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="day != null "> and day = #{day}</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="project != null "> and project = #{project}</if>
 | 
											
												
													
														|  | 
 |  | +        </where>
 | 
											
												
													
														|  | 
 |  | +    </select>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <select id="selectQwWatchLogById" parameterType="Long" resultMap="QwWatchLogResult">
 | 
											
												
													
														|  | 
 |  | +        <include refid="selectQwWatchLogVo"/>
 | 
											
												
													
														|  | 
 |  | +        where id = #{id}
 | 
											
												
													
														|  | 
 |  | +    </select>
 | 
											
												
													
														|  | 
 |  | +    <select id="selectQwWatchLogByCompanyUserId" resultType="com.fs.qw.vo.QwWatchLogStatisticsListVO">
 | 
											
												
													
														|  | 
 |  | +            select
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 0 and status in (1,2) THEN 1 END) AS firstOnline,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 0 and status=2 THEN 1 END) AS firstOver,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 1 and status in (1,2) THEN 1 END) AS d1Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 1 and status=2 THEN 1 END) AS d1Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(1) AS line,project,course_id,video_id
 | 
											
												
													
														|  | 
 |  | +             from qw_watch_log_ex
 | 
											
												
													
														|  | 
 |  | +             <where>
 | 
											
												
													
														|  | 
 |  | +                 <if test="companyUserId">
 | 
											
												
													
														|  | 
 |  | +                     and company_user_id = #{companyUserId}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                 <if test="companyId">
 | 
											
												
													
														|  | 
 |  | +                     and company_id = #{companyId}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                 <if test="project != null">
 | 
											
												
													
														|  | 
 |  | +                     and project=#{project}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                 <if test="courseId != null">
 | 
											
												
													
														|  | 
 |  | +                     and course_id=#{courseId}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                 <if test="videoId != null">
 | 
											
												
													
														|  | 
 |  | +                     and video_id=#{videoId}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                 and DATE(line_time) between #{sTime} and #{dTime}
 | 
											
												
													
														|  | 
 |  | +             </where>
 | 
											
												
													
														|  | 
 |  | +            group by project,course_id,video_id
 | 
											
												
													
														|  | 
 |  | +    </select>
 | 
											
												
													
														|  | 
 |  | +    <select id="selectQwWatchLogAllStatisticsListVONew"
 | 
											
												
													
														|  | 
 |  | +            resultType="com.fs.qw.vo.QwWatchLogAllStatisticsListVO">
 | 
											
												
													
														|  | 
 |  | +            select
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 0 and status in (1,2) THEN 1 END) AS firstOnline,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 0 and status=2 THEN 1 END) AS firstOver,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 1 and status in (1,2) THEN 1 END) AS d1Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 1 and status=2 THEN 1 END) AS d1Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 2 and status in (1,2) THEN 1 END) AS d2Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 2 and status=2 THEN 1 END) AS d2Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 3 and status in (1,2) THEN 1 END) AS d3Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 3 and status=2 THEN 1 END) AS d3Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 4 and status in (1,2) THEN 1 END) AS d4Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 4 and status=2 THEN 1 END) AS d4Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 5 and status in (1,2) THEN 1 END) AS d5Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 5 and status=2 THEN 1 END) AS d5Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 6 and status in (1,2) THEN 1 END) AS d6Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 6 and status=2 THEN 1 END) AS d6Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 7 and status in (1,2) THEN 1 END) AS d7Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 7 and status=2 THEN 1 END) AS d7Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 8 and status in (1,2) THEN 1 END) AS d8Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 8 and status=2 THEN 1 END) AS d8Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 9 and status in (1,2) THEN 1 END) AS d9Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 9 and status=2 THEN 1 END) AS d9Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 10 and status in (1,2) THEN 1 END) AS d10Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 10 and status=2 THEN 1 END) AS d10Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 11 and status in (1,2) THEN 1 END) AS d11Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 11 and status=2 THEN 1 END) AS d11Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 12 and status in (1,2) THEN 1 END) AS d12Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 12 and status=2 THEN 1 END) AS d12Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 13 and status in (1,2) THEN 1 END) AS d13Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 13 and status=2 THEN 1 END) AS d13Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 14 and status in (1,2) THEN 1 END) AS d14Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 14 and status=2 THEN 1 END) AS d14Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 15 and status in (1,2) THEN 1 END) AS d15Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 15 and status=2 THEN 1 END) AS d15Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 16 and status in (1,2) THEN 1 END) AS d16Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 16 and status=2 THEN 1 END) AS d16Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 17 and status in (1,2) THEN 1 END) AS d17Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 17 and status=2 THEN 1 END) AS d17Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 18 and status in (1,2) THEN 1 END) AS d18Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 18 and status=2 THEN 1 END) AS d18Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 19 and status in (1,2) THEN 1 END) AS d19Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 19 and status=2 THEN 1 END) AS d19Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 20 and status in (1,2) THEN 1 END) AS d20Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 20 and status=2 THEN 1 END) AS d20Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 21 and status in (1,2) THEN 1 END) AS d21Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 21 and status=2 THEN 1 END) AS d21Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 22 and status in (1,2) THEN 1 END) AS d22Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 22 and status=2 THEN 1 END) AS d22Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 23 and status in (1,2) THEN 1 END) AS d23Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 23 and status=2 THEN 1 END) AS d23Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 24 and status in (1,2) THEN 1 END) AS d24Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 24 and status=2 THEN 1 END) AS d24Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 25 and status in (1,2) THEN 1 END) AS d25Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 25 and status=2 THEN 1 END) AS d25Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 26 and status in (1,2) THEN 1 END) AS d26Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 26 and status=2 THEN 1 END) AS d26Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 27 and status in (1,2) THEN 1 END) AS d27Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 27 and status=2 THEN 1 END) AS d27Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 28 and status in (1,2) THEN 1 END) AS d28Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 28 and status=2 THEN 1 END) AS d28Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 29 and status in (1,2) THEN 1 END) AS d29Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 29 and status=2 THEN 1 END) AS d29Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 30 and status in (1,2) THEN 1 END) AS d30Online,
 | 
											
												
													
														|  | 
 |  | +            COUNT(CASE WHEN day = 30 and status=2 THEN 1 END) AS d30Over,
 | 
											
												
													
														|  | 
 |  | +            COUNT(1) AS line,project,course_id,video_id
 | 
											
												
													
														|  | 
 |  | +             from qw_watch_log_ex
 | 
											
												
													
														|  | 
 |  | +            <where>
 | 
											
												
													
														|  | 
 |  | +                 <if test="companyUserId">
 | 
											
												
													
														|  | 
 |  | +                     and company_user_id=#{companyUserId}
 | 
											
												
													
														|  | 
 |  | +                 </if>
 | 
											
												
													
														|  | 
 |  | +                <if test="companyId">
 | 
											
												
													
														|  | 
 |  | +                    and company_id = #{companyId}
 | 
											
												
													
														|  | 
 |  | +                </if>
 | 
											
												
													
														|  | 
 |  | +                <if test="project != null">
 | 
											
												
													
														|  | 
 |  | +                    and project = #{project}
 | 
											
												
													
														|  | 
 |  | +                </if>
 | 
											
												
													
														|  | 
 |  | +                <if test="courseId != null">
 | 
											
												
													
														|  | 
 |  | +                    and course_id = #{courseId}
 | 
											
												
													
														|  | 
 |  | +                </if>
 | 
											
												
													
														|  | 
 |  | +                <if test="videoId != null">
 | 
											
												
													
														|  | 
 |  | +                    and video_id =#{videoId}
 | 
											
												
													
														|  | 
 |  | +                </if>
 | 
											
												
													
														|  | 
 |  | +                and DATE(line_time) between #{sDate} AND #{eDate} group by project,course_id,video_id
 | 
											
												
													
														|  | 
 |  | +            </where>
 | 
											
												
													
														|  | 
 |  | +    </select>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <insert id="insertQwWatchLog" parameterType="QwWatchLog" useGeneratedKeys="true" keyProperty="id">
 | 
											
												
													
														|  | 
 |  | +        insert into qw_watch_log_ex
 | 
											
												
													
														|  | 
 |  | +        <trim prefix="(" suffix=")" suffixOverrides=",">
 | 
											
												
													
														|  | 
 |  | +            <if test="extId != null">ext_id,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="qwUserId != null">qw_user_id,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="status != null">status,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="day != null">day,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="project != null">project,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="createTime != null">create_time,</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="lineTime != null">line_time,</if>
 | 
											
												
													
														|  | 
 |  | +         </trim>
 | 
											
												
													
														|  | 
 |  | +        <trim prefix="values (" suffix=")" suffixOverrides=",">
 | 
											
												
													
														|  | 
 |  | +            <if test="extId != null">#{extId},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="qwUserId != null">#{qwUserId},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="status != null">#{status},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="day != null">#{day},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="project != null">#{project},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="createTime != null">#{createTime},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="lineTime != null">#{lineTime},</if>
 | 
											
												
													
														|  | 
 |  | +         </trim>
 | 
											
												
													
														|  | 
 |  | +    </insert>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <insert id="insertQwWatchLogBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
 | 
											
												
													
														|  | 
 |  | +        INSERT INTO qw_watch_log_ex (
 | 
											
												
													
														|  | 
 |  | +        ext_id,
 | 
											
												
													
														|  | 
 |  | +        qw_user_id,
 | 
											
												
													
														|  | 
 |  | +        status,
 | 
											
												
													
														|  | 
 |  | +        day,
 | 
											
												
													
														|  | 
 |  | +        project,
 | 
											
												
													
														|  | 
 |  | +        create_time,
 | 
											
												
													
														|  | 
 |  | +        line_time,
 | 
											
												
													
														|  | 
 |  | +        fs_user_id,
 | 
											
												
													
														|  | 
 |  | +        company_id,
 | 
											
												
													
														|  | 
 |  | +        company_user_id,
 | 
											
												
													
														|  | 
 |  | +        course_id,
 | 
											
												
													
														|  | 
 |  | +        video_id
 | 
											
												
													
														|  | 
 |  | +        )
 | 
											
												
													
														|  | 
 |  | +        VALUES
 | 
											
												
													
														|  | 
 |  | +    <foreach collection="watchLogs" item="log" separator=",">
 | 
											
												
													
														|  | 
 |  | +            (
 | 
											
												
													
														|  | 
 |  | +            #{log.extId},
 | 
											
												
													
														|  | 
 |  | +            #{log.qwUserId},
 | 
											
												
													
														|  | 
 |  | +            #{log.status},
 | 
											
												
													
														|  | 
 |  | +            #{log.day},
 | 
											
												
													
														|  | 
 |  | +            #{log.project},
 | 
											
												
													
														|  | 
 |  | +            #{log.createTime},
 | 
											
												
													
														|  | 
 |  | +            #{log.lineTime},
 | 
											
												
													
														|  | 
 |  | +             #{log.fsUserId},
 | 
											
												
													
														|  | 
 |  | +             #{log.companyId},
 | 
											
												
													
														|  | 
 |  | +             #{log.companyUserId},
 | 
											
												
													
														|  | 
 |  | +             #{log.courseId},
 | 
											
												
													
														|  | 
 |  | +             #{log.videoId}
 | 
											
												
													
														|  | 
 |  | +            )
 | 
											
												
													
														|  | 
 |  | +    </foreach>
 | 
											
												
													
														|  | 
 |  | +    </insert>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <update id="updateQwWatchLog" parameterType="QwWatchLog">
 | 
											
												
													
														|  | 
 |  | +        update qw_watch_log_ex
 | 
											
												
													
														|  | 
 |  | +        <trim prefix="SET" suffixOverrides=",">
 | 
											
												
													
														|  | 
 |  | +            <if test="extId != null">ext_id = #{extId},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="status != null">status = #{status},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="day != null">day = #{day},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="project != null">project = #{project},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="createTime != null">create_time = #{createTime},</if>
 | 
											
												
													
														|  | 
 |  | +            <if test="lineTime != null">line_time = #{lineTime},</if>
 | 
											
												
													
														|  | 
 |  | +        </trim>
 | 
											
												
													
														|  | 
 |  | +        where id = #{id}
 | 
											
												
													
														|  | 
 |  | +    </update>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <delete id="deleteQwWatchLogById" parameterType="Long">
 | 
											
												
													
														|  | 
 |  | +        delete from qw_watch_log_ex where id = #{id}
 | 
											
												
													
														|  | 
 |  | +    </delete>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <delete id="deleteQwWatchLogByIds" parameterType="String">
 | 
											
												
													
														|  | 
 |  | +        delete from qw_watch_log_ex where id in
 | 
											
												
													
														|  | 
 |  | +        <foreach item="id" collection="array" open="(" separator="," close=")">
 | 
											
												
													
														|  | 
 |  | +            #{id}
 | 
											
												
													
														|  | 
 |  | +        </foreach>
 | 
											
												
													
														|  | 
 |  | +    </delete>
 | 
											
												
													
														|  | 
 |  | +</mapper>
 |