统计播放量 和 完播量
This commit is contained in:
@@ -181,6 +181,8 @@ public class AliossCourseController {
|
|||||||
courseDetails.setTitleImg(image);
|
courseDetails.setTitleImg(image);
|
||||||
courseDetails.setContent(courseDetailsName);
|
courseDetails.setContent(courseDetailsName);
|
||||||
courseDetails.setGoodNum(goodNum);
|
courseDetails.setGoodNum(goodNum);
|
||||||
|
courseDetails.setViewCount(0L);
|
||||||
|
courseDetails.setPlayCompleteCount(0L);
|
||||||
if(i<=freeNum){
|
if(i<=freeNum){
|
||||||
courseDetails.setPrice(BigDecimal.ZERO);
|
courseDetails.setPrice(BigDecimal.ZERO);
|
||||||
courseDetails.setIsPrice(2);
|
courseDetails.setIsPrice(2);
|
||||||
|
|||||||
@@ -91,4 +91,14 @@ public class AppCourseController extends AbstractController {
|
|||||||
return courseService.selectWxVideoUrl(wxCourseDetailsIds);
|
return courseService.selectWxVideoUrl(wxCourseDetailsIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Login
|
||||||
|
@GetMapping("/viewCourse")
|
||||||
|
@ApiOperation("查看短剧")
|
||||||
|
public Result viewCourse(@RequestAttribute Long userId,
|
||||||
|
@ApiParam("短剧id") Long courseId,
|
||||||
|
@ApiParam("剧集id") Long courseDetailsId,
|
||||||
|
@ApiParam("统计类型:start 开始,end 结束") String type) {
|
||||||
|
return courseService.viewCourse(userId, courseId, courseDetailsId, type);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import java.io.Serializable;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description course_details 短剧目录
|
|
||||||
* @author fang
|
* @author fang
|
||||||
|
* @description course_details 短剧目录
|
||||||
* @date 2021-03-27
|
* @date 2021-03-27
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@@ -133,6 +133,16 @@ public class CourseDetails implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Integer advertising;
|
private Integer advertising;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 播放量
|
||||||
|
*/
|
||||||
|
private Long viewCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完播量
|
||||||
|
*/
|
||||||
|
private Long playCompleteCount;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer isCollect;
|
private Integer isCollect;
|
||||||
|
|
||||||
@@ -145,5 +155,6 @@ public class CourseDetails implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String wxUrl;
|
private String wxUrl;
|
||||||
|
|
||||||
public CourseDetails() {}
|
public CourseDetails() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,4 +59,6 @@ public interface CourseService extends IService<Course> {
|
|||||||
|
|
||||||
Result courseListExcelIn(MultipartFile file) throws IOException;
|
Result courseListExcelIn(MultipartFile file) throws IOException;
|
||||||
|
|
||||||
|
Result viewCourse(Long userId, Long courseId, Long courseDetailsId, String type);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,6 +212,8 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cou
|
|||||||
CourseDetails courseDetails = new CourseDetails();
|
CourseDetails courseDetails = new CourseDetails();
|
||||||
courseDetails.setCourseId(courseId);
|
courseDetails.setCourseId(courseId);
|
||||||
courseDetails.setCreateTime(DateUtils.format(new Date()));
|
courseDetails.setCreateTime(DateUtils.format(new Date()));
|
||||||
|
courseDetails.setViewCount(0L);
|
||||||
|
courseDetails.setPlayCompleteCount(0L);
|
||||||
BeanUtils.copyProperties(courseDetailsIn, courseDetails);
|
BeanUtils.copyProperties(courseDetailsIn, courseDetails);
|
||||||
int result = baseMapper.insert(courseDetails);
|
int result = baseMapper.insert(courseDetails);
|
||||||
if (result > 0) {
|
if (result > 0) {
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
|
|||||||
CourseDetails courseDetails=new CourseDetails();
|
CourseDetails courseDetails=new CourseDetails();
|
||||||
courseDetails.setCourseId(course.getCourseId());
|
courseDetails.setCourseId(course.getCourseId());
|
||||||
courseDetails.setVideoUrl(course.getRemark());
|
courseDetails.setVideoUrl(course.getRemark());
|
||||||
|
courseDetails.setViewCount(0L);
|
||||||
|
courseDetails.setPlayCompleteCount(0L);
|
||||||
courseDetailsDao.insert(courseDetails);
|
courseDetailsDao.insert(courseDetails);
|
||||||
}else{
|
}else{
|
||||||
baseMapper.insert(course);
|
baseMapper.insert(course);
|
||||||
@@ -294,6 +296,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
|
|||||||
courseDetails.setGoodNum(0);
|
courseDetails.setGoodNum(0);
|
||||||
courseDetails.setPrice(BigDecimal.ZERO);
|
courseDetails.setPrice(BigDecimal.ZERO);
|
||||||
courseDetails.setIsPrice(2);
|
courseDetails.setIsPrice(2);
|
||||||
|
courseDetails.setViewCount(0L);
|
||||||
|
courseDetails.setPlayCompleteCount(0L);
|
||||||
courseDetailsDao.insert(courseDetails);
|
courseDetailsDao.insert(courseDetails);
|
||||||
}else{
|
}else{
|
||||||
CourseDetails courseDetails = courseDetailsDao.selectOne(new QueryWrapper<CourseDetails>().eq("course_details_name", name).last(" limit 1"));
|
CourseDetails courseDetails = courseDetailsDao.selectOne(new QueryWrapper<CourseDetails>().eq("course_details_name", name).last(" limit 1"));
|
||||||
@@ -1095,6 +1099,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
|
|||||||
courseDetails.setTitleImg(img);
|
courseDetails.setTitleImg(img);
|
||||||
courseDetails.setContent(name);
|
courseDetails.setContent(name);
|
||||||
courseDetails.setGoodNum(goodNum);
|
courseDetails.setGoodNum(goodNum);
|
||||||
|
courseDetails.setViewCount(0L);
|
||||||
|
courseDetails.setPlayCompleteCount(0L);
|
||||||
if(i<=freeNum){
|
if(i<=freeNum){
|
||||||
courseDetails.setPrice(BigDecimal.ZERO);
|
courseDetails.setPrice(BigDecimal.ZERO);
|
||||||
courseDetails.setIsPrice(2);
|
courseDetails.setIsPrice(2);
|
||||||
@@ -1227,5 +1233,29 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result viewCourse(Long userId, Long courseId, Long courseDetailsId, String type) {
|
||||||
|
Course course = baseMapper.selectById(courseId);
|
||||||
|
if(course==null){
|
||||||
|
return Result.error("短剧不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
CourseDetails details = courseDetailsDao.selectById(courseDetailsId);
|
||||||
|
if(details==null){
|
||||||
|
return Result.error("短剧集不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("start".equals(type)) {
|
||||||
|
//开始播放
|
||||||
|
details.setViewCount(details.getViewCount() + 1);
|
||||||
|
courseDetailsDao.updateById(details);
|
||||||
|
baseMapper.updateById(course);
|
||||||
|
} else if ("end".equals(type)) {
|
||||||
|
//播放完成
|
||||||
|
details.setPlayCompleteCount(details.getPlayCompleteCount() + 1);
|
||||||
|
courseDetailsDao.updateById(details);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
c.course_type as courseType,
|
c.course_type as courseType,
|
||||||
c.banner_id as bannerId,
|
c.banner_id as bannerId,
|
||||||
b.name as bannerName,
|
b.name as bannerName,
|
||||||
c.view_counts as viewCounts,
|
(select sum(cd.view_count) from course_details cd where cd.course_id = c.course_id ) as viewCounts,
|
||||||
c.dy_img_id as dyImgId,
|
c.dy_img_id as dyImgId,
|
||||||
c.dy_course_id as dyCourseId,
|
c.dy_course_id as dyCourseId,
|
||||||
c.wx_course_id as wxCourseId,
|
c.wx_course_id as wxCourseId,
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
c.course_type as courseType,
|
c.course_type as courseType,
|
||||||
c.banner_id as bannerId,
|
c.banner_id as bannerId,
|
||||||
b.name as bannerName,
|
b.name as bannerName,
|
||||||
c.view_counts as viewCounts,
|
(select sum(cd.view_count) from course_details cd where cd.course_id = c.course_id ) as viewCounts,
|
||||||
c.dy_img_id as dyImgId,
|
c.dy_img_id as dyImgId,
|
||||||
c.dy_course_id as dyCourseId,
|
c.dy_course_id as dyCourseId,
|
||||||
c.dy_status as dyStatus,
|
c.dy_status as dyStatus,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<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,c.course_id as courseId,c.wx_course_details_id as wxCourseDetailsId,
|
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.course_details_name as courseDetailsName,c.create_time as createTime,
|
||||||
c.dy_episode_id as dyEpisodeId,c.advertising,
|
c.dy_episode_id as dyEpisodeId,c.advertising, c.view_count as viewCount, c.play_complete_count as playCompleteCount,
|
||||||
(select count(*) from course_collect cc where cc.user_id=#{userId} and cc.course_details_id=c.course_details_id and cc.classify=2) as isGood,
|
(select count(*) from course_collect cc where cc.user_id=#{userId} and cc.course_details_id=c.course_details_id and cc.classify=2) as isGood,
|
||||||
c.title_img as titleImg,c.content,c.good_num as goodNum,c.price,if(is_price!=1,c.video_url,'') as videoUrl
|
c.title_img as titleImg,c.content,c.good_num as goodNum,c.price,if(is_price!=1,c.video_url,'') as videoUrl
|
||||||
from course_details c
|
from course_details c
|
||||||
|
|||||||
Reference in New Issue
Block a user