观影记录 开始结束 全集

This commit is contained in:
2025-01-06 16:24:46 +08:00
parent 156784f20b
commit a16e632e98
3 changed files with 68 additions and 42 deletions

View File

@@ -31,6 +31,15 @@ public interface CourseDetailsDao extends BaseMapper<CourseDetails> {
List<CourseDetails> findByCourseIdNotUrl(@Param("id") Long id, @Param("userId") Long userId); List<CourseDetails> findByCourseIdNotUrl(@Param("id") Long id, @Param("userId") Long userId);
/**
* 更新播放数量
*
* @param courseId courseId 必须有值
* @param courseDetailsId courseDetailsId 必须有值
* @param state 1为 ViewCount 其它 为 PlayCompleteCount
*/
void updateViewCount(@Param("courseId") Long courseId,@Param("courseDetailsId") Long courseDetailsId, @Param("state") int state);
int deleteCourseDetails(String[] ids); int deleteCourseDetails(String[] ids);

View File

@@ -32,6 +32,7 @@ import com.sqx.modules.course.dao.CourseDao;
import com.sqx.modules.course.dao.CourseDetailsDao; import com.sqx.modules.course.dao.CourseDetailsDao;
import com.sqx.modules.course.dao.CourseUserDao; import com.sqx.modules.course.dao.CourseUserDao;
import com.sqx.modules.course.entity.Course; import com.sqx.modules.course.entity.Course;
import com.sqx.modules.course.entity.CourseCollect;
import com.sqx.modules.course.entity.CourseDetails; import com.sqx.modules.course.entity.CourseDetails;
import com.sqx.modules.course.entity.CourseUser; import com.sqx.modules.course.entity.CourseUser;
import com.sqx.modules.course.service.CourseService; import com.sqx.modules.course.service.CourseService;
@@ -1287,21 +1288,21 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
if (course == null) { if (course == null) {
return Result.error("短剧不存在"); return Result.error("短剧不存在");
} }
LambdaQueryWrapper<CourseDetails> queryWrapper = new LambdaQueryWrapper<>();
CourseDetails details = courseDetailsDao.selectById(courseDetailsId); queryWrapper.eq(CourseDetails::getCourseId, courseId);
queryWrapper.eq(CourseDetails::getCourseDetailsId, courseDetailsId);
queryWrapper.orderByDesc(CourseDetails::getCreateTime).last("limit 1");
CourseDetails details = courseDetailsDao.selectOne(queryWrapper);
if (details == null) { if (details == null) {
return Result.error("短剧集不存在"); return Result.error("短剧集不存在");
} }
if ("start".equals(type)) { if ("start".equals(type)) {
//开始播放 //开始播放
details.setViewCount(details.getViewCount() + 1); courseDetailsDao.updateViewCount(details.getCourseId(),details.getCourseDetailsId(), 1);
courseDetailsDao.updateById(details);
baseMapper.updateById(course);
} else if ("end".equals(type)) { } else if ("end".equals(type)) {
//播放完成 //播放完成
details.setPlayCompleteCount(details.getPlayCompleteCount() + 1); courseDetailsDao.updateViewCount(details.getCourseId(),details.getCourseDetailsId(), 2);
courseDetailsDao.updateById(details);
} }
return Result.success(); return Result.success();

View File

@@ -22,12 +22,16 @@
<!--查找指定短剧的目录 按照顺序数字升序--> <!--查找指定短剧的目录 按照顺序数字升序-->
<select id="findByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails"> <select id="findByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
select select c.*,
c.*, ifnull(cc.isGood, 0) as isGood
ifnull(cc.isGood,0) as isGood
from course_details c 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 left join (select course_details_id, count(*) isGood
where c.course_id=#{id} order by c.sort asc 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>
<select id="selectCoursePageByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails"> <select id="selectCoursePageByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
@@ -42,26 +46,43 @@
</select> </select>
<select id="findByCourseIdNotUrl" resultType="com.sqx.modules.course.entity.CourseDetails"> <select id="findByCourseIdNotUrl" resultType="com.sqx.modules.course.entity.CourseDetails">
select c.course_details_id as courseDetailsId, select c.course_details_id as courseDetailsId,
c.course_id as courseId, c.course_id as courseId,
c.wx_course_details_id as wxCourseDetailsId, c.wx_course_details_id as wxCourseDetailsId,
c.course_details_name as courseDetailsName, c.course_details_name as courseDetailsName,
c.create_time as createTime, c.create_time as createTime,
c.title_img as titleImg, c.title_img as titleImg,
c.content, c.content,
c.good_num as goodNum, c.good_num as goodNum,
c.price, c.price,
if(c.is_price!=1,c.video_url,'') as videoUrl, if(c.is_price!=1, c.video_url, '') as videoUrl,
c.dy_episode_id as dyEpisodeId, c.dy_episode_id as dyEpisodeId,
c.advertising, c.advertising,
c.view_count as viewCount, c.view_count as viewCount,
c.play_complete_count as playCompleteCount, c.play_complete_count as playCompleteCount,
ifnull(cc.isGood,0) as isGood ifnull(cc.isGood, 0) as isGood
from course_details c 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 left join (select course_details_id, count(*) as isGood
where c.course_id=#{id} order by c.sort asc 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> </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 id="deleteCourseDetails" parameterType="String">
DELETE FROM course_details WHERE course_details_id IN DELETE FROM course_details WHERE course_details_id IN
@@ -71,31 +92,26 @@
</delete> </delete>
<select id="countCourseByCourseId" resultType="Integer"> <select id="countCourseByCourseId" resultType="Integer">
select select count(1)
count(1)
from course_details from course_details
where course_id = #{courseId} where course_id = #{courseId}
</select> </select>
<select id="countCourse" resultType="Map"> <select id="countCourse" resultType="Map">
select select ifnull(sum(view_count), 0) as viewCounts,
ifnull(sum(view_count),0) as viewCounts, ifnull(sum(good_num), 0) as goodNum,
ifnull(sum(good_num),0) as goodNum, ifnull(count(*), 0) as courseDetailsCount
ifnull(count(*),0) as courseDetailsCount from course_details
from course_details
where course_id = #{courseId} where course_id = #{courseId}
</select> </select>
<select id="countByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails"> <select id="countByCourseId" resultType="com.sqx.modules.course.entity.CourseDetails">
SELECT SELECT course_id as courseId,
course_id as courseId, COUNT(*) AS courseDetailsCount
COUNT(*) AS courseDetailsCount FROM course_details
FROM where course_details_id
course_details
where course_details_id
GROUP BY GROUP BY course_id
course_id
</select> </select>
</mapper> </mapper>