package com.ycwl.basic.service; import com.github.pagehelper.PageInfo; import com.ycwl.basic.model.pc.videoreview.dto.AdminVideoReviewLogReqDTO; import com.ycwl.basic.model.pc.videoreview.dto.AdminVideoReviewLogRespDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoPurchaseCheckReqDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoPurchaseCheckRespDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoReviewAddReqDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoReviewListReqDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoReviewRespDTO; import com.ycwl.basic.model.pc.videoreview.dto.VideoReviewStatisticsRespDTO; import java.io.IOException; import java.io.OutputStream; /** * 视频评价Service接口 */ public interface VideoReviewService { /** * 新增视频评价 * * @param reqDTO 评价信息 * @return 评价ID */ Long addReview(VideoReviewAddReqDTO reqDTO); /** * 分页查询评价列表 * * @param reqDTO 查询条件 * @return 分页结果 */ PageInfo getReviewList(VideoReviewListReqDTO reqDTO); /** * 管理后台分页查询评价日志 * * @param reqDTO 查询条件 * @return 分页结果 */ PageInfo getAdminReviewLogList(AdminVideoReviewLogReqDTO reqDTO); /** * 获取评价统计数据 * * @return 统计结果 */ VideoReviewStatisticsRespDTO getStatistics(); /** * 导出评价数据到Excel * * @param reqDTO 查询条件 * @param outputStream 输出流 * @throws IOException IO异常 */ void exportReviews(VideoReviewListReqDTO reqDTO, OutputStream outputStream) throws IOException; /** * 检查视频是否已被购买 * 购买条件: * 1. 直接购买视频(order_item中goods_type=0且goods_id=视频id) * 2. 购买整个模板(order的face_id与video关联的task的face_id相同,goods_type=-1,goods_id为video的templateId) * * @param reqDTO 查询条件 * @return 购买状态及订单ID列表 */ VideoPurchaseCheckRespDTO checkVideoPurchase(VideoPurchaseCheckReqDTO reqDTO); }