xiangpei
2025-06-03 95f8eda23ff06243e68d33769c5e68f6f6de2c4b
framework/src/main/resources/mapper/lmk/VideoMapper.xml
@@ -172,7 +172,7 @@
        UPDATE lmk_video
        SET collect_num = CASE id
        <foreach collection="list" item="video">
            WHEN #{video.id} THEN #{video.collectNum}
            WHEN #{video.id} THEN #{video.countNum}
        </foreach>
        ELSE collect_num
        END
@@ -182,4 +182,112 @@
        </foreach>
    </update>
    <update id="updateCommentNumBatch">
        UPDATE lmk_video
        SET comment_num = CASE id
        <foreach collection="list" item="video">
            WHEN #{video.id} THEN #{video.countNum}
        </foreach>
        ELSE comment_num
        END
        WHERE id IN
        <foreach collection="list" item="video" open="(" separator="," close=")">
            #{video.id}
        </foreach>
    </update>
    <select id="getAuthorInfo" resultType="cn.lili.modules.lmk.domain.vo.VideoAccountVO">
        SELECT
               LM.id as userId,
               LM.nick_name as nickName,
               LM.face 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_member 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'
    </select>
    <select id="countAuthorVideoCollectNum" resultType="long">
        SELECT COUNT(*) FROM lmk_my_collect WHERE collect_type = 'video' AND delete_flag = 0 AND ref_id IN <foreach
            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_id,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.status,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            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.author_id = #{query.authorId}
        ORDER BY
            LV.collect_num DESC
    </select>
    <select id="getAuthorCollectVideoPage" resultMap="WxResultMap">
        SELECT
            LV.author_id,
            LV.cover_url,
            LV.video_fit,
            LV.video_duration,
            LV.video_file_key,
            LV.title,
            LV.goods_id,
            LV.goods_view_num,
            LV.goods_order_num,
            LV.recommend,
            LV.status,
            LV.play_num,
            LV.comment_num,
            LV.collect_num,
            LV.weight,
            LV.audit_pass_time,
            LV.update_time,
            LV.id,
            LM.nick_name as authorName,
            LM.face as authorAvatar
        FROM
            lmk_my_collect 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.collect_type = 'video'
        ORDER BY
            LMC.create_time DESC
    </select>
</mapper>