Files
FrameTour-BE/src/main/java/com/ycwl/basic/mapper/VideoReviewMapper.java
Jerry Yan 844bc318ae refactor(videoreview): 简化机位评价数据结构
- 修改机位评价数据结构从嵌套Map改为简单Map
- 更新数据库映射文件中的类型处理器配置
- 调整评价统计逻辑以适应新的数据结构
- 优化导出功能以支持新格式的机位评价展示
- 更新相关实体类、DTO类及Mapper接口定义
- 移除不再使用的嵌套Map相关代码和依赖
2025-12-15 08:33:48 +08:00

72 lines
1.8 KiB
Java

package com.ycwl.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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 com.ycwl.basic.model.pc.videoreview.entity.VideoReviewEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 视频评价Mapper接口
*/
@Mapper
public interface VideoReviewMapper extends BaseMapper<VideoReviewEntity> {
/**
* 分页查询评价列表(带关联查询)
*
* @param reqDTO 查询条件
* @return 评价列表
*/
List<VideoReviewRespDTO> selectReviewList(VideoReviewListReqDTO reqDTO);
/**
* 统计总评价数
*
* @return 总数
*/
Long countTotal();
/**
* 计算平均评分
*
* @return 平均评分
*/
Double calculateAverageRating();
/**
* 统计评分分布
*
* @return key: 评分, value: 数量
*/
List<Map<String, Object>> countRatingDistribution();
/**
* 统计最近N天的评价趋势
*
* @param days 天数
* @return key: 日期, value: 数量
*/
List<Map<String, Object>> countRecentTrend(@Param("days") int days);
/**
* 统计景区评价排行(前N名)
*
* @param limit 限制数量
* @return 景区排行列表
*/
List<VideoReviewStatisticsRespDTO.ScenicReviewRank> countScenicRank(@Param("limit") int limit);
/**
* 查询所有机位评价数据(用于后端计算平均值)
*
* @return 机位评价列表(Map结构: 机位ID -> 评分)
*/
List<Map<String, Integer>> selectAllCameraPositionRatings();
}