LiveVodsMapper.xml 1.95 KB
<?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.subsidy.mapper.LiveVodsMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.subsidy.model.LiveVodsDO">
        <id column="id" property="id" />
        <result column="create_date" property="createDate" />
        <result column="update_date" property="updateDate" />
        <result column="delete_date" property="deleteDate" />
        <result column="live_id" property="liveId" />
        <result column="vod_name" property="vodName" />
        <result column="vod_url" property="vodUrl" />
        <result column="vod_length" property="vodLength" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        create_date,
        update_date,
        delete_date,
        id, live_id, vod_name, vod_url, vod_length
    </sql>

    <select id="memberPlayback" resultType="com.subsidy.vo.live.MemberPlaybackVO">
        SELECT
            t.id,
            t.vod_name,
            t.vod_url,
            t2.create_date,
            t2.play_length,
            t.vod_length,
        IF
            ( t.vod_length > t2.play_length, ROUND( t2.play_length * 100 / t.vod_length ), 100 ) AS percent
        FROM
            live_vods t
            LEFT JOIN (
            SELECT
                t.live_id,
                t.member_id,
                t.live_vod_id,
                IFNULL( sum( t.play_length ), 0 ) AS play_length,
                MAX( t.create_date ) AS create_date
            FROM
                live_playback_history t
            WHERE
                t.delete_date IS NULL
                AND t.live_id = #{liveId}
                AND member_id = #{memberId}
            GROUP BY
                t.live_id,
                t.member_id,
            t.live_vod_id
            ) t2 ON t.id = t2.live_vod_id
    </select>

</mapper>