package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.biz.dal.entity.MusicCompareRecordStat;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;

import java.util.List;

/**
 * <p>
 * 曲目练习统计表 服务类
 * </p>
 *
 * @author Eric
 * @since 2022-10-17
 */
public interface MusicCompareRecordStatService extends IService<MusicCompareRecordStat> {

    /**
     * 曲目统计汇总信息
     * @param sysUserId 用户ID
     * @param info MusicCompareWrapper.StatQueryInfo
     * @return MusicCompareWrapper.RecordStat
     */
    MusicCompareWrapper.RecordStat findMusicCompareRecordStatInfo(Long sysUserId, MusicCompareWrapper.StatQueryInfo info);

    /**
     * 曲目统计信息查询
     * @param page IPage<MusicCompareWrapper.RecordInfo>
     * @param query MusicCompareWrapper.StatQueryInfo
     * @return IPage<MusicCompareWrapper.RecordInfo>
     */
    IPage<MusicCompareWrapper.RecordInfo> findMusicCompareRecordPage(IPage<MusicCompareWrapper.RecordInfo> page, MusicCompareWrapper.StatQueryInfo query);

    /**
     * 批量更新曲目统计汇总
     * @param recordInfos List<MusicCompareWrapper.RecordInfo>
     */
    void batchUpdateMusicCompareRecordStat(List<MusicCompareWrapper.RecordInfo> recordInfos);

    /**
     * 曲目评测记录查询
     * @param page MusicCompareWrapper.RecordEvaluate
     * @param query MusicCompareWrapper.EvaluteQueryInfo
     * @return IPage<MusicCompareWrapper.RecordEvaluate>
     */
    IPage<MusicCompareWrapper.RecordEvaluate> findMusicCompareRecordEvaluatePage(IPage<MusicCompareWrapper.RecordEvaluate> page, MusicCompareWrapper.EvaluteQueryInfo query);
}
