mirror of
https://github.com/PlayEdu/PlayEdu
synced 2026-01-02 17:19:31 +08:00
55 lines
2.6 KiB
XML
55 lines
2.6 KiB
XML
<?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="xyz.playedu.api.mapper.UserCourseHourRecordMapper">
|
|
|
|
<resultMap id="BaseResultMap" type="xyz.playedu.api.domain.UserCourseHourRecord">
|
|
<id property="id" column="id" jdbcType="INTEGER"/>
|
|
<result property="userId" column="user_id" jdbcType="INTEGER"/>
|
|
<result property="courseId" column="course_id" jdbcType="INTEGER"/>
|
|
<result property="hourId" column="hour_id" jdbcType="INTEGER"/>
|
|
<result property="totalDuration" column="total_duration" jdbcType="INTEGER"/>
|
|
<result property="finishedDuration" column="finished_duration" jdbcType="INTEGER"/>
|
|
<result property="realDuration" column="real_duration" jdbcType="INTEGER"/>
|
|
<result property="isFinished" column="is_finished" jdbcType="TINYINT"/>
|
|
<result property="finishedAt" column="finished_at" jdbcType="TIMESTAMP"/>
|
|
<result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
|
|
<result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
|
|
</resultMap>
|
|
|
|
<sql id="Base_Column_List">
|
|
id
|
|
,user_id,course_id,
|
|
hour_id,total_duration,finished_duration,
|
|
real_duration,is_finished,finished_at,
|
|
created_at,updated_at
|
|
</sql>
|
|
|
|
<select id="getUserLatestRecords" resultType="xyz.playedu.api.domain.UserCourseHourRecord">
|
|
select `t1`.*
|
|
from `user_course_hour_records` as `t1`
|
|
inner join (select `course_id`, max(`updated_at`) as `latest_at`
|
|
from `user_course_hour_records`
|
|
where `user_id` = #{userId}
|
|
group by `course_id`) as `t2`
|
|
on `t2`.`course_id` = `t1`.`course_id` and
|
|
`t2`.`latest_at` = `t1`.`updated_at`
|
|
order by `t1`.`updated_at` desc
|
|
limit #{size};
|
|
</select>
|
|
<select id="getUserCourseHourCount"
|
|
resultType="xyz.playedu.api.types.mapper.UserCourseHourRecordCountMapper">
|
|
SELECT `course_id`, count(1) AS `total`
|
|
FROM `user_course_hour_records`
|
|
WHERE `user_id` = #{userId}
|
|
<if test="courseIds != null and #{courseIds}.size() > 0">
|
|
AND `course_id` IN (<foreach collection="courseIds" item="courseId" separator=",">#{courseId}</foreach>)
|
|
</if>
|
|
<if test="isFinished != null">
|
|
AND `is_finisehd` = #{isFinished}
|
|
</if>
|
|
GROUP BY `course_id`;
|
|
</select>
|
|
</mapper>
|