You've already forked FrameTour-BE
- 修改机位评价数据结构从嵌套Map改为简单Map - 更新数据库映射文件中的类型处理器配置 - 调整评价统计逻辑以适应新的数据结构 - 优化导出功能以支持新格式的机位评价展示 - 更新相关实体类、DTO类及Mapper接口定义 - 移除不再使用的嵌套Map相关代码和依赖
72 lines
1.8 KiB
Java
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();
|
|
}
|