package com.wzj.soopin.content.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.content.domain.bo.CommentBO;
import com.wzj.soopin.content.domain.po.Comment;
import com.wzj.soopin.content.domain.vo.CommentVO;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface CommentMapperCustom extends BaseMapperPlus<Comment, CommentVO> {

    /**
     * 获取评论列表
     * @param map 查询参数
     * @return 评论列表
     */
    List<CommentVO> getCommentList(@Param("paramMap") Map<String, Object> map);

    /**
     * 分页查询评论，支持手机号和vlogId联合查询
     */
    IPage<CommentVO> selectByMobileAndVlogId(Page<?> page, @Param("mobile") String mobile, @Param("vlogId") String vlogId);

    /**
     * 分页查询评论，并按点赞数量进行聚合排序
     * @param page 分页对象
     * @param bo 评论业务对象，包含排序信息
     * @return 分页的评论VO列表
     */
    IPage<CommentVO> selectCommentsWithAggregatedLikes(Page<CommentVO> page, @Param("bo") CommentBO bo);

}
