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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yida.data.common.core.entity.smart.EduSmartWelcomeGuideRoster;
import com.yida.data.common.core.entity.smart.EduSmartWelcomeGuideRosterRelation;
import com.yida.data.school.dto.smart.h5.CreateGuideStepOrderDTO;
import com.yida.data.school.dto.smart.h5.RosterFaceMatchDTO;
import com.yida.data.school.dto.smart.h5.RosterPageDTO;
import com.yida.data.school.vo.smart.h5.RosterFaceMatchVO;
import com.yida.data.school.vo.smart.h5.RosterStepPayInfoVO;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 智慧迎新H5接口 service
 *
 * @author ZYJ
 * @date 2023/6/19 17:19
 */
public interface H5EduSmartWelcomeService {

    /**
     * 生成花名册步骤订单
     *
     * @param dto 生成花名册步骤订单请求类
     * @return com.yida.data.school.vo.smart.h5.RosterStepPayInfoVO
     * @author ZYJ
     * @date 2023/6/19 17:35
     */
    RosterStepPayInfoVO createGuideStepOrder(CreateGuideStepOrderDTO dto);

    /**
     * 迎新订单支付成功
     *
     * @param orderCode 订单号
     * @param payDate   支付完成时间
     * @author ZYJ
     * @date 2023/6/20 17:26
     */
    void guideStepOrderPaySuccess(String orderCode, LocalDateTime payDate);

    /**
     * 迎新步骤订单完成(前台支付完成后调用)
     *
     * @param orderCode 订单号
     * @author ZYJ
     * @date 2023/6/20 17:31
     */
    void guideStepOrderSuccess(String orderCode);

    /**
     * 花名册人脸对比
     *
     * @param dto 花名册人脸对比请求类
     * @return com.yida.data.school.vo.smart.h5.RosterFaceMatchVO
     * @author ZYJ
     * @date 2023/6/21 11:21
     */
    RosterFaceMatchVO rosterFaceMatch(RosterFaceMatchDTO dto);

    EduSmartWelcomeGuideRoster getUserQrCodeUrl(Long rosterId);

    /**
     * 职工获取缴费二维码地址
     *
     * @param deptId 部门id
     * @return java.lang.String
     * @author ZYJ
     * @date 2023/7/4 17:04
     */
    String getPayQrCodeUrl(Long deptId);

    /**
     * 根据名称查询花名册列表信息
     *
     * @param dto 花名册列表h5查询请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.common.core.entity.smart.EduSmartWelcomeGuideRosterRelation>
     * @author ZYJ
     * @date 2023/7/7 11:45
     */
    IPage<EduSmartWelcomeGuideRosterRelation> listRoster(RosterPageDTO dto);
}
