package com.yida.data.school.atlas.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yida.data.common.core.entity.atlas.CoreAtlasManagementDetails;
import com.yida.data.school.dto.atlas.AtlasDetailsSelectPageDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkListDTO;
import com.yida.data.school.vo.atlas.AtlasDetailsSelectPageVO;
import com.yida.data.school.vo.atlas.app.AppAtlasWorkBaseVO;

import org.apache.ibatis.annotations.Param;

/**
 * 图集详情管理dao层
 *
 * @author ZYJ
 * @date 2021/9/1
 */
public interface CoreAtlasManagementDetailsMapper extends BaseMapper<CoreAtlasManagementDetails> {

    /**
     * 查询图集作品列表数据
     *
     * @param page                      分页对象
     * @param atlasDetailsSelectPageDTO 图集作品后台列表请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.atlas.vo.AtlasDetailsSelectPageVO>
     * @author ZYJ
     * @date 2021/9/2 15:11
     */
    IPage<AtlasDetailsSelectPageVO> listAtlasDetailsPage(Page<CoreAtlasManagementDetails> page,
                                                         @Param("dto") AtlasDetailsSelectPageDTO atlasDetailsSelectPageDTO);

    /**
     * 根据类型查询图集作品分页数据接口
     *
     * @param toPage              分页数据
     * @param appAtlasWorkListDTO app根据类型查询图集作品分页数据请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.atlas.vo.app.AppAtlasWorkBaseVO>
     * @author ZYJ
     * @date 2021/9/6 17:37
     */
    IPage<AppAtlasWorkBaseVO> listAtlasWorkByType(Page<CoreAtlasManagementDetails> toPage,
                                                  @Param("dto") AppAtlasWorkListDTO appAtlasWorkListDTO);

    /**
     * 增加图集图片或视频的总评论数
     *
     * @param coreAtlasManagementDetailsId 图片作品主键id
     * @param changeCount                  修改值
     * @author ZYJ
     * @date 2021/9/7 17:20
     */
    void updateCommentCount(@Param("coreAtlasManagementDetailsId") Long coreAtlasManagementDetailsId,
                            @Param("changeCount") Integer changeCount);
}