| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?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.ym.mec.biz.dal.mapper.StudentCoursewarePlayRecordMapper">
- <select id="selectPage" resultType="com.ym.mec.biz.dal.entity.StudentCoursewarePlayRecord">
- SELECT t.*
- FROM student_courseware_play_record t
- </select>
- <insert id="save">
- INSERT INTO student_courseware_play_record (organization_id_, user_id_, play_time_, create_date_, update_time_, create_time_)
- VALUES (#{record.organizationId}, #{record.userId}, #{record.playTime}, #{record.createDate}, NOW(), NOW())
- ON DUPLICATE KEY UPDATE play_time_ = (ifnull(play_time_, 0) + #{record.playTime})
- </insert>
- <select id="statList" resultType="com.ym.mec.biz.dal.wrapper.StudentCoursewarePlayRecordWrapper$StatQueryData">
- select o.id_ as organizationId
- , o.name_ as organizationName
- , count(s.user_id_) as memberNum
- , (count(distinct s.user_id_) - count(distinct pr.user_id_)) as noPlayNum
- , count(distinct if(10 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess10
- , count(distinct if(pr.play_time_ > 10 * 60 and 60 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess60
- , count(distinct if(pr.play_time_ > 60 * 60 and 120 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess120
- , count(distinct if(pr.play_time_ > 120 * 60 and 240 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess240
- , count(distinct if(pr.play_time_ > 240 * 60, pr.user_id_, null)) as playTimeRather240
- , if(count(distinct pr.user_id_) = 0, 0, (sum(pr.play_time_) / (count(distinct pr.user_id_) * 60))) as avgPlayTime
- from organization o
- left join sys_user su on o.id_ = su.organ_id_
- left join student s on s.user_id_ = su.id_
- left join (select user_id_, sum(play_time_) play_time_
- from student_courseware_play_record
- where create_time_ > #{statQuery.startTime}
- and #{statQuery.endTime} > create_time_
- group by user_id_) pr on s.user_id_ = pr.user_id_
- where s.membership_end_time_ >= now()
- group by o.id_
- order by ${statQuery.sortBy}
- </select>
- <select id="statDetailPage" resultType="com.ym.mec.biz.dal.wrapper.StudentCoursewarePlayRecordWrapper$StatQueryData">
- select o.id_ as organizationId
- , o.name_ as organizationName
- , su2.username_ as teacherName
- , count(s.user_id_) as memberNum
- , (count(distinct s.user_id_) - count(distinct pr.user_id_)) as noPlayNum
- , count(distinct if(10 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess10
- , count(distinct if(pr.play_time_ > 10 * 60 and 600 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess60
- , count(distinct if(pr.play_time_ > 10 * 60 and 120 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess120
- , count(distinct if(pr.play_time_ > 120 * 60 and 240 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess240
- , count(distinct if(pr.play_time_ > 240 * 60, pr.user_id_, null)) as playTimeRather240
- , if(count(distinct pr.user_id_) = 0, 0, (sum(pr.play_time_) / (count(distinct pr.user_id_) * 60))) as avgPlayTime
- from organization o
- left join sys_user su on su.organ_id_ = o.id_
- left join student s on s.user_id_ = su.id_
- left join student_teacher_mapper stm on stm.student_id_ = s.user_id_
- left join sys_user su2 on su2.id_ = stm.teacher_id_
- left join (select user_id_, sum(play_time_) play_time_
- from student_courseware_play_record
- where create_time_ > #{statQuery.startTime}
- and #{statQuery.endTime} > create_time_
- group by user_id_) pr on s.user_id_ = pr.user_id_
- where o.id_ = #{statQuery.organizationId}
- and s.membership_end_time_ >= now()
- group by stm.teacher_id_
- order by ${statQuery.sortBy}
- </select>
- </mapper>
|