You've already forked FrameTour-BE
- 修改VideoEntity类中字段workerId为faceId,并更新注释 - 更新TaskTaskServiceImpl中设置视频信息的逻辑,使用faceId替代workerId - 修改VideoMapper.xml中插入视频记录的SQL语句,字段由workerId改为faceId - 调整VideoMapper.xml中更新视频记录的SQL条件,使用faceId进行筛选 - 更新VideoMapper.xml中查询视频列表和单个视频详情的SQL语句,字段名由workerId改为faceId - 优化查询条件中对faceId的处理逻辑,直接关联video表的face_id字段
188 lines
8.7 KiB
XML
188 lines
8.7 KiB
XML
<?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.ycwl.basic.mapper.VideoMapper">
|
|
<insert id="add">
|
|
insert into video(id, scenic_id, template_id, task_id, face_id, video_url, height, width, duration)
|
|
values (#{id}, #{scenicId}, #{templateId}, #{taskId}, #{faceId}, #{videoUrl}, #{height}, #{width}, #{duration})
|
|
</insert>
|
|
<insert id="addRelation">
|
|
INSERT INTO member_video(member_id, scenic_id, face_id, template_id, task_id, video_id, is_buy, order_id)
|
|
VALUES (#{memberId}, #{scenicId}, #{faceId}, #{templateId}, #{taskId}, #{videoId}, #{isBuy}, #{orderId})
|
|
ON DUPLICATE KEY UPDATE
|
|
video_id = VALUES(video_id),
|
|
is_buy = VALUES(is_buy),
|
|
order_id = VALUES(order_id)
|
|
</insert>
|
|
<insert id="addRelations">
|
|
INSERT INTO member_video(member_id, scenic_id, face_id, template_id, task_id, video_id, is_buy, order_id)
|
|
VALUES
|
|
<foreach collection="list" item="item" separator=",">
|
|
(#{item.memberId}, #{item.scenicId}, #{item.faceId}, #{item.templateId}, #{item.taskId}, #{item.videoId}, #{item.isBuy}, #{orderId})
|
|
</foreach>
|
|
ON DUPLICATE KEY UPDATE
|
|
video_id = VALUES(video_id),
|
|
is_buy = VALUES(is_buy),
|
|
order_id = VALUES(order_id)
|
|
</insert>
|
|
<update id="update">
|
|
update video
|
|
<set>
|
|
<if test="scenicId!= null">scenic_id = #{scenicId}, </if>
|
|
<if test="templateId!= null">template_id = #{templateId}, </if>
|
|
<if test="taskId!= null">task_id = #{taskId}, </if>
|
|
<if test="faceId!= null">face_id = #{faceId}, </if>
|
|
<if test="videoUrl!= null">video_url = #{videoUrl}, </if>
|
|
<if test="height!= null">height = #{height}, </if>
|
|
<if test="width!= null">width = #{width}, </if>
|
|
<if test="duration!= null">duration = #{duration}, </if>
|
|
</set>
|
|
where id = #{id}
|
|
</update>
|
|
<update id="updateMeta">
|
|
update video
|
|
set height = #{height},
|
|
width = #{width},
|
|
duration = #{duration}
|
|
where id = #{id}
|
|
</update>
|
|
<update id="updateRelation">
|
|
update member_video
|
|
<set>
|
|
<if test="isBuy!= null">is_buy = #{isBuy}, </if>
|
|
<if test="orderId!= null">order_id = #{orderId}, </if>
|
|
</set>
|
|
where member_id = #{memberId} and video_id = #{videoId}
|
|
</update>
|
|
<update id="updateRelationWhenTaskSuccess">
|
|
update member_video
|
|
set video_id = #{videoId}, is_buy = #{isBuy}
|
|
where task_id = #{taskId}
|
|
</update>
|
|
<delete id="deleteById">
|
|
delete from video where id = #{id}
|
|
</delete>
|
|
<delete id="deleteNotBuyRelations">
|
|
delete from member_video
|
|
where scenic_id = #{scenicId} and is_buy = 0 and create_time < #{endDate}
|
|
</delete>
|
|
<delete id="deleteNotBuyFaceRelations">
|
|
delete from member_video
|
|
where member_id = #{userId} and face_id = #{faceId} and is_buy = 0
|
|
</delete>
|
|
<delete id="deleteUselessVideo">
|
|
delete from video
|
|
where id not in (
|
|
select video_id from member_video where video_id is not null
|
|
) and id not in (
|
|
select video_id from video_review where video_id is not null
|
|
)
|
|
</delete>
|
|
<select id="list" resultType="com.ycwl.basic.model.pc.video.resp.VideoRespVO">
|
|
select v.id, v.scenic_id, v.template_id, v.task_id, v.face_id, tk.worker_id, v.video_url, v.create_time, v.update_time,
|
|
t.name templateName, t.cover_url templateCoverUrl,
|
|
tk.task_params taskParams, tk.start_time, tk.end_time
|
|
from video v
|
|
left join template t on v.template_id = t.id
|
|
left join task tk on v.task_id = tk.id
|
|
<where>
|
|
<if test="scenicId!= null">and v.scenic_id = #{scenicId} </if>
|
|
<if test="templateId!= null">and v.template_id = #{templateId} </if>
|
|
<if test="taskId!=null">and v.task_id = #{taskId}</if>
|
|
<if test="workerId!= null">and tk.worker_id = #{workerId} </if>
|
|
<if test="startTime!= null">and v.create_time >= #{startTime} </if>
|
|
<if test="endTime!= null">and v.create_time <= #{endTime} </if>
|
|
<if test="faceId!= null">and v.face_id = #{faceId}</if>
|
|
</where>
|
|
order by v.create_time desc
|
|
</select>
|
|
<select id="getById" resultType="com.ycwl.basic.model.pc.video.resp.VideoRespVO">
|
|
select v.id, v.scenic_id, v.template_id, v.task_id, v.face_id, tk.worker_id, v.video_url, v.create_time, v.update_time,
|
|
t.name templateName, t.cover_url templateCoverUrl,
|
|
tk.task_params taskParams, tk.start_time, tk.end_time
|
|
from video v
|
|
left join template t on v.template_id = t.id
|
|
left join task tk on v.task_id = tk.id
|
|
where v.id = #{id}
|
|
</select>
|
|
<select id="findByTaskId" resultType="com.ycwl.basic.model.pc.video.entity.VideoEntity">
|
|
select * from video where task_id = #{taskId} limit 1
|
|
</select>
|
|
<select id="queryByRelation" resultType="com.ycwl.basic.model.pc.video.resp.VideoRespVO">
|
|
select v.id, mv.scenic_id, v.template_id, mv.task_id, mv.face_id, tk.worker_id, v.video_url, v.create_time, v.update_time,
|
|
t.name templateName, t.price templatePrice,t.cover_url templateCoverUrl, mv.is_buy,
|
|
tk.task_params taskParams
|
|
from member_video mv
|
|
left join video v on mv.video_id = v.id
|
|
left join template t on mv.template_id = t.id
|
|
left join task tk on mv.task_id = tk.id
|
|
<where>
|
|
<if test="scenicId!= null">and mv.scenic_id = #{scenicId} </if>
|
|
<if test="memberId!= null">and mv.member_id = #{memberId} </if>
|
|
<if test="templateId!= null">and mv.template_id = #{templateId} </if>
|
|
<if test="taskId!=null">and mv.task_id = #{taskId} </if>
|
|
<if test="isBuy!=null">and mv.is_buy = #{isBuy}</if>
|
|
<if test="startTime!= null">and v.create_time >= #{startTime} </if>
|
|
<if test="endTime!= null">and v.create_time <= #{endTime} </if>
|
|
<if test="faceId!= null">and mv.face_id = #{faceId} </if>
|
|
</where>
|
|
order by v.create_time desc
|
|
</select>
|
|
<select id="userFaceTemplateVideo" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select * from member_video where member_id = #{userId} and face_id = #{faceId} and template_id = #{templateId} order by create_time desc
|
|
</select>
|
|
<select id="listRelationByFace" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select mv.*
|
|
from member_video mv
|
|
where mv.face_id = #{faceId}
|
|
</select>
|
|
<select id="listRelationByTask" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select mv.*
|
|
from member_video mv
|
|
where mv.task_id = #{taskId}
|
|
</select>
|
|
<select id="listRelationByFaceAndTemplate" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select mv.*
|
|
from member_video mv
|
|
where mv.face_id = #{faceId} and mv.template_id = #{templateId}
|
|
</select>
|
|
<select id="listTaskByScenicRelation" resultType="com.ycwl.basic.model.pc.task.entity.TaskEntity">
|
|
select t.*
|
|
from member_video mv
|
|
left join task t on mv.task_id = t.id
|
|
where mv.member_id = #{userId} and t.scenic_id = #{scenicId}
|
|
</select>
|
|
<select id="queryUserVideo" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select *
|
|
from member_video
|
|
where member_id = #{userId} and video_id = #{videoId}
|
|
limit 1
|
|
</select>
|
|
<select id="queryRelationByMemberTask" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select *
|
|
from member_video
|
|
where member_id = #{userId} and task_id = #{taskId}
|
|
limit 1
|
|
</select>
|
|
<select id="listRelationByCreateTime" resultType="com.ycwl.basic.model.pc.video.entity.MemberVideoEntity">
|
|
select *
|
|
from member_video
|
|
where create_time >= #{startTime} and create_time <= #{endTime}
|
|
</select>
|
|
<select id="getEntity" resultType="com.ycwl.basic.model.pc.video.entity.VideoEntity">
|
|
select *
|
|
from video
|
|
where id = #{id}
|
|
</select>
|
|
<update id="updateMemberIdByFaceId">
|
|
update member_video
|
|
set member_id = #{memberId}
|
|
where face_id = #{faceId}
|
|
</update>
|
|
|
|
<!-- 查询指定视频是否存在已购买记录 -->
|
|
<select id="countBuyRecordByVideoId" resultType="int">
|
|
select count(*)
|
|
from member_video
|
|
where video_id = #{videoId} and is_buy = 1
|
|
</select>
|
|
</mapper> |