peng
2025-11-06 1a7a278e32123023fa43bdaa274da778c27b80a0
framework/src/main/resources/mapper/lmk/VideoMapper.xml
@@ -230,10 +230,152 @@
            <if test="query.title != null and query.title != ''">AND LV.title LIKE CONCAT('%', #{query.title}, '%')</if>
            <if test="query.authorId != null and query.authorId != ''">AND LV.author_id = #{query.authorId}</if>
            <if test="query.status != null and query.status != ''">AND LV.status = #{query.status}</if>
        order by LV.create_time DESC
    </select>
<!-- todo 备份原有的失去了文件-->
<!--    <select id="recommendVideo" resultMap="WxResultMap">-->
<!--        SELECT-->
<!--            LV.author_id,-->
<!--            LV.cover_url,-->
<!--            LV.video_fit,-->
<!--            LV.video_duration,-->
<!--            LV.video_file_key,-->
<!--            LV.title,-->
<!--            LV.goods_view_num,-->
<!--            LV.goods_order_num,-->
<!--            LV.recommend,-->
<!--            LV.status,-->
<!--            LV.play_num,-->
<!--            LV.comment_num,-->
<!--            LV.collect_num,-->
<!--            LV.thumbs_up_num,-->
<!--            LV.weight,-->
<!--            LV.audit_pass_time,-->
<!--            LV.update_time,-->
<!--            LV.create_time,-->
<!--            LV.video_content_type,-->
<!--            LV.video_type,-->
<!--            LV.video_imgs,-->
<!--            LV.id,-->
<!--            LM.nick_name as authorName,-->
<!--            LM.face as authorAvatar-->
<!--        FROM-->
<!--            lmk_video LV-->
<!--            LEFT JOIN li_member LM ON LV.author_id = LM.id-->
<!--        WHERE-->
<!--            LV.delete_flag = 0 AND LV.status = '1' AND LV.video_type = #{query.videoType}-->
<!--        ORDER BY-->
<!--            LV.create_time DESC-->
<!--    </select> -->
    <select id="recommendVideo" resultMap="WxResultMap">
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.STATUS,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.thumbs_up_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.create_time,
            LV.video_content_type,
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name AS authorName,
            LM.face AS authorAvatar
        FROM
            lmk_video LV
                LEFT JOIN li_member LM ON LV.author_id = LM.id
        WHERE
            LV.delete_flag = 0
          AND LV.STATUS = '1'
          AND LV.video_type = #{query.videoType}
          AND LM.id IS NOT NULL
        UNION ALL
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.STATUS,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.thumbs_up_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.create_time,
            LV.video_content_type,
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name AS authorName,
            LM.avatar AS authorAvatar
        FROM
            lmk_video LV
                LEFT JOIN li_admin_user LM ON LV.author_id = LM.id
        WHERE
            LV.delete_flag = 0
          AND LV.STATUS = '1'
          AND LV.video_type = #{query.videoType}
          AND LM.id IS NOT NULL
        ORDER BY
            recommend DESC,
            weight DESC,
            create_time DESC
    </select>
    <select id="recommendVideoByVideoId" resultMap="WxResultMap">
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.status,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.thumbs_up_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.create_time,
            LV.video_content_type,
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name as authorName,
            LM.face as authorAvatar
        FROM
            lmk_video LV
                LEFT JOIN li_member LM ON LV.author_id = LM.id
        WHERE
            LV.delete_flag = 0 AND LV.status = '1' AND LV.id = #{query.videoId}
        ORDER BY
            LV.create_time DESC
    </select>
    <select id="recommendVideoList" resultMap="WxResultMap">
        SELECT
            LV.author_id,
            LV.cover_url,
@@ -492,6 +634,25 @@
        WHERE
              LM.id = #{authorId} AND LM.delete_flag = 0
    </select>
    <select id="getAuthorInfoAdmin" resultType="cn.lili.modules.lmk.domain.vo.VideoAccountVO">
        SELECT
               LM.id as userId,
               LM.nick_name as nickName,
               LM.avatar as avatar,
               LVA.motto,
               (SELECT COUNT(*) FROM lmk_my_subscribe WHERE subscribe_user_id = #{authorId} AND delete_flag = 0) as fansNum,
               (SELECT COUNT(*) FROM lmk_my_subscribe WHERE user_id = #{authorId} AND delete_flag = 0) as subNum,
               (SELECT CASE
                           WHEN id IS NOT NULL THEN 1
                           ELSE 0
                           END
               FROM lmk_my_subscribe WHERE user_id = #{currentUserId} AND subscribe_user_id = #{authorId} AND delete_flag = 0) as hasSub
        FROM
            li_admin_user LM
                 LEFT JOIN lmk_video_account LVA ON LM.id = LVA.user_id
        WHERE
              LM.id = #{authorId} AND LM.delete_flag = 0
    </select>
    <select id="getVideoIdsByAuthor" parameterType="string" resultType="string">
        SELECT id FROM lmk_video WHERE author_id = #{authorId} AND delete_flag = 0 AND status = '1'
@@ -502,8 +663,46 @@
            collection="videoIds" open="(" close=")" separator="," item="videoId">#{videoId}</foreach>
    </select>
<!--    <select id="getAuthorVideoPage" resultMap="WxResultMap">-->
<!--        SELECT-->
<!--            LV.author_id,-->
<!--            LV.cover_url,-->
<!--            LV.video_fit,-->
<!--            LV.video_duration,-->
<!--            LV.video_file_key,-->
<!--            LV.title,-->
<!--            LV.goods_view_num,-->
<!--            LV.goods_order_num,-->
<!--            LV.recommend,-->
<!--            LV.status,-->
<!--            LV.play_num,-->
<!--            LV.comment_num,-->
<!--            LV.collect_num,-->
<!--            LV.thumbs_up_num,-->
<!--            LV.weight,-->
<!--            LV.audit_pass_time,-->
<!--            LV.update_time,-->
<!--            LV.video_content_type,-->
<!--            LV.video_type,-->
<!--            LV.video_imgs,-->
<!--            LV.id,-->
<!--            LM.nick_name as authorName,-->
<!--            LM.face as authorAvatar-->
<!--        FROM-->
<!--            lmk_video LV-->
<!--                LEFT JOIN li_member LM ON LV.author_id = LM.id-->
<!--        WHERE-->
<!--            LV.delete_flag = 0-->
<!--            <if test="!query.authorSelf">-->
<!--                AND LV.status = '1'-->
<!--            </if>-->
<!--            AND LV.author_id = #{query.authorId}-->
<!--            AND LV.video_type = #{query.videoType}-->
<!--        ORDER BY-->
<!--            LV.collect_num DESC-->
<!--    </select>-->
    <select id="getAuthorVideoPage" resultMap="WxResultMap">
        SELECT
      select  * from (SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
@@ -513,7 +712,7 @@
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.status,
            LV.STATUS,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
@@ -525,20 +724,57 @@
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name as authorName,
            LM.face as authorAvatar
            LM.nick_name AS authorName,
            LM.face AS authorAvatar
        FROM
            lmk_video LV
                LEFT JOIN li_member LM ON LV.author_id = LM.id
        WHERE
            LV.delete_flag = 0
            <if test="!query.authorSelf">
                AND LV.status = '1'
            </if>
            AND LV.author_id = #{query.authorId}
            AND LV.video_type = #{query.videoType}
        LV.delete_flag = 0
        <if test="!query.authorSelf">
            AND LV.status = '1'
        </if>
        AND LV.author_id = #{query.authorId}
        AND LV.video_type = #{query.videoType}
        and lm.id IS NOT NULL
        UNION ALL
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.STATUS,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.thumbs_up_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.video_content_type,
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name AS authorName,
            LM.avatar AS authorAvatar
        FROM
            lmk_video LV
                LEFT JOIN li_admin_user LM ON LV.author_id = LM.id
        WHERE
        LV.delete_flag = 0
        <if test="!query.authorSelf">
            AND LV.status = '1'
        </if>
        AND LV.author_id = #{query.authorId}
        AND LV.video_type = #{query.videoType}
        and   lm.id IS NOT NULL) t
        ORDER BY
            LV.collect_num DESC
        t.collect_num DESC
    </select>
    <select id="getAuthorCollectVideoPage" resultMap="WxResultMap">
@@ -578,38 +814,117 @@
    <select id="getAuthorLikeVideoPage" resultMap="WxResultMap">
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.status,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.thumbs_up_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.video_content_type,
            LV.video_type,
            LV.video_imgs,
            LV.id,
            LM.nick_name as authorName,
            LM.face as authorAvatar
            *
        FROM
            lmk_thumbs_up_record LMC
                INNER JOIN lmk_video LV ON LMC.ref_id = LV.id AND LV.delete_flag = 0 AND LV.status = '1'
                LEFT JOIN li_member LM ON LV.author_id = LM.id
        WHERE
            LMC.delete_flag = 0 AND LMC.user_id = #{query.authorId} AND LMC.thumbs_up_type = 'video' AND LV.video_type = #{query.videoType}
            (
                SELECT
                    LV.author_id,
                    LV.cover_url,
                    LV.video_fit,
                    LV.video_duration,
                    LV.video_file_key,
                    LV.title,
                    LV.goods_view_num,
                    LV.goods_order_num,
                    LV.recommend,
                    LV.STATUS,
                    LV.play_num,
                    LV.comment_num,
                    LV.collect_num,
                    LV.thumbs_up_num,
                    LV.weight,
                    LV.audit_pass_time,
                    LV.update_time,
                    LV.video_content_type,
                    LV.video_type,
                    LV.video_imgs,
                    LV.id,
                    LM.nick_name AS authorName,
                    LM.face AS authorAvatar,
                    LV.create_time
                FROM
                    lmk_thumbs_up_record LMC
                        INNER JOIN lmk_video LV ON LMC.ref_id = LV.id
                        AND LV.delete_flag = 0
                        AND LV.STATUS = '1'
                        LEFT JOIN li_member LM ON LV.author_id = LM.id
                WHERE
                    LMC.delete_flag = 0
                  AND LM.id IS NOT NULL
                  AND LMC.user_id = #{query.authorId} AND LMC.thumbs_up_type = 'video' AND LV.video_type = #{query.videoType}
                UNION ALL
                SELECT
                    LV.author_id,
                    LV.cover_url,
                    LV.video_fit,
                    LV.video_duration,
                    LV.video_file_key,
                    LV.title,
                    LV.goods_view_num,
                    LV.goods_order_num,
                    LV.recommend,
                    LV.STATUS,
                    LV.play_num,
                    LV.comment_num,
                    LV.collect_num,
                    LV.thumbs_up_num,
                    LV.weight,
                    LV.audit_pass_time,
                    LV.update_time,
                    LV.video_content_type,
                    LV.video_type,
                    LV.video_imgs,
                    LV.id,
                    LM.nick_name AS authorName,
                    LM.avatar AS authorAvatar,
                    LV.create_time
                FROM
                    lmk_thumbs_up_record LMC
                        INNER JOIN lmk_video LV ON LMC.ref_id = LV.id
                        AND LV.delete_flag = 0
                        AND LV.STATUS = '1'
                        LEFT JOIN li_admin_user LM ON LV.author_id = LM.id
                WHERE
                    LMC.delete_flag = 0
                  AND LM.id IS NOT NULL
                  AND LMC.user_id = #{query.authorId} AND LMC.thumbs_up_type = 'video' AND LV.video_type = #{query.videoType}) t
        ORDER BY
            LMC.create_time DESC
            t.create_time DESC
    </select>
<!--    <select id="getAuthorLikeVideoPage" resultMap="WxResultMap">-->
<!--        SELECT-->
<!--            LV.author_id,-->
<!--            LV.cover_url,-->
<!--            LV.video_fit,-->
<!--            LV.video_duration,-->
<!--            LV.video_file_key,-->
<!--            LV.title,-->
<!--            LV.goods_view_num,-->
<!--            LV.goods_order_num,-->
<!--            LV.recommend,-->
<!--            LV.status,-->
<!--            LV.play_num,-->
<!--            LV.comment_num,-->
<!--            LV.collect_num,-->
<!--            LV.thumbs_up_num,-->
<!--            LV.weight,-->
<!--            LV.audit_pass_time,-->
<!--            LV.update_time,-->
<!--            LV.video_content_type,-->
<!--            LV.video_type,-->
<!--            LV.video_imgs,-->
<!--            LV.id,-->
<!--            LM.nick_name as authorName,-->
<!--            LM.face as authorAvatar-->
<!--        FROM-->
<!--            lmk_thumbs_up_record LMC-->
<!--                INNER JOIN lmk_video LV ON LMC.ref_id = LV.id AND LV.delete_flag = 0 AND LV.status = '1'-->
<!--                LEFT JOIN li_member LM ON LV.author_id = LM.id-->
<!--        WHERE-->
<!--            LMC.delete_flag = 0 AND LMC.user_id = #{query.authorId} AND LMC.thumbs_up_type = 'video' AND LV.video_type = #{query.videoType}-->
<!--        ORDER BY-->
<!--            LMC.create_time DESC-->
<!--    </select>-->
    <!-- 微信视频编辑详情 -->
@@ -905,5 +1220,17 @@
            LV.delete_flag = 0
        LIMIT #{start}, #{pageSize}
    </select>
    <resultMap id="videoUserBaseInfoMap" type="cn.lili.modules.lmk.domain.vo.VideoUserBaseInfo">
    <result property="avatar" column="avatar"/>
    <result property="nickName" column="nick_name"/>
    </resultMap>
    <select id="getVideoSysUserBaseInfo" resultMap="videoUserBaseInfoMap">
        SELECT nick_name ,avatar FROM li_admin_user
        WHERE id = #{id}
    </select>
    <select id="getVideoMemUserBaseInfo" resultMap="videoUserBaseInfoMap">
        SELECT nick_name, face AS avatar
        FROM li_member
        WHERE id = #{id}
    </select>
</mapper>