<?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="cn.lili.modules.lmk.mapper.VideoMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.VideoVO">
|
<id column="id" property="id"/>
|
<result column="author_id" property="authorId" />
|
<result column="authorName" property="authorName" />
|
<result column="cover_url" property="coverUrl" />
|
<result column="video_file_key" property="videoFileKey" />
|
<result column="video_fit" property="videoFit" />
|
<result column="title" property="title" />
|
<result column="video_duration" property="videoDuration" />
|
<result column="recommend" property="recommend" />
|
<result column="status" property="status" />
|
<result column="play_num" property="playNum" />
|
<result column="collect_num" property="collectNum" />
|
<result column="comment_num" property="commentNum" />
|
<result column="weight" property="weight" />
|
<result column="audit_pass_time" property="auditPassTime" />
|
<result column="update_time" property="updateTime" />
|
<result column="video_content_type" property="videoContentType" />
|
<result column="video_type" property="videoType" />
|
<result column="video_imgs" property="videoImgs" />
|
<collection property="goodsList" column="id" select="getVideoGoods" ofType="cn.lili.modules.lmk.domain.vo.VideoGoodsDetailVO"/>
|
</resultMap>
|
|
<resultMap id="VideoGoodsMap" type="cn.lili.modules.lmk.domain.vo.VideoGoodsDetailVO">
|
<result column="goods_id" property="goodsId"/>
|
<result column="goods_num" property="goodsNum"/>
|
<result column="goods_name" property="goodsName"/>
|
<result column="thumbnail" property="thumbnail"/>
|
<result column="price" property="price"/>
|
</resultMap>
|
|
<select id="getVideoGoods" parameterType="string" resultMap="VideoGoodsMap">
|
SELECT
|
LVG.goods_id,
|
LVG.goods_num,
|
LVG.order_num,
|
LG.goods_name,
|
LG.thumbnail,
|
LG.price
|
FROM
|
lmk_video_goods LVG
|
INNER JOIN li_goods LG ON LVG.goods_id = LG.id AND LG.market_enable = 'UPPER' AND LG.delete_flag = 0
|
WHERE
|
LVG.video_id = #{id} AND LVG.delete_flag = 0
|
ORDER BY
|
LVG.order_num ASC
|
</select>
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="KitchenVideoMap" type="cn.lili.modules.lmk.domain.vo.KitchenVideoVO">
|
<id column="id" property="id"/>
|
<result column="author_id" property="authorId" />
|
<result column="authorName" property="authorName" />
|
<result column="cover_url" property="coverUrl" />
|
<result column="video_file_key" property="videoFileKey" />
|
<result column="video_fit" property="videoFit" />
|
<result column="title" property="title" />
|
<result column="goods_view_num" property="goodsViewNum" />
|
<result column="video_duration" property="videoDuration" />
|
<result column="goods_order_num" property="goodsOrderNum" />
|
<result column="recommend" property="recommend" />
|
<result column="status" property="status" />
|
<result column="play_num" property="playNum" />
|
<result column="collect_num" property="collectNum" />
|
<result column="comment_num" property="commentNum" />
|
<result column="weight" property="weight" />
|
<result column="audit_pass_time" property="auditPassTime" />
|
<result column="update_time" property="updateTime" />
|
<result column="video_content_type" property="videoContentType" />
|
<result column="video_type" property="videoType" />
|
<result column="video_imgs" property="videoImgs" />
|
</resultMap>
|
|
<!-- 微信推荐视频 -->
|
<resultMap id="WxResultMap" type="cn.lili.modules.lmk.domain.vo.WxVideoVO">
|
<id column="id" property="id"/>
|
<result column="author_id" property="authorId" />
|
<result column="authorName" property="authorName" />
|
<result column="authorAvatar" property="authorAvatar" />
|
<result column="cover_url" property="coverFileKey" />
|
<result column="video_file_key" property="videoFileKey" />
|
<result column="video_fit" property="videoFit" />
|
<result column="title" property="title" />
|
<result column="collect_num" property="collectNum" />
|
<result column="comment_num" property="commentNum" />
|
<result column="status" property="status" />
|
<result column="video_content_type" property="videoContentType" />
|
<result column="video_type" property="videoType" />
|
<result column="video_imgs" property="videoImgs" />
|
<collection property="goodsList" column="id" select="getVideoGoods" ofType="cn.lili.modules.lmk.domain.vo.VideoGoodsDetailVO"/>
|
</resultMap>
|
|
|
<select id="getById" resultMap="BaseResultMap">
|
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.collect_num,
|
LV.comment_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
|
FROM
|
lmk_video LV
|
LEFT JOIN li_member LM ON LV.author_id = LM.id
|
WHERE
|
LV.id = #{id} AND LV.delete_flag = 0
|
</select>
|
|
|
<select id="getPage" resultMap="BaseResultMap">
|
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.collect_num,
|
LV.comment_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
|
FROM
|
lmk_video LV
|
LEFT JOIN li_member LM ON LV.author_id = LM.id
|
WHERE
|
LV.delete_flag = 0
|
</select>
|
|
|
<select id="managerPage" resultMap="BaseResultMap">
|
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.collect_num,
|
LV.comment_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
|
FROM
|
lmk_video LV
|
LEFT JOIN li_member LM ON LV.author_id = LM.id
|
<if test="query.tagList != null and query.tagList.size > 0">
|
INNER JOIN (
|
SELECT DISTINCT video_id
|
FROM lmk_video_tag_ref
|
WHERE video_tag_id IN
|
<foreach collection="query.tagList" open="(" item="tagId" close=")" separator=",">#{tagId}</foreach>
|
) AS LVT ON LV.id = LVT.video_id
|
</if>
|
WHERE
|
LV.delete_flag = 0 AND LV.video_type = #{query.videoType}
|
<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>
|
</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.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 AND LV.status = '1' AND LV.video_type = #{query.videoType}
|
</select>
|
|
|
<update id="updateCollectNumBatch">
|
UPDATE lmk_video
|
SET collect_num = CASE id
|
<foreach collection="list" item="video">
|
WHEN #{video.id} THEN #{video.countNum}
|
</foreach>
|
ELSE collect_num
|
END
|
WHERE id IN
|
<foreach collection="list" item="video" open="(" separator="," close=")">
|
#{video.id}
|
</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_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.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="getAuthorCollectVideoPage" 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.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_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' AND LV.video_type = #{query.videoType}
|
ORDER BY
|
LMC.create_time DESC
|
</select>
|
|
|
<!-- 微信视频编辑详情 -->
|
<resultMap id="WxEditResultMap" type="cn.lili.modules.lmk.domain.vo.WxEditVideoVO">
|
<id column="id" property="id"/>
|
<result column="cover_url" property="coverFileKey" />
|
<result column="video_file_key" property="videoFileKey" />
|
<result column="video_fit" property="videoFit" />
|
<result column="title" property="title" />
|
<result column="video_duration" property="videoDuration" />
|
</resultMap>
|
|
<select id="wxDetail" resultMap="WxEditResultMap">
|
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.weight,
|
LV.audit_pass_time,
|
LV.update_time,
|
LV.video_content_type,
|
LV.video_type,
|
LV.video_imgs,
|
LV.id
|
FROM
|
lmk_video LV
|
WHERE
|
LV.delete_flag = 0 AND LV.id = #{id}
|
</select>
|
<select id="healthPage" resultMap="BaseResultMap">
|
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.collect_num,
|
LV.comment_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
|
FROM
|
lmk_video LV
|
LEFT JOIN li_member LM ON LV.author_id = LM.id
|
<if test="query.tagList != null and query.tagList.size > 0">
|
INNER JOIN (
|
SELECT DISTINCT video_id
|
FROM lmk_video_tag_ref
|
WHERE video_tag_id IN
|
<foreach collection="query.tagList" open="(" item="tagId" close=")" separator=",">#{tagId}</foreach>
|
) AS LVT ON LV.id = LVT.video_id
|
</if>
|
WHERE
|
LV.delete_flag = 0 AND LV.video_type = #{query.videoType}
|
<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>
|
</select>
|
|
<select id="kitchenPage" resultMap="KitchenVideoMap">
|
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.collect_num,
|
LV.comment_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
|
FROM
|
lmk_video LV
|
LEFT JOIN li_member LM ON LV.author_id = LM.id
|
<if test="query.typeList != null and query.typeList.size > 0">
|
INNER JOIN (
|
SELECT DISTINCT video_id
|
FROM lmk_kitchen_video_type_ref
|
WHERE kitchen_type_id IN
|
<foreach collection="query.typeList" open="(" item="tagId" close=")" separator=",">#{tagId}</foreach>
|
) AS LVT ON LV.id = LVT.video_id
|
</if>
|
WHERE
|
LV.delete_flag = 0 AND LV.video_type = #{query.videoType}
|
<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>
|
</select>
|
</mapper>
|