|
@@ -6,48 +6,51 @@
|
|
|
FROM student_courseware_play_record t
|
|
|
</select>
|
|
|
|
|
|
- <insert id="save" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
|
|
- INSERT INTO student_courseware_play_record (organization_id_, user_id_, play_time_, update_time_, create_time_)
|
|
|
- VALUES (#{record.organizationId},#{record.userId}, #{record.playTime}, NOW(), NOW())
|
|
|
+ <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(if(s.membership_end_time_ >= now(), 1, 0)) 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_)))) as avgPlayTime
|
|
|
+ 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 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 student s on s.cooperation_organ_id_ = o.id_
|
|
|
+ left join sys_user su on o.id_ = su.organ_id_
|
|
|
+ left join student s on s.user_id_ = su.id_
|
|
|
left join student_courseware_play_record pr on s.user_id_ = pr.user_id_ and pr.create_time_ > #{statQuery.startTime} and #{statQuery.endTime} > pr.create_time_
|
|
|
+ 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
|
|
|
- , su.username_ as teacherName
|
|
|
- , count(distinct sr.user_id_) as memberNum
|
|
|
- , (count(distinct sr.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_)))) as avgPlayTime
|
|
|
+ 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 student s on s.cooperation_organ_id_ = o.id_
|
|
|
- left join student_registration sr on sr.user_id_ = s.user_id_
|
|
|
- left join student_teacher_mapper stm on stm.student_id_ = sr.user_id_
|
|
|
- left join sys_user su on su.id_ = stm.teacher_id_
|
|
|
- left join student_courseware_play_record pr on sr.user_id_ = pr.user_id_ and pr.create_time_ > #{statQuery.startTime} and #{statQuery.endTime} > pr.create_time_
|
|
|
+ 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 student_courseware_play_record pr on s.user_id_ = pr.user_id_ and pr.create_time_ > #{statQuery.startTime} and #{statQuery.endTime} > pr.create_time_
|
|
|
where o.id_ = #{statQuery.organizationId}
|
|
|
+ and s.membership_end_time_ >= now()
|
|
|
group by stm.teacher_id_
|
|
|
order by #{statQuery.sortBy}
|
|
|
</select>
|