video_server/src/main/resources/mapper/course/CourseDetailsDao.xml

118 lines
4.9 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.sqx.modules.course.dao.CourseDetailsDao">
<select id="courseSets" resultType="com.sqx.modules.course.vo.CourseDetailsSetVo">
select c.course_id as courseId
, c.course_details_id as courseDetailsId
, c.course_details_name as courseDetailsName
, c.video_url as videoUrl
, c.price as countPrice
, c.sort as sort
, ifnull(#{price}, 0) as price
, ifnull(#{wholesalePrice}, 0) as wholesalePrice
, IF(#{isPrice} = 1, c.is_price, 2) AS isPrice
, c.title_img as titleImg
, c.good_num as goodNum
, c.sort as sort
from course_details c
where c.course_id = #{courseId}
order by c.sort asc
</select>
<!--查找指定短剧的目录 按照顺序数字升序-->
<select id="findByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
select c.*,
ifnull(cc.isGood, 0) as isGood
from course_details c
left join (select course_details_id, count(*) isGood
from course_collect
where user_id = #{userId}
and classify = 2
group by course_details_id) cc on c.course_details_id = c.course_details_id
where c.course_id = #{id}
order by c.sort asc
</select>
<select id="selectCoursePageByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
select * from course_details where course_id=#{id}
<if test="good!=null and good==1">
and good=#{good}
</if>
<if test="good!=null and good==2">
and (good=#{good} or good is null)
</if>
order by sort asc
</select>
<select id="findByCourseIdNotUrl" resultType="com.sqx.modules.course.entity.CourseDetails">
select c.course_details_id as courseDetailsId,
c.course_id as courseId,
c.wx_course_details_id as wxCourseDetailsId,
c.course_details_name as courseDetailsName,
c.create_time as createTime,
c.title_img as titleImg,
c.content,
c.good_num as goodNum,
c.price,
if(c.is_price!=1, c.video_url, '') as videoUrl,
c.dy_episode_id as dyEpisodeId,
c.advertising,
c.view_count as viewCount,
c.play_complete_count as playCompleteCount,
ifnull(cc.isGood, 0) as isGood
from course_details c
left join (select course_details_id, count(*) as isGood
from course_collect
where user_id = #{userId}
and classify = 2
group by course_details_id) cc on cc.course_details_id = c.course_details_id
where c.course_id = #{id}
order by c.sort asc
</select>
<update id="updateViewCount">
update course_details
set
<if test="state==1">
view_count = view_count + 1
</if>
<if test="state==2">
play_complete_count = play_complete_count + 1
</if>
where
course_id=#{courseId}
and course_details_id =#{courseDetailsId}
</update>
<delete id="deleteCourseDetails" parameterType="String">
DELETE FROM course_details WHERE course_details_id IN
<foreach collection="array" item="ids" open="(" separator="," close=")">
#{ids}
</foreach>
</delete>
<select id="countCourseByCourseId" resultType="Integer">
select count(1)
from course_details
where course_id = #{courseId}
</select>
<select id="countCourse" resultType="Map">
select ifnull(sum(view_count), 0) as viewCounts,
ifnull(sum(good_num), 0) as goodNum,
ifnull(count(*), 0) as courseDetailsCount
from course_details
where course_id = #{courseId}
</select>
<select id="countByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
SELECT course_id as courseId,
COUNT(*) AS courseDetailsCount
FROM course_details
where course_details_id
GROUP BY course_id
</select>
</mapper>