xiaoyong931011
2021-12-16 cc16966cec3bd2d50b97d18a29ec5f359defa6ce
src/main/resources/mapper/video/VideoMasterInfoMapper.xml
@@ -3,6 +3,71 @@
<mapper namespace="cc.mrbird.febs.video.mapper.VideoMasterInfoMapper">
    <select id="selectInPage" resultType="cc.mrbird.febs.video.entity.VideoMasterInfoEntity">
        select
            a.*,
            count(b.id) itemCnt,
            c.play_cnt,
            c.collect_cnt,
            c.star_cnt
        from video_master_info a, video_master_items b, video_master_data c
        where a.id=b.master_id and a.id=c.master_id
        <if test="record.title != null and record.title != ''">
            and a.title like concat('%', #{record.title}, '%')
        </if>
        group by a.id
    </select>
    <resultMap id="videoMasterInfoMap" type="cc.mrbird.febs.video.entity.VideoMasterInfoEntity">
        <id property="id" column="id" />
        <result property="cateIds" column="cate_ids" />
        <result property="code" column="code" />
        <result property="title" column="title" />
        <result property="isFree" column="is_free" />
        <result property="isUp" column="is_up" />
        <result property="intro" column="intro" />
        <result property="thumb" column="thumb" />
        <collection property="items" ofType="cc.mrbird.febs.video.entity.VideoMasterItemsEntity" >
            <id property="id" column="item_id" />
            <result property="name" column="name" />
            <result property="thumb" column="item_thumb" />
            <result property="sourceId" column="source_id" />
            <result property="sourceName" column="sourceName" />
        </collection>
    </resultMap>
    <select id="selectEntityById" resultMap="videoMasterInfoMap">
        select
            a.*,
            b.id item_id,
            b.name,
            b.thumb item_thumb,
            b.source_id,
            c.name sourceName
        from video_master_info a, video_master_items b, video_master_source c
        where a.id=b.master_id and a.id=#{id} and b.source_id=c.id
    </select>
    <select id="selectVideoListInPage" resultType="cc.mrbird.febs.video.vo.VideoListVo">
        select
            a.*,
            count(b.id) itemCnt,
            (select c.time_length from video_master_source c where b.source_id=c.id limit 1) timeLength
        from video_master_info a
            inner join video_master_items b on a.id=b.master_id
            inner join video_master_data d on a.id=d.master_id
        <where>
                1=1
            <if test="record.isUp != null">
                and a.is_up = #{record.isUp}
            </if>
            <if test="record.isFree != null">
                and a.is_free = #{record.isFree}
            </if>
            <if test="record.query != null and record.query != ''">
                and title like concat('%', #{record.query}, '%')
            </if>
        </where>
        group by a.id
        order by d.play_cnt desc, a.created_time desc
    </select>
</mapper>