package com.yida.data.school.transaction.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.apply.EduProductNoticeStudent;
import com.yida.data.school.dto.transaction.ListBuyStudentDTO;
import com.yida.data.user.vo.ListParentByStudentIdsVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import org.springframework.scheduling.annotation.Async;

/**
 * 催缴通知对应接收学生表 Service接口
 *
 * @author wjm
 * @date 2021-09-03 15:33:47
 */
public interface EduProductNoticeStudentService extends IService<EduProductNoticeStudent> {

    /**
     * 批量催缴
     *
     * @param noticeStudents 通知列表
     */
    void batchPutNotice(List<EduProductNoticeStudent> noticeStudents);

    /**
     * 查询催缴记录
     *
     * @param page
     * @param productId
     * @return
     */
    IPage<EduProductNoticeStudent> findRecordList(Page page, Long productId);

    IPage<ListParentByStudentIdsVO> findRecordParent(Page page, Long noticeId);


    void studentNotBuyExport(ListBuyStudentDTO listBuyStudentDTO, HttpServletResponse response);

    @Async
    void studentBuyExport(ListBuyStudentDTO listBuyStudentDTO, HttpServletResponse response, String uuid);

    /**
     * 全部催缴
     *
     * @param eduProductNoticeStudent
     */
    void allPutNotice(EduProductNoticeStudent eduProductNoticeStudent);
}
